Beet
Behaviors Expressed as Entity Trees
Beet is a very flexible behavior library for games and robotics.
It is built with bevy
and represents behaviors as entities, connecting them through the parent-child relationship.
This library is experimental and I'd love to hear any questions or feedback, my handle is
@mrchantey
on the Bevy Discord.
Quick Links
Features
🌈 Multi-Paradigm
Create behaviors from a growing list of paradigms including classical and machine learning techniques. Check out the roadmap for implementation status.
🐦 Bevy Friendly
Behaviors are defined as a collection of components and ticks are ecs-first, running all action systems concurrently.
🌳 Modular
Actions are very simple and entity trees are self-contained, enabling behavior composition.
🎯 Target Anything
Beet is suitable for powerful gaming rigs and tiny microcontrollers alike.
Drawbacks
Relations
Agents and behaviors are seperate entities requiring their own queries. This may be addressed by the introduction of Entity Relations.
Tick Traversal
By default all actions run concurrently meaning graph traversals are handled in the next frame. If single frame traversals are required there are a couple of options:
- Use a custom schedule and update it manually until traversals are complete
- Arrange and/or duplicate system execution in a specific order
- Hardcode action sequences into a single system