Teaching Tool
This challenge was developed as a teaching tool for a game AI course (in french only) at Sherbrooke University, QC, Canada.
Jump Right Away in AI
The main motivation was to have a simple game framework allowing students to jump right away in AI without having to code their own game from scratch. With AI.Bootcamp, students are only required to know how to code in C++ using Visual Studio, learn how the AIBot Client works, and launch couple of scripts in console window to build, deploy and test their AIBot. When the engine is already installed and configured, it usually takes less than 5 minutes to code and test a simple random AIBot.
Focus on AI Algorithms and Decision-making Architectures
Another important consideration was to remove anything related to the execution layer (animation control, sounds, etc.). Not that these aspects aren't important to create good game AI, on the contrary, but it was adding a level of complexity on top of the what was the main focus of the course i.e. game AI algorithms, decision-making architectures and implementation technics (FSM/HSM, BT, etc.). Just by focusing on decision-making models, a lot of the inherent complexity of controlling NPCs in a scene was enough to provide challenging situations.
In the same line of thought, the decision to remove Fun Factor considerations was an important one too. As much as the game industry requires to know how to balance game AI behaviors to create fun situations, it takes some time to experiment with the basic game AI algorithms and technics to understand what their limitations and advantages are. This explains why the AI.Bootcamp challenge is focussed on creating an AIBot able to solve each level in a more or less optimal way, instead of the more realistic scenario where the Player is in the loop.
Keep Reactivity in the Loop
And lastly, in order to compensate for the choice of using a turn-based game setup instead of a more reactive real-time one, the decision to be able to limit the CPU time given each turn was crucial. Many games are requiring reactivity to support interesting gameplay loops, and it is usually putting a lot of pressure on most of the well-known game AI architectures (having to cope with interruptions, change of execution/decision context, animation considerations, gameplay and UX balance, etc.). Teaching how to design and cope with this critical aspect of game AI architectures is really important, but it is definitely a more advanced topic. To keep reactivity in the loop, it was decided that students would need to code their game AI algorithms to fit tight CPU budget (close to what they would be having in the industry), preparing them to support reactive game-play loops by making sure they don't spend too much time in deliberative processes, and understand the real-time requirements.
Carle Côté Ph.D., is a Postgraduate Lecturer at Sherbrooke University located in Montréal. He also works as a Senior AI Specialist in videogames and robotics, with more than 15 years experience. Find him on LinkedIn.
If you have any questions or comments, please email him at carle.cote@gmail.com