This is just a patch release because of a hiccup during the release process for 0.21.1, but is otherwise identical.
- bevy: Upgrade to bevy 0.14.0 (#101) (3a952a24)
- bevy: Update for bevy 0.13 (#93) (50415e55)
- scorers: Add support for generic types in ScorerBuilder (#96) (98337faa)
- derive: using prelude rather than ecs::xyz in derive (#99) (128f55e0)
- set_unchecked: Add
set_unchecked
method toScore
(#78) (e179cb53) - bevy: Migrated to Bevy 0.12 (#86) (69c3a4a5)
- bevy: Update to bevy 0.12.1 (#87) (6befa384)
- thinker: make ThinkerBuilder be Clone (2e493d6b)
- generics: support generic actions (#88) (7f5a3845)
- despawn: don't try to despawn if an entity doesn't exist (bdf51c32)
- bevy: Update to bevy 0.11 (#79) (72bb861f)
- bevy: Update to bevy 0.10 (#72) (66ece025)
Probably the biggest change in this release is removal of the blanket
ActionBuilder
and ScorerBuilder
implementations for Clone
types. This is
a fairly significant breaking change, but one that is fairly easy to resolve:
simply use the new #[derive(ActionBuilder)]
and #[derive(ScorerBuilder)]
macros to derive the necessary implementations for your Action and Scorer
Components and you should be good to go.
- derive: Add derive macros for Action and Scorer (#65) (359bccef)
- BREAKING CHANGE: This gets rid of the blanket implementation for Action/ScorerBuilder on Clone things, and instead requires that people use derive macros (or manually implement the traits), if they want to go the clone-to-instantiate route.
- concurrenty: Add ConcurrentMode configuration to Concurrently Action (#68) (f6d04feb)
- reflection: Implement Reflect trait for all relevant types (#69) (31543c78)
- deps: Update to Bevy 0.9 (#59) (8ce5cd1b)
- spans: Make ActionSpan::new() private (4486af1d)
- BREAKING CHANGE: This function was previously public, but it was never meant to be used.
This is a fairly beefy release. The two main changes are the addition of significant new observability features, which let you debug/trace both big-brain and your own Scorers and Actions more easily in an integrated manner. Additionally, a new advanced composite Scorer was added, MeasuredScorer, which can be used to create some interesting behaviors when you have want to factor in multiple scorers when adding cases to Thinker.
Besides that, there's several bugfixes to long-standing bugs and a couple of other features.
Enjoy!
- entities: Rename ActionEnt and ScorerEnt to Action and Scorer (43f37959)
- BREAKING CHANGE: These are externally-exported, so you'll have to rename them yourself, too
- tracing: add tracing support for Thinker/Action/Scorer (#55) (a32bc01d)
- BREAKING CHANGE: In the process of doing this,
spawn_action
andspawn_scorer
were moved out ofActionBuilder
andScorerBuilder
traits, respectively. This will likely affect any user-side composite actions and scorers. Usescorers::spawn_scorer
andactions::spawn_action
instead.
- BREAKING CHANGE: In the process of doing this,
- thinker: Add support for scheduling one-off Actions on a Thinker (#57) (382d2014)
- measures: Implement MeasuredScorer and some initial measures (#54) (c6a6c5c9)
- actions,scorers: Transform/GlobalTransform are no longer needed for hierarchies. (df10f034)
- tracing: fix warnings and wrong cfg feature name (5ff39632)
- thinker:
otherwise
clause no longer overrides running action (#56) (849ab346)- BREAKING CHANGE: This patch changes the behavior for
otherwise
such that it won't override an existing action if it's still running, but it'll still execute as soon as that action finishes. I think this is really what people expect this to do, so let's give it a shot!
- BREAKING CHANGE: This patch changes the behavior for
- tracing: drop action span scope before spawning next action (ee899e4a)
- scorers: make ScorerEnt public (#50) (9e6d7f63)
- scorers: make FixedScore members pub (#49) (f0ddb9e5)
- picker: Implement a Highest Picker (#52) (4b48f94d)
- scorers: Add ProductOfScorers composite scorer (#51) (e425e234)
- actions: make ActionEnt public, too (fc30e752)
- prelude: Add ScorerEnt and ActionEnt to the prelude (08b0598b)
- bevy: Upgrade to Bevy 0.8. (#43) (0f0c4479)
- deps: upgrade to Bevy 0.7. (#37) (38688789)
This is my first pass at a significant API improvement. I iterated on it for a while and this is what I settled on. I look forward to continuing to evolve this API as I get more feedback and experience with it! Please let me know what you think!
- thinker: stop cancelling actions when they go under Picker thresholds (4c72b3d1)
- stages: Strongly typed stages for BigBrainPlugin (65ca646e)
- builders: Blanket impls for ActionBuilder and ScorerBuilder when Clone (8bed75b5)
- api: rename attach and hide it from docs (6c64df4f)
- choice: return &Choice instead of cloning (a76dcbb6)
- example: update thirst example (edecc4c9)
- hierarchy: make sure all the hierarchy stuff is set up properly (372c13e2)
- tests: update tests (94e1b1f6)
- deps: Don't include Bevy default features when used as a dependency. (#25) (61558137)
- license: change license to Apache-2.0 (d7d17772)
- BREAKING CHANGE: This is a significant licensing change. Please review.
- actions: Concurrently was not setting its state to Failure (d4a689f6)
Got a few goodies in this release, mainly focused around composite actions and scorers, which were apparently broken.
Shout out again to @piedoomy for some of these contributions!
- actions: Add new Concurrently composite action (6c736374)
- evaluators: added inversed linear evaluator helper (#19) (f871d19e)
- scorers: Added WinningScorer composite scorer (#20) (748b30ae)
- scorers: Composite Scorers now all use
.push()
instead of a mixture of.push()
and.when()
. Please update any usages of composite scorers (63bad1fd
- scorers:
- evaluators: Make all evaluators Clone (4d5a5121)
Previously, if a Picker
re-picked the same action, and that action had been
set to Success
or Failure
, it would just keep running the action in that
state until it was time to switch to a different one.
With this version, that behavior is changed, and Failure
and Success
actions that are re-picked will be respawned entirely (not even reused).
Cheers to @piedoomy on Discord for pointing out this weird behavior!
- thinker: launch a new action when the current action is in an end state (80d23f2f)
Welp. Turns out Thinkers were completely broken? This should work better :)
- prelude: Export ThinkerBuilder from prelude (06cc03e1)
- thinker:
This fixes an issue with more children being added to an Actor causing Thinkers to get clobbered in really annoying ways.
- thinker: stop using the child/parent system for toplevel thinkers (db16e2f6)
This is a quick bugfix. Shoutout to @ndarilek for finding this one and giving me a chance to debug it!
tl;dr: Bevy's hierarchy system requires that all children have Transform
and GlobalTransform
also attached, otherwise it just... kills them.
- scorer: stop attaching duplicate scorers (10a6d022)
- thinker: add Transform and GlobalTransform (ed3a7cb3)
Just a quick release because I broke docs.rs :)
- build: remove .cargo/config.toml to make docs.rs happy (393d9807)
This is a major overhaul of the Bevy API. It removes .ron
support
altogether, in favor of plain old Rust builders.
- The
.ron
Thinker definition API is gone. Use the ThinkerBuilder API instead. - The
Action
andScorer
derive macros are gone, including all ofbig_brain_derive
. - Measures and Weights are gone.
big-brain
no longer exports everything from the toplevel. Usebig_brain::prelude::*
instead.
Probably.
- New builder-based Thinker API!
- Composite Scorers:
FixedScore
,AllOrNothing
, andSumOfScorers
. - Composite Action:
Steps
, for sequential Action execution.