Behavior Tree System

This was a group project I did under my second year at LBS Varberg.

The team consisted of 2 programmers with 6 fellow game artist students making models and UI whilst I and the other programmer worked on everything else in the game.


I'm not going to speak too much about the project itself but I'll leave a gif here to show some basic gameplay.

What I want to write about here is the behavior tree system I wrote for the project.

The System

I wanted to be able to use a singular AI system for all the enemies in the game. To do this I first implemented a good behavior tree system you could set up from C#, but I quickly found it that it was hard to use and debug a behavior tree. Some of the artists also wanted to be able to tweak and make changes to the AIs on their own.

So, I set out to make this an intuitive and user friendly editor for my system! After working on it every day after school for a month and a half it was ready.

It has what I'd say is a relatively inviting design with easy to understand labels everywhere i could think to put one.

The editor has 4 different ways to select the nodes so that the user can do exactly what feel right for them.

  • click select

  • multi-select

  • area select

  • hierarchical select

It has a attachable live debugging system to see the control flow and figure out that's causing a problem.

I've also ensured to add extra menus and contextual actions top not overwhelm the user and instead guide them towards that they want to do.

The editor is also completely separate from the runtime by design. This means that you can build the game knowing that none of the temporary editor data needs to be baked into the final executable.

Main Features Demo