Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mrchantey/beet
A modular behavior library for the Bevy Engine.
https://github.com/mrchantey/beet
ai behavior bevy game-development robotics
Last synced: about 1 month ago
JSON representation
A modular behavior library for the Bevy Engine.
- Host: GitHub
- URL: https://github.com/mrchantey/beet
- Owner: mrchantey
- License: apache-2.0
- Created: 2024-03-03T21:45:46.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2024-07-26T10:55:34.000Z (4 months ago)
- Last Synced: 2024-07-26T13:29:46.713Z (4 months ago)
- Topics: ai, behavior, bevy, game-development, robotics
- Language: Rust
- Homepage: https://mrchantey.github.io/beet/
- Size: 3.51 MB
- Stars: 28
- Watchers: 3
- Forks: 1
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE-APACHE.txt
Awesome Lists containing this project
README
# beet
Beet is behavior expressed as entity trees, using [Observers][bevy-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](./examples/hello_world.rs)
- [Basic Utility AI](./examples/hello_utility_ai.rs)
- [LLM Sentence Similarity](./examples/hello_ml.rs)
- [Reinforcement Learning](./examples/frozen_lake_train.rs)## Hello World
```rust
// A demonstration of Fallback control flow
world.spawn(FallbackFlow)
.with_children(|parent| {
parent.spawn((
LogOnRun::("Hello"),
EndOnRun::failure(),
));
parent.spawn((
LogOnRun::("World"),
EndOnRun::success(),
));
})
```[bevy-observers]:https://docs.rs/bevy/latest/bevy/ecs/observer/struct.Observer.html#
## Examples
> ⚠️⚠️⚠️ If you'd like to check out this repo please use the stable [v0.0.3](https://github.com/mrchantey/beet/tree/v0.0.3) commit ⚠️⚠️⚠️
>
> Beet and my other crates it depends on are currently on a scene serialization bugfix Bevy fork, see [this issue](https://github.com/bevyengine/bevy/issues/14300) for details. The fix is scheduled for the `0.14.2` milestone so fingers crossed we'll be back on bevy main from then.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](https://storage.googleapis.com/beet-misc/assets.tar.gz).
```sh
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 |