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).
The results from my Master’s Thesis was published in an article in IEEE Transactions on Computational Intelligence and AI in Games (TCIAIG) called EvoCommander: A Novel Game Based on Evolving and Switching Between Artificial Brains, that I wrote with my thesis supervisors Sebastian Risi and Julian Togelius.
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