AI.Bootcamp Engine

Learning Game AI Using a Real Game Engine

The AI.Bootcamp Engine is created using Unity :

    • Each game is executed in a full 3D environment
    • Each object has physics attributes (colliders, transparency, ...)
    • 3D raycasts are used to simulate the vision system
    • Game logic is coded in C#

Authoring AIBot Logic in C++

The AI.Bootcamp Engine allows programmers to author their AIBot logic in a standalone C++ process. This is how it works :

When running a game, the AI.Bootcamp Engine requires a path where to find an AIBot executable built using the AIBot C++ Client Framework. The engine will launch the executable as an external process, and hook itself on the STD I/O pipes to communicate with it using the pre-defined AIBot protocol. Data will be exchanged between the engine and the AIBot according to this diagram :


* To simplify the diagram, if a timeout or a crash is detected at any given time, the engine ends the game with an AIBot disqualification and exits.

Logging Data for the Replay Viewer

When running a game, the AI.Bootcamp Engine outputs logs used to generate replay files. The logging process logs game state info each turn using a JSON representation. In order to be resilient to crashes, the generated output file itself isn't a valid JSON file and requires some post-processing to be compatible with the Replay Viewer application. More info on the Replay Viewer application can be found here.