Create your own Behaviour Tree API in C# and apply it in the Unity Game Engine
Behaviour Trees (BTs) are an A.I. architecture that provide game characters with the ability to select behaviours and carry them out, through a tree-like architecture that defines simple but powerful logic operations. It can be used across a wide range of game genres from first-person shooters to real-time strategies and developing intelligent characters capable of making smart decisions. The codebase is deceptively simple and yet logical, reusable and extremely powerful. The library is written in C# and implemented in Unity 2020, however will easily port to other applications.
In this course, Penny demystifies the advanced A.I. technique of BTs used for creating believable and intelligent game characters in games, using her internationally acclaimed teaching style and knowledge from almost 30 years working with games, graphics, and having written two award-winning books on games AI. Throughout, you will follow along with hands-on workshops designed to take you through every step of putting together your own BT API. You will build the entire BT library from the ground up, while building an art gallery simulation scenario
Learn how to program and work with:
- A Behaviour Tree Library and API that’s reusable across a wide range of game projects.
- Tree architectures, nodes, leaves, sequences, and selectors that define the behaviour of individual non-player characters (NPCs).
- Navigation Meshes and Agents that provide advanced path planning and navigation capabilities for characters.
- A Blackboard System that acts as a global inventory for world states and allows characters to communicate with each other.
Contents and Overview
Throughout the course, you will follow along while a BT library and API are constructed from the ground up, to allow you intimate knowledge of the codebase. Alongside this, a simple art gallery simulation will be constructed to test out the functionality of the library as it is put together. The simulation will also rely on Unity’s NavMesh System for navigation and path planning.
The course begins with an overview of Behaviour Trees and covers all the fundamental elements (including trees, nodes, leaves, sequences, selectors, and other logical constructs). Code will be developed to navigate the Behaviour Tree and used to drive non-player characters in the art gallery including a robber, cop, visitors and workers. Throughout this, students will gain a solid knowledge of how Behaviour Trees are constructed and can be traversed, to apply actions to game characters.
At the completion of this course, students will have a fully-fledged BT library and API that they can reuse in their own game projects, to provide game characters with complex intelligent behaviours.
What you’ll learn
- Students will learn the theory of behaviour tree design.
- Students will learn how to develop a behaviour tree API in C#
- Students will learn how to use behaviour trees to define the actions of non-player characters.
Table of Contents
1 Course Overview
2 Join the H3D Student Community
Behaviour Tree Concepts
4 Introducing Behaviour Trees
6 Tree Printing
7 Leaf and Action Nodes
8 NavMesh Movement
11 Extending Action Methods
14 A Generic Agent Class
15 Optimising with Coroutines
16 Repeating Tasks
17 Ensuring Node Status Return True States of GameObjects
18 A Prioritising Selector
19 Dynamically Changing Node Priorities
20 Random Selector Challenge
21 Shuffle and Sort Once
Refactoring for Scalability
22 Dealing with Arrays of Choice
23 Traditional AI Fleeing Part 1
24 Traditional AI Fleeing Part 2
25 Building A Complex Behaviour Tree
26 Cancelling Sequences with Conditions
27 Abandoning Sequences
28 Adding Co-dependancy Challenge
29 Fallback Behaviours
Adding New Agent Challenge
30 Art Lovers
31 Art Lovers Behaviour
32 A Coroutine to Effect Agent Properties
33 The Loop Decorator Node
35 Integrating Blackboard State Challenge
36 Not Daylight Robbery
37 Agent Cooperation
38 Interacting Agents
39 Assigning Individual Agents to Work with Each Other
40 Thinking like a Behaviour Tree
41 Remember to Add Dependencies
42 Cop Patrol Challenge
43 Cop & Robber Challenge
44 Debugging a Behaviour Tree
45 Some Final Words from Penny