The release of the upcoming Behavior Designer Pro version is approaching and ahead of the release we’d like to share some of the top new changes. Behavior Designer Pro is a complete rewrite of Behavior Designer taking our learnings from the 11 years that Behavior Designer has been on the Asset Store. There are too many changes to list everything here but the Pro version contains something for everyone. There are however two major features:
Powered by DOTS
Behavior Designer Pro uses DOTS as its backend allowing you to have hundreds of thousands of behavior trees running at the same time. The performance is incredible. Of course individual results will depend on the behavior tree and target hardware, but with the original Behavior Designer you were lucky if you could get a couple of thousand trees running.
In addition to supporting DOTS, Behavior Designer Pro also supports the GameObject workflow that you are used to. You have the option of using a DOTS task or a GameObject task when you are creating your tree. If you use a GameObject-based task then the speed will not be as fast as a pure-DOTS based task but there is still some improvement compared to the original Behavior Designer.
With the DOTS backend you don’t necessarily need to know that you are even using DOTS if you are not creating your own tasks. Since DOTS tasks are value type objects you cannot used the Shared Variable system or reference objects in the GameObject world, but you have full access to the DOTS Entity and World system.
UI Toolkit Interface
While this isn’t as popular as the DOTS backend it is still very important. The original Behavior Designer uses IMGUI which redraws ever UI update. UI Toolkit is persistent and only redraws when there is a change. This makes the interface much more performant. You can have thousands of tasks within a single tree and the editor will run without any issues.
Other Features
Beyond the backend and UI changes Behavior Designer Pro also contains literally hundreds of changes and new features. Here are some of the top new features:
Save Load: save and load your behavior tree at the exact same spot.
Event Nodes: Allows other branches to run outside of the main branch. This can be used for things such as triggering a callback when a conditional abort occurs.
Generic Shared Variables: You can now create new SharedVariables with a simple generic type, such as SharedVariable<int>.
Task Delegates: Delegates can now be used for calling any method within your code base. You no longer need to create a specific task for that purpose or rely on slow reflection.
Node Groups: Groups have been added to the editor allowing for better organization.
Node Views: Easily customize the look of the node.
Improved Task Add Dialogue: The Task Add Dialogue has been improved to include categories. It is now the primary method of adding tasks.
New Shared Variable Scopes: Shared Variables can now exist within the graph, GameObject (new), Scene (new), or Project.
Subtree Overrides: External Behavior Trees have been renamed to Subtrees, and it has gotten easier to pass variables between trees.
Expanded Property Bindings: Property Bindings are no longer limited to just Components – they can be set on Scriptable Objects as well.
Runtime Subtree Replacement: In order to change which subtree the Behavior Tree Reference task referenced you had to completely restart the tree. Now you can simply call a method to do the replacement for you.
Improved Handling of Renamed Files: Behavior Designer Pro supports the MovedFrom attribute allowing you to easily refactor your class names.
Stacked Action/Conditional: By default new action and conditional tasks will be grouped with the Stacked Action or Stacked Conditional tasks. This does not apply to DOTS tasks.
Watched Variables: Watching a variable has been improved so you can now edit the value right within the node.
Burst and Job System Support: Behavior Designer Pro uses Burst and the job system to execute your behavior tree allowing for quick execution.
UI Controls: Opsive’s UI Control structure has been included in Behavior Designer Pro making it easy to support new object or attribute types.
Package-Based Workflow: Behavior Designer Pro has moved to the packages folder allowing for better organization.
Source Code Available: Behavior Designer Pro includes the behavior tree runtime by default, and you can now optionally get all of the source code by subscribing to our repository.
Sample Scenes: For the release we’ve included 15 sample scenes showing how to use the major features of Behavior Designer Pro.
Behavior Designer Pro requires Unity 2022.3.11 as the minimum with Entities 1.3.8.