AI.Bootcamp
Context
As part of the Artificial Intelligence Applied to Video Games course in the Master’s in Video Game Development at the University of Sherbrooke (DDJV) , taught by Carle Côté , we solved a programming challenge known as AI.Bootcamp.
AI.Bootcamp is a dedicated challenge designed to help developers learn and experiment with advanced AI concepts in a gaming environment.
Team Members:
Rules
AI.Bootcamp features numerous levels. Every time the level counter reaches a new decade (e.g., 10, 20, 30), a new mechanic is introduced.
Basic rules
The primary goal is to move NPCs to objective tiles while staying within a turn limit and a CPU time budget. NPCs can perform one action per turn:
- Move to an adjacent tile
- Search for a hidden door (within a wall)
- Open a door
NPCs are also subject to specific constraints:
- Two NPCs cannot occupy the same tile.
- NPCs cannot step on red tiles.
- NPCs cannot pass through walls or closed doors.
Levels 000 - 005: Basic Cases
The initial levels can be solved with straightforward logic.
Levels 010 - 013: Pathfinding
The 01x levels require implementing a pathfinding algorithm and ensuring that NPCs do not collide or overlap.
Levels 020 - 023: Walls and Windows
The 02x levels introduce obstacles like walls and windows. The key difference is that windows allow NPCs to see through them, which becomes essential in non-omniscient levels.
Levels 030 - 034: Non-Omniscient Fog of War
From level 030 onwards, levels are non-omniscient. Previously, NPCs had full knowledge of the entire map; now, they have a limited, variable field of vision.
Levels 040 - 042: Strategic Use of Windows
Levels 040 to 042 force the intelligent use of windows to gather as much information as possible about the environment.
Level 050: The Maze
Level 050 combines most of the learned mechanics to navigate a massive maze with very limited visibility.
Levels 060 - 066: Doors
The 06x levels introduce various types of doors:
- Manual Doors: The NPC can use the Open Door action and pass through on the following turn.
- Pressure Plate Doors: Each plate is linked to a specific door that stays open only while the plate is triggered.
- Hidden Doors: NPCs must use the Search for hidden door action on walls. If discovered, the door must then be opened before crossing.
Levels 070 - 073: Cooperation
Levels 070 and above emphasize cooperation: avoiding tile conflicts and helping fellow NPCs (e.g., one NPC holding a pressure plate so another can pass).
Levels 080 - 083: Optimization
The final levels introduce strict optimization constraints. All processing for a turn must be completed in under 15ms.
Our Solution
For every turn, our solution follows this workflow:
- Global Map Update: Updating the “Fog of War” and shared world knowledge.
- HiveMind: A high-level controller that manages task distribution (collaboration, exploration) using a Behavior Tree.
- Individual NPCs: Each NPC follows its assigned task via its own Behavior Tree. Calculations for all NPCs are performed in parallel.
- Conflict Resolution: A final step to resolve instances where multiple NPCs attempt to move to the same tile.
Our pathfinding algorithm is based on A*, modified to account for doors and different tile costs.
Source Code
AI.Bootcamp
Download the AI.Bootcamp solution.