Behavior Designer was designed from the ground up to be an exceptional behavior tree implementation. We believe the following features truly makes Behavior Designer stand apart from its competition.
Intuitive Visual Editor and Debugger
Having an intuitive visual editor and debugger has been one of Behavior Designer's goals from Day 1. After all, Behavior Designer is a behavior tree implementation designed for everyone and not just programmers.
Behavior Designer uses a data oriented design instead of an object oriented design for its behavior tree execution. This reduces the number of cache misses and as a result, it increases performance. Noel Llopis wrote a good article on the advantages of a data oriented approach versus object oriented.
Dedicated Behavior Tree Implementation
The entire focus of Behavior Designer is to be an exceptional behavior tree implementation, not to include every type of AI system in one package. If Behavior Designer included other systems then its behavior tree focus would be lost. Behavior Designer adds integration tasks for other AI systems which means that each Behavior Designer release is a better behavior tree implementation compared to the previous release.
Conditional Aborts are a powerful feature which allow for dynamic behavior trees without the tree having to be executed from the beginning every tick. This feature is similar to Observer Aborts in Unreal Engine 4.
Hundreds of Tasks
Behavior Designer includes hundreds of tasks which cover the entire UnityEngine API. This allows non-programmers to create advanced AI and allows programmers to spend less time on writing custom tasks.
Unity 5 Networking Support
Behavior Designer supports Unity's networking implementation added in Unity 5.1. This allows your client AI agents to respond to the authoritative server running Behavior Designer.
Behavior Designer includes tasks which support Utility Theory AI. Utility Theory AI is great for dynamic situations where there's not always a clear binary choice. For example, if your game is similar to The Sims, should your character eat, sleep, or go to work? The utility tasks can evaluate which is the best decision.
While Behavior Designer contains hundreds of tasks in some cases it is necessary to create your own tasks. Behavior Designer makes this easy by having an API that is similar to the MonoBehaviour API.
Realtime Error Checking
As tasks and variables are added to your behavior tree the realtime error checker will immediately point out any errors. This allows you to quickly correct the error and not wait until runtime.
Binary or JSON Serialzation
Behavior Designer allows for the flexibility of you being able to choose the type of serialization used. Some prefer binary serialization for its speed while others use JSON serialization for easy merging.
Custom Blackboard Variables
Your behavior tree tasks should not be limited to just primitive or Unity object types. This is why Behavior Designer allows you to easily share any type of variable between tasks.
Built In Event System
Behavior Designer includes a built in event system which allows your tree to react to changes without having to write any code. Events can be triggered from within the behavior tree or within a custom script.
In some cases it may not be possible to have a native task for everything. For example, you just downloaded a new asset from the Asset Store that Behavior Designer doesn't support yet. In these cases the Script Control tasks allows you to still use that new asset's functionality without having to write any custom tasks.
Property Drawers are a powerful Unity feature which let you quickly extend the Unity editor functionality. Behavior Designer has this same concept with Object Drawers - they are exactly the same as Property Drawers except they operate on any object.
Behavior Designer uses external trees which allow for modularity and task reuse. Inherited fields allow you to specify parameters on your external behavior trees which allow common tasks to have their own values.
The Variable Synchronizer component enables you to easily synchronize your behavior tree variables with other types of variables. The Variable Synchronizer can synchronize any behavior tree variable, property, animator parameter, PlayMaker variable, or uFrame property with any local or global variable.
We believe that documentation can make or break an asset so the Behavior Designer documentation has been designed to be all inclusive. It covers everything from what a behavior tree is to creating your own custom composite tasks.
We know that some people like to learn with text while others like to learn with videos. This is why we have created a library of videos which give an overview of many of Behavior Designer's features.
In other cases there is no better way to learn than to download an example and start playing with it. This is what our sample scenes are for. In addition to the non-integration sample scenes, we have created a sample scene for every single third party integration.
Third Party Integration
Behavior Designer is integrated with many third party assets, and growing with each update, to allow you to easily have your behavior tree interact with that asset. If your favorite asset hasn't been integrated let us know and we'll add support for it.
The addon packs allow you to get your AI agent's behavior tree up and running quickly. The addon packs add common task functionality - such as movement, tactical formations, and group formations - to your behavior trees in a generic way.
Behavior Designer has been used by thousands of people and across all the Unity supported platforms. Rest assured, if there happens to be a problem or a new Unity version breaks something we will fix it as quickly as possible.
Behavior Designer is unit tested to ensure each release is a stable release. This also prevents old bugs from reappearing in a new release.
Unity assets are our full time job. As such, if you have a question or need a quick example of how to accomplish something we are here to help and will be able to quickly respond. In addition, our forum becomes a better resource everyday.
Many Other Features
This feature list only begins to describe how Behavior Designer is the behavior tree implementation for everyone. Many other features are included, some of these include watched fields for quick debugging, task colors for organization, and the ability to take a screenshot within the Behavior Designer editor for easy collaboration.