Intelligent Behaviours Package

Type:

 AI tool


Language:

 C#


Summary:

Tool to help develop AI behaviours in Unity by combining different techniques such as Finite States Machines and Behaviours Trees in one agent.




This tool was part of my bachelor degree final project. The tool is meant to help developers create intelligent agents in Unity. The big difference with other tools of this type is that you will be able to create behaviours mixing different techniques such as states machines and behaviours trees in one agent.

With this tool, you can create intelligent agents very easily, with just a few lines of code using the tool's API. The agents can implement one of the two possible techniques, or the developer can create a combination of both techniques to create a more complex agent.

Mixing two different techniques is very easy, a behaviour tree can be placed in any state of a state machine and a finite state machine can be created in any leaf node. It will act as a hierarchical machine when the main behaviour executes the secondary behaviour it will enter in a stand by mode until the secondary behaviour finishes all its processing. Once the secondary behaviour responds with an action or decision the main behaviour will continue from where it left off.

This combination of techniques in one agent allows creating complex behaviours using the best of each world. Letting developers decide if the behaviour they want to create is more easily done using a behaviour tree or a state machine.

The tool can be used in any Unity project. The user just needs to download the package from the Github repository, import it to their Unity project and start using it in their scripts. The package contains an API guide (currently only in Spanish) with code examples to help developers create state machines, perceptions, behaviours trees, transitions, nodes... and everything they need. This API allows developers to create any object with just one line of code.


My contribution to this project

Because this project was my bachelor's final project, I was responsible for the whole project under the supervision of my director. This process consisted of research on the most common techniques to create intelligent agents in the game industry. After completing this research I decided to use the finite state machines and behaviours trees techniques for my tool.

Once the tool was finished, I created some demo scenes with access to the code to help new users understand how the tool works and a guide with code examples to facilitate the use of the tool's API.

This guide has a little description of all the objects the tool can create and the code snippet to create them with all the possible parameters.

All My Work