General Introduction to the project :

  • This project demonstrates how Evolutionary AI can be used on the FPS enemy bots to make them adapt and adjust to any kind of opponent, ultimately defeating him.
  • The evolutionary Algorithm utilises advanced features like Mutation and Selection.

Parts:

  1. Behavioural A.I. algorithm (Basic AI followed by the bots, including path-finding and shooting A.I.)
  2. Evolutionary Algorithm ( Mutation )
  3. Selection Algorithm

Characters :

  1. 3 Normal bots with Non evolutionary AI (only the first part)
  2. 1 bot with evolutionary AI (All three parts mentioned above) i.e. Jack

Aim :

  • Our only aim was to increase Jack’s win-rate upto 70%

The Setting :

The setting was a strategically designed level that offered enough tactical options for a bot to choose from.(i.e. Choke points, elevated locations, narrow corridors and open areas.).These points were kept in mind while designing the level.

Battleground Prototype
A 2d Bird eye concept sketch of the level.

 

  1. Obstacles that provide cover when under fire.
  2. Choke points.
  3. Raised/elevated locations.
  4. Corridors.
  5. One huge open area for large conflicts.
  6. Two small areas for smaller conflicts.
  7. 4 spawn locations with equal cover.

 


 

The Environment:

Ideas were taken from the “Ghost town” level  in call of duty and an abandoned but beaten down environment was decided upon. The environment is kept minimalistic as the emphasis is not on the environment

Completed level. ( Screenshot taken from the location of “spawn 2”)

but the evolutionary mechanics. But during the level design , these things were kept in mind.

  • A Day oriented lighting was preferred.
  • No high poly models were used so that the simulation could even run on lower tier PCs.
  • Most of the assets were designed by us, the rest are available by default with UDK.

Methodology :

3
A screenshot showing one of the bots standing on the elevated platform. ( Taken from the area between spawn 3 and 4 )

We use an algorithm that was created by me and my partner in this project that utilises two very specific evolutionary phenomenons which are Mutation and Selection.

Mutation : A change in the genes of a plant or animal that causes physical characteristics that are different from what is normal.A new form of something that has changed.

Selection : The process whereby organisms better adapted to their environment tend to survive and produce more offspring.

For us the “Selection” procedure acts as a heuristics to the mutation algorithm and tells it what to mutate , how much to mutate and in which direction to mutate.

4
Here we can see two bots aiming at each other.

We mutate the bot’s behaviour, like his attacking, his defence, his melee/charging tendencies, his jumping behaviour, his tactics etc. These get mutated as per the win-rate i.e. the higher the win rate the lesser the mutation(Damping). The selection part takes in certain input conditions like the time the bot stayed alive, amount of kills, shots fired, damage taken etc and then accordingly decides what to mutate.


 

Scenario :

5
A close up of Jack i.e. the evolutionary bot. ( In the background we can see the long corridor leading to “spawn 4”)

We are using a Last man standing scenario in this game/simulation which means that each round ends when only one bot remains alive. There are 10 rounds in total, and the 11th round marks the start of a new generation. At each new generation a round of mutation and selection occurs.

After about 300 generations we check the win rate for our evolving bot and find it to be 60% which is pretty good and mark it as the end of our project.