Check out Escape Ghoul Prison’s
About
Escape Ghoul Prison is a puzzle observation game made using only C++ and DirectX. In this project, I implement my very own behaviour tree system using modern C++ techniques such as coroutines.
This is a submission to Grads In Game’s Search For a Star 2024 competition, in which I became a finalist for!
This project was scored and rated by a vast range of industry professionals and was an incredibly fun technical challenge. I received some awesome feedback for this project, so I wrote a separate learnings post here.
Techniques
Coming into this competition, I really wanted to work on some sort of AI behaviour. Having previously worked with behaviour trees in UE5 and Unity, I decided to make my very own from scratch!
C++
-
Coroutines
-
Having previous experience with coroutines in C# and Unity made me comfortable enough to pick up and utilise it in this project for the behaviour tree implementation.
-
In specific, coroutines were used to implement the
RUNNING
return state, which means that a specific node hasn’t finished operating within that tick and must continue to run in the next update cycle. -
This is a modern C++ 20 technique.
-
-
Behaviour Tree
-
Features of the behaviour tree included: Selector Nodes, Sequence Nodes, Services and RUNNING State functionality.
-
This implementation is used for the AI of the prison warden in the game.
-
-
Sprite System
-
Built out a sprite script in order to manage multiple different billboards under a single object.
-
This was used for the stage indicators on the left, as well as the prison warden’s sprite changes and detection indicator.
-
Artificial Intelligence
- WardenBT
-
Based off my behaviour tree, I built out a few task nodes and services to construct the patrolling behaviour of the prison warden.
-
Version Control
- GitHub