USE AT YOUR OWN RISK. This crate is under heavy development at the moment and a lot of the APIs will change often and without any notice. Performance is also terrible right now.
Implemented nodes:
- Sequence - execute child nodes in a sequence until one of them fails.
- Select - execute child nodes in a sequence until one of them succeeds.
- While - execute a child node only when a condition is true.
- Wait - constant time delay.
- RandomWait - random time delay with a defined max.
- Action - generic user-defined action.
- StatefulAction - generic user-defined action which manages its own state in addition to the tree-wide Blackboard.
- Cond - checks a condition and executes either the
positive
ornegative
child.
Almost all of the behaviors have test coverage including a few of the edge cases, but it is by no means exhaustive yet.
There are a few quirks that need to be figured out, especially with respect to debugging/visualization, which will be stabilized before version 0.1
.
There are a few other crates that implement behavior trees (listed below). This library is inspired by all of them, as well as the Behavior Tree Starter Kit from Game AI Pro.
-
https://github.com/pistondevelopers/ai_behavior
-
https://github.com/eaglgenes101/stackbt
The code was originally extracted from BITGUN, which continues to use it as it's being developed open source. If you're using this crate in your game do open a PR so we can list your game here as well!