AI Game Demonstration - Hover Tanks and Castles
The AI demonstration was the second part of my third year project and was initially just a way to show the effects that terrain analysis can have on a game. It is a simple game that involves two teams that are both using hover tank troops to attack the enemies base which is a castle.
The Scenario

The game starts out with two teams each with one tank each, they then need to use a strategy to decide how to attack. One team uses a defensive strategy involving placing its troops at the strategy positions developed by the terrain analysis. The other team uses an all out attack approach. As a general rule the aggressive approach appears to be winning towards the beginning of the demonstration but the defensive strategy dominates completely by sending a wave of 4-5 troops at once to destroy the enemy base.
Features

The game demonstration uses A* path finding to navigate around the map. The representation generated by the terrain analysis tool is used for the paths, although due to the fact that the terrain analysis tool used polygons the paths were extremely Zig-Zaggy. After realising this a simple string pulling algorithm was put in place to only path find nodes that are either next to a impassable area or the first node of a new game zone. There were serious optimisations needed for the path finding as due to the sheer number of nodes the path finding would stall the game for a few seconds. This has been sorted although there is still room for further improvement in this area. Another improvement could be the distribution of player deaths as influences across the map. this could then be taken into account for the path finding. ensuring that players avoid areas of known danger.
There is also some simple targeting and point to box collision detection put in place to deal with the troops interaction with one another.
There is a small amount of camera picking put in place to show the troops and bases healths and also their current states. This was actually extremely useful for debugging purposes allowing for me to easily check the states of the troops if they happened to crash or get stuck in a loop.
There is also some simple targeting and point to box collision detection put in place to deal with the troops interaction with one another.
There is a small amount of camera picking put in place to show the troops and bases healths and also their current states. This was actually extremely useful for debugging purposes allowing for me to easily check the states of the troops if they happened to crash or get stuck in a loop.
Post Processing
|
I put in place a number of post processing effects that were taken straight from the post processing assignment. Due to the fact that the post processes were separate classes meant that implementing them within my project was fairly simple. There were but a few adjustments to make to the rendering code before having them up and running. Due to the fact that they all derive from a base post process class also means that creating any new post process will be straight forward.
I am hoping to implement either full HDR (High Dynamic Range) or crepuscular rays(God Rays) in the near future as they are both often used in games now, although they might not be well suited to the game demonstration. |
Particle System
On the day of the Project hand in I began work on some GPU based particles just to give the game a better polished feel. I had already created the initial foundations of the particle system the night before but still needed to make it adaptable and Object Oriented. I managed to create an explosion particle system for the troop and base destruction and due to the fact that it was all done GPU side meant that I could go a little over-board with it. I'm still playing around with different types of particles and would like to implement soft particles soon. I think a smoke effect around the edge of the map would look the best to reduce the hard cut off at the edge of the map.
|
|