Causality

Hi I’m the producer and lead AI programmer on team Yggdrasil that is currently developing the game Causality.

 

Our goal with this project was to create a vertical slice, a demo if you will of what our game would be about showing of our core mechanics against a single boss fight.

We wanted it to be cool, fluid and challenging, forcing the player to find patterns and recognise different ques in order to overcome and defeat the boss.

 

This meant for us to create a solid AI system that could be reused to create future enemies.

This is not easy, especially for us who had no prior experience with AI programming.

Our team chose Unity as the engine to work with and with no funding we could not buy ourselves assets that would make the AI easier to implement so I started to work on a basic state machine and behaviour tree implementation for us to use.

Completely written in C# and with no knowledge on how to create this my journey into the deep world of AI began.

The first thing I wrote was a basic state machine and a state class that all of the boss behaviours would inherit.

The state machine consisted of a few lines of code that could change its current state, run the current state behaviour of call the current states exit function and perform any individual behaviours logic that needed to be run when a state exited.

The state class contained three virtual functions that needed to be overridden by other scripts that inherit from state. These functions where RunStateLogic, ExitStateLogic and InitializeState and these did exactly what the name implies. Runs logic for that state, cleans up the state upon exit and initialisation of any needed data for that state.

 

About joni nikander

2015 Game Design