#behavior #beet #game-ai #beetmash

macro beet_flow_macros

A very flexible AI behavior library for games and robotics

1 unstable release

0.0.4-rc.1 Jul 27, 2024

#9 in #beet

38 downloads per month
Used in 2 crates (via beet_flow)

MIT/Apache

16KB
339 lines

beet

A modular behavior library for the Bevy Engine.

Crates.io version Download docs.rs docs

Guidebook | API Docs

Beet is behavior expressed as entity trees, using Observers for control flow. The entity-based approach is very flexible and allows for multiple behavior paradigms to be used together as needed.

Currently implemented paradigms:

Hello World

// A demonstration of Fallback control flow
world.spawn(FallbackFlow)
  .with_children(|parent| {
    parent.spawn((
      LogOnRun::("Hello"),
      EndOnRun::failure(),
    ));
    parent.spawn((
      LogOnRun::("World"),
      EndOnRun::success(),
    ));
  })

Examples

The examples for beet are scene-based, meaning each example provides a scene for a common base app. As Bevy scene workflows are a wip, there are a few Placeholder types used for not-yet-serializable types like cameras, asset handles etc.

Most examples rely on assets that can be downloaded with the following commands, or manually from here.

curl -o ./assets.tar.gz https://storage.googleapis.com/beet-misc/assets.tar.gz
tar -xzvf ./assets.tar.gz
rm ./assets.tar.gz

Bevy Versions

bevy beet
0.14 0.0.2
0.12 0.0.1

Dependencies

~1.5–2.1MB
~43K SLoC