beet
beet copied to clipboard
A modular behavior library for the Bevy Engine.
beet
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:
- Behavior Trees
- State Machines
- Utility AI
- LLM Sentence Similarity
- Reinforcement Learning
Hello World
// A demonstration of Sequence control flow
world.spawn(SequenceFlow)
.with_child((
Name::new("Hello"),
EndOnRun::success(),
))
.with_child((
Name::new("World"),
EndOnRun::success(),
))
.trigger(OnRun);
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://bevyhub-public.s3.us-west-2.amazonaws.com/assets.tar.gz
tar -xzvf ./assets.tar.gz
rm ./assets.tar.gz
Bevy Versions
bevy |
beet |
|---|---|
| 0.15 | 0.0.4 |
| 0.14 | 0.0.2 |
| 0.12 | 0.0.1 |
TODO
- When we get
OnMutateobservers, they should probably replace mostOnInsertobservers we're using