Jordan Bonser
  • Home
  • CV
  • University Work
    • Second Year Work >
      • Top-Down Shooter
    • Third Year Work >
      • Terrain Analysis Project >
        • Terrain Analysis Tool
        • Game Demonstration
      • Post Processing
      • Android Application - Sports Centre
  • Projects
    • Unity Development >
      • Lerpz Tutorial
      • Dare to be Digital Entry - "Lit"
      • Unity Game
    • Geometry Instancing
    • Road to Eldorado
    • Level Editor
    • OpenGL Work
    • JBEngine
  • Blog
  • Tutorials
    • Flask Session Timeout

AI Game Demo

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

Picture
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

Picture
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.

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. 
Powered by Create your own unique website with customizable templates.
  • Home
  • CV
  • University Work
    • Second Year Work >
      • Top-Down Shooter
    • Third Year Work >
      • Terrain Analysis Project >
        • Terrain Analysis Tool
        • Game Demonstration
      • Post Processing
      • Android Application - Sports Centre
  • Projects
    • Unity Development >
      • Lerpz Tutorial
      • Dare to be Digital Entry - "Lit"
      • Unity Game
    • Geometry Instancing
    • Road to Eldorado
    • Level Editor
    • OpenGL Work
    • JBEngine
  • Blog
  • Tutorials
    • Flask Session Timeout