Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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.

Awesome Lists containing this project

README

        

# 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][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 |