Spite: Blood Relic
Spite: Blood relic was the first game project my group made in our own custom engine which presented a unique challenge where us programmers had to develop features for the engine as they became needed for the game we were making at the same time.
​Some stuff I did:
Navigation
I created our system for navigation/pathfinding which was used both by the enemies as well as the player movement since the player character moves to where the player clicks in the world. We export navmeshes from unity along with the level geometry and create a representation of it in the engine. The basis for the pathfinding is a simple A* implementation and to smooth out the paths and make them straighter I implemented the “Simple Stupid Funnel Algorithm” to find the shortest path through a sequence of triangles.
Enemy AI
My primary role gameplay-wise was to create the enemies and their AI.
They use a state machine system for their decision making and a combination of steering behaviours for their movements. The same steering behaviours were used for the floating movements of the magic skull that follows the player and the boid behaviour of packs of rats.
I also created a tool that allowed tweaking of most values used by the enemies states in runtime which really helped the iteration process of balancing the enemies.
I also created the behaviour for the final boss fight which used the same kind of state machine as the basic enemies but a bit more complex as it had three different phases with many more kinds of attacks than regular enemies. The different values for its stats and conditions was able to be tweaked by the same tool as the regular enemies.
Scripted sequence builder & boss fight
We wanted to really make our final boss stand out so in order to make it more epic I designed a system for chaining together segments to form scripted sequences, I then created such sequences for the intro to the boss, the transition between phases, and for when the boss is defeated.