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.

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