Thrown into an unknown world, filled with endless amount of zombies, this AI agent tries his best to survive as long as possible. The agent has no information about the world, other than what it can see in its field of view. To survive, it must replenish its energy by eating food and minimize taking damage by killing or avoiding enemies.
The environment for this AI was built in a custom C++ engine. I had no access to the source code of this framework, the only information that could be requested was information about the agent, such as its health, energy and inventory, and what was inside its field of view. The AI logic was written in about a week.
This agent covers the basic features of an AI entity. It has a behaviour tree for decision making, a searching algorithm to scavenge houses, and steering behaviours. The behaviour tree uses blackboards to store and manage data of any type. The steering pipeline exists of a fixed goal targeter, a nav mesh decomposer, an avoid enemy constraint and a basic seek actuator.
In this project I learned the basic implementation of an AI agent, such as the steering and behaviour tree pipelines. The blackboard template class was also a very interesting class that could be used in many other projects, it taught me more about templates and how they could be used. Before the actual game was made, I also researched how a navigation mesh works, as well as field of view.