#ai #gamedev #artificial-intelligence

behavior-tree

Yet another behavior tree library for rust!

9 releases

0.1.0 Oct 30, 2021
0.0.8 Oct 14, 2021
0.0.6 Sep 30, 2021

#1260 in Game dev

Download history 3/week @ 2024-02-16 4/week @ 2024-02-23 2/week @ 2024-03-01 129/week @ 2024-03-29

129 downloads per month

MIT license

27KB
552 lines

behavior-tree for Rust!

Crates.io Crates.io (latest) Crates.io docs.rs GitHub Workflow Status GitHub commit activity GitHub branch checks state

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 or negative 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.

Other behavior tree crates

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.

Who uses this?

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!

Dependencies

~560–780KB
~12K SLoC