Final Year Project

The goal of my final year project was to research and gain an understanding of some of the best real-time AI techniques used in modern games. Then to use this knowledge as a basis for creating my own AI control architecture within a 3D game environment with player interaction.

Although I knew it would not be attainable, I wrote a high-level pitch for the game I had in mind when creating this. This should help to provide some context on the purpose and design of the AI system:

Island Outpost is a colony management style simulation game. The player is put in charge of a group of characters that are completely controlled by AI. It is the task of the player to act as a guiding hand, issuing jobs for the characters to complete, and acting to ensure their survival. As with most simulation games there isn't really an end goal, the player can lose if all their characters die, but the player finds fun in exploring the different simulation outcomes, and in trying to complete their own self-driven goals.

I created a prototype which achieved all of the base goals of the project:

For what I set out to do, the prototype is feature complete. I would have liked to have had enough time to polish the visuals and flesh it out a bit more as it is admittedly lacking visually and gameplay wise.

Below is a screenshot of the game prototype. There are three AI agents moving toward a job target, indicated by the red arrow, where they will build a wall. Food and water are scattered around the map, and the AI agents will seek these out when they become hungry or thirsty. The player controls a yellow cursor, which allows them to issue jobs within the world.

game screenshot - a few AI characters rush to construct a wall

The time constraints I had to work under were extremely demanding for the scope of the project. It was unfortunately not feasible to also build a fleshed-out gaming experience with all the other work required.

See this project on GitLab.

View some of the theory behind the AI control architecture.

Back to projects