behavior-tree

Crates.iobehavior-tree
lib.rsbehavior-tree
version0.1.0
sourcesrc
created_at2021-09-15 16:03:35.435696
updated_at2021-10-30 04:50:03.459401
descriptionYet another behavior tree library for rust!
homepage
repositoryhttps://github.com/darthdeus/behavior-tree
max_upload_size
id451869
size45,254
Jakub Arnold (darthdeus)

documentation

https://docs.rs/behavior-tree

README

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!

Commit count: 93

cargo fmt