Incarcerum is a single player boss rush style game that features what we’ve dubbed the Time Echo mechanic. Every time the player goes to fight the boss, every attempt they’ve made before plays out along side them.
This was a five person team for our Capstone project, which unfortunately did not make it through to the second semester. The project will remain incomplete, with only one boss in the game and some issues left unaddressed.
My focus on this project was on implementing AI for the boss and for the clones of the player. One might ask why the clones need any AI if they’re playing out the fight, so I’ll preempt that- If the latest attempt by the player causes a healing effect on the clone and it survives past where it did in the recorded attempt, it needs to keep moving and attacking the boss rather than just standing where it died.
For the boss I implemented a Utility based AI system. The boss has a list of attacks it can use, and for each one it calculates a score based on how many targets it could hit, and the amount of damage the attack does. It then chooses the attack with the highest score and uses that one if possible.
For the players, I implemented a node pointer based decision tree, and worked with our designers to populate it with behaviors. The tree takes advantage of C# delegates in order to have a recursive call pattern.
The rest of my time was spent focusing on gameplay and scripting such as implementing attacks, hooking up animations and animation controllers, as well as managing repository issues whenever those came up.