While there are tons of unity behavior tree libraries on the Asset Store. I haven’t found one that meets all my game dev needs. There is the amazing Fluent Behavior Tree library. But for me it’s missing features and the project isn’t currently in development. What I’ve been craving is an open source Unity behavior tree library that’s easily extendible.
I’m proud to announce Fluid Behavior Tree. An open source behavior tree system that’s easily extendable without forking the code. This means it’s updatable and quite resilient to breaking changes on upgrade.
Behavior tree features
Here are a few highlights of why this library is awesome!
- Extendable, write your own custom re-usable nodes
- Pre-built library of tasks to kickstart your AI
- Heavily tested with TDD and unit tests
Other Features
- Minimal runtime footprint
- Tracks the last position of your behavior tree and restores it the next frame
- Documentation on how to use and extend
- Open source and free
- Built for Unity (no integration overhead)
- Includes a usage example of CTF
Usage Example
using UnityEngine; using Adnc.FluidBT.Tasks; using Adnc.FluidBT.Trees; public class MyCustomAi : MonoBehaviour { private BehaviorTree _tree; private void Awake () { _tree = new BehaviorTreeBuilder(gameObject) .Sequence() .Condition("Custom Condition", () => { return true; }) .Do("Custom Action", () => { return TaskStatus.Success; }) .End() .Build(); } private void Update () { // Update our tree every frame _tree.Tick(); } }
Why is this better than other Unity behavior tree libraries?
Most behavior trees for Unity are paid products. There’s nothing wrong with premium paid projects (and devs should be paid for their time). But it can be difficult to share code for proprietary software. Paid projects also run the risk of being deprecated or having difficulty getting enough critical mass to start a continued community.