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 trees

Efficiency first

The execution engine for behavior trees has been developed with efficiency in mind. No extra execution time for using third-party tools

Reuse behaviors

Behavior Bricks is designed to facilitate behavior reuse between projects

  • CPU-friendly
  • 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

  • Control your AI CPU budget
  • 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

  • Low memory footprint
  • 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

  • Parameterized Behavior Trees
  • 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

  • Program new actions and conditions
  • 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

  • Reuse behaviors in different NPCs
  • 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

  • Unity-friendly
  • 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)

  • Size matters
  • 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

  • Behavior trees configured as components
  • 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 ...