Behavior Bricks is a state-of-the-art engine for Behavior Trees along with an intuitive visual editor. Behavior Bricks has been designed with three main goals in mind: efficiency, extensibility, and large scale. Behavior Bricks includes some unique features not to be found in other tools for Behavior Trees available in the Unity 3D Asset Store.
Promote collaboration between programmers and designers
Programmers provide the bricks and designers build the treesExecution engine
- CPU-friendly
- Control your AI CPU budget
- Low memory footprint
Actions and conditions can be suspended thus avoiding CPU unfriendly busy waiting. Have your actions and conditions register as observers for a given event and have them resumed when it takes place
Specify the maximum number of subtasks or nodes that an NPC may run per tick. The engine manages a queue of nodes that guarantees the correct execution across ticks
Behavior trees are shared among all the GameObjects that use them. Using a memento-pattern variant the behavior executor of each NPC replicates just those nodes currently being executed
Behavior Bricks framework
- Parameterized Behavior Trees
- Program new actions and conditions
- Reuse behaviors in different NPCs
Behavior Trees are functional abstractions with input and output parameters. Thus a given BT can be instantiated in different GameObjects, used a as subtree for a more complex behavior, or configured in a prefab that can be instantiated and further configured. Every BT is equipped with a blackboard to exchange values between nodes
Actions, and conditions can be programmed in C# extending some pre-defined classes available in the framework. Such classes use common C# and Unity types and do not require any fancy wrapper. Using C# attributes, actions and conditions are annotated with information about parameters, and become automatically integrated into the visual editor
Actions can be created as independent classes or as MonoBehaviour subclases that are later attached to GameObjects. With actions attached to GameObjects, the same BT can execute different behaviors depending on the GameObject it has been attached to, since, for instance, for a GameObject the action 'moving' is implemented as walking and for another one 'moving' means flying
Visual Editor
- Unity-friendly
- Size matters
- Behavior trees configured as components
Drag-and-drop designer, that works as a native Unity view that can be integrated into Unity's main window or as a separate independent window (best suited for a dual screen workspace)
Designed for managing a large collection of behaviors (BTs), actions and conditions, organized in a tree view equipped with a search utility. A tabbed editor allows to edit several BTs at a time, and to navigate the behavior hierarchy through breadcrumbs
A Behavior Tree is assigned to a GameObject through an execution component that allows to specify input values for the BT in the Unity inspector
Behavior Bricks is developed by PadaOne Games, an indie game studio that produces and publishes games for consoles. We use Behavior Bricks for our own projects and it has been tested in production with several console SDKs. Behavior Bricks will be developed and supported as long as we make games, or even longer ...