bevy_observed_utility

Crates.iobevy_observed_utility
lib.rsbevy_observed_utility
version
sourcesrc
created_at2024-08-19 04:48:59.731956+00
updated_at2025-03-05 01:50:21.671922+00
descriptionErgonomic and Correct Utility AI for Bevy Engine
homepagehttps://github.com/ItsDoot/bevy_observed_utility
repositoryhttps://github.com/ItsDoot/bevy_observed_utility
max_upload_size
id1343479
Cargo.toml error:TOML parse error at line 18, column 1 | 18 | autolib = false | ^^^^^^^ unknown field `autolib`, expected one of `name`, `version`, `edition`, `authors`, `description`, `readme`, `license`, `repository`, `homepage`, `documentation`, `build`, `resolver`, `links`, `default-run`, `default_dash_run`, `rust-version`, `rust_dash_version`, `rust_version`, `license-file`, `license_dash_file`, `license_file`, `licenseFile`, `license_capital_file`, `forced-target`, `forced_dash_target`, `autobins`, `autotests`, `autoexamples`, `autobenches`, `publish`, `metadata`, `keywords`, `categories`, `exclude`, `include`
size0
Christian Hughes (ItsDoot)

documentation

README

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

lifecycle

License

bevy_observed_utility is dual-licensed under either:

  • MIT License
  • Apache License, Version 2.0

at your option.

Commit count: 0

cargo fmt