Version Comparison
Both Behavior Designer and Behavior Designer Pro are actively supported behavior tree implementations from Opsive. The original Behavior Designer version was released in 2014 and has been used by hundreds of thousands of developers. In 2019 a DOTS version of Behavior Designer started development but was put on hold until Unity DOTS matured. As DOTS approached version 1.0 the DOTS version of Behavior Designer (now called Behavior Designer Pro) resumed development.
Behavior Designer Pro takes all of the lessons from the original version of Behavior Designer and improves every aspect with a DOTS and UIElements backend. While Behavior Designer Pro requires DOTS it does not require you to be familiar with DOTS in order to use it. The original Behavior Designer workflow has worked extremely well and Behavior Designer Pro only improves upon this workflow.
Due to the huge changes in structure you are not able to convert behavior trees from Behavior Designer to Behavior Designer Pro or vice-versa. Any tasks that you have created in one package will also need to be updated for the other package, though it’s a straight forward change from Behavior Designer to Behavior Designer Pro. Behavior Designer Pro.
Here’s a look at the high level differences between the two packages:
Behavior Designer | Behavior Designer Pro | |
Supported Unity Versions | 2021.3 and newer | 2022.3.11 and newer |
Runtime Implementation | Standard C# | DOTS Framework |
Editor Implementation | IMGUI | UIElements |
Platform Restrictions | None | WebGL not supported due to Burst |
Code Optimizations | No heap allocations after initialization | No heap allocations after initialization plus Burst and job system support |
Development Status | Maintenance Updates | Continuous Development |
At the feature level both Behavior Designer and Behavior Designer Pro are behavior tree implementations. With that said, Behavior Designer Pro has many advantages over Behavior Designer:
Behavior Designer | Behavior Designer Pro | |
Conditional Aborts | ✅ | ✅ |
Conditional Aborts Callbacks | ❌ | ✅ |
Error Window | ✅ | ✅ |
Event Branches | ❌ | ✅ |
Extensible Node Inspector | ❌ | ✅ |
Extensible Task Inspector | ✅ | ✅ |
GameObject & Scene Shared Variables | ❌ | ✅ |
Generic Shared Variables | ❌ | ✅ |
Graph & Global Shared Variables | ✅ | ✅ |
Node Groups | ❌ | ✅ |
Package-Based Workflow | ❌ | ✅ |
Property Mappings | ✅ | ✅ |
Runtime Tree Replacement | ❌ | ✅ |
Save/Load | ❌ | ✅ |
Shared Variable Change Callback | ❌ | ✅ |
Shared Variables Callbacks | ❌ | ✅ |
Source Repository Available | ❌ | ✅ |
Subtree Overrides | ❌ | ✅ |
Task Delegates | ❌ | ✅ |
Visual Debugging | ✅ | ✅ |
Watched Variables | ✅ | ✅ |
Behavior Designer Pro is the recommended package if you are just starting your project or are not that far along. Even though it uses DOTS the workflow is similar for authoring your behavior tree and the GameObject-based tasks have a similar setup as the original Behavior Designer tasks. There is an upgrade discount between Behavior Designer and Behavior Designer Pro.