Behaviour Tree game AI in Unity
Syyrakki, Eppu (2023)
Lataukset:
Syyrakki, Eppu
2023
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2023052514138
https://urn.fi/URN:NBN:fi:amk-2023052514138
Tiivistelmä
As game worlds grow in size and complexity, developers create new ways to manage that complexity, and artificial intelligence in games plays a key part of this management. Apart from its name, artificial intelligence in games has little to do with neural networks or large language models that the public generally perceives as practical examples of AI. In games AI concerns creating an illusion of believable responses by game entities to a dynamic environment.
The first part of this thesis compares the properties and usefulness of four popular examples of systems for managing game AI. The behaviour tree system is explored in depth to offer a theoretical basis on its functionality.
The second part focuses on the author’s implementation of creating that system as a library and an editor tool for Unity game engine, including descriptions of the critical parts of the system and explanations on how and why those parts function as they do.
While the purpose of this library is to simplify management, it is not a visual scripting tool, so understanding programming concepts along with some knowledge of the C# language and Unity is required to understand and implement the library for use in a game development project. The appendix contains the code library along with an example project and is created in Unity.
The first part of this thesis compares the properties and usefulness of four popular examples of systems for managing game AI. The behaviour tree system is explored in depth to offer a theoretical basis on its functionality.
The second part focuses on the author’s implementation of creating that system as a library and an editor tool for Unity game engine, including descriptions of the critical parts of the system and explanations on how and why those parts function as they do.
While the purpose of this library is to simplify management, it is not a visual scripting tool, so understanding programming concepts along with some knowledge of the C# language and Unity is required to understand and implement the library for use in a game development project.