The game EvoCommander was developed as part of my Master’s Thesis at the IT University in Copenhagen. The game is built around my port of the NEAT algorithm to Unity, called UnityNEAT.
In the game you have to train your robot to perform various tasks such as moving towards a target and hitting a target with it’s hammer. The player decides what actions the robot should perform by rewarding or punishing it. Using the evolutionary algorithm NEAT, neural network controllers are created for the robot and over time controllers that behave as desired will emerge. These trained behaviours can be saved as ‘brains’. During online and mission play, the player can indirectly control his robot by switching brains while playing. Thus a player can have a brain for approaching, a brain for melee battle and a brain for long distance mortar shots.
The player is guided through five missions that help him create a varied arsenal of brains which he can later use to battle online against other player’s robots.
This game shows that it is feasible to implement neuroevolution (specifically NEAT) as a core game mechanic in the popular game engine Unity, and introduces a novel game mechanic by allowing players to switch between active brains during battle, giving players indirect control over their robots.
My Master’s Thesis can be read here (the game was called Evolve when I wrote my thesis).
- Advanced AI algorithm NEAT for generating neural networks
- UI created using DFGUI
- Fully networked multiplayer using Photon
- Backend (parse.com) for user management, so players can log in on any machine
- Extensive data collection of player and AI behaviour for research purposes