2 unstable releases
new 0.2.0 | Mar 5, 2025 |
---|---|
0.1.0 | Aug 19, 2024 |
#381 in Game dev
143 downloads per month
135KB
2K
SLoC
bevy_observed_utility
A state-of-the-art utility AI library for Bevy, built using ECS observers, with a focus on ergonomics and correctness.
See the documentation for a complete walkthrough example of using the library.
Get Started
[dependencies]
bevy_observed_utility = "0.2.0"
Bevy Version | Crate Version |
---|---|
0.14 | 0.1.0 |
0.15 | 0.2.0 |
Features
- Minimal boilerplate: Add utility AI to pre-existing entities with little ceremony.
- Highly expressive: Build scoring hierarchies for whatever occasion, as complex or as simple as needed.
- Order-correct scoring: Hierarchies score their children before their parents.
- Familiar design: Reuses standard
Parent
/Children
hierarchy components to build actor entities that select actions based on their child score entities. - Pay-for-what-you-use performance: Scoring and Picking variants' observers are only registered when they're spawned for the first time.
- Game flow agnostic: Works well with both real-time and turn-based game simulation.
Design Goals
In order of priority:
- Correctness
- Scoring entity trees are scored in depth-first post-order traversal, ensuring that all children are scored before their parents.
- Ergonomics:
- Adding scoring, picking, and actions to pre-existing entities should have little boilerplate.
- Modularity:
- Adding new kinds of scoring and picking should be easy.
- Adding different ways of handling actions should be easy.
- Both turn-based and real-time games should be supported.
- Performance:
- Pay only for what you use: Scoring and picking observers are only added if they are used.
- Scoring and picking should be reasonably fast. Action performance is up to the user.
Lifecycle Visualized
License
bevy_observed_utility
is dual-licensed under either:
- MIT License
- Apache License, Version 2.0
at your option.
Dependencies
~21–33MB
~535K SLoC