Skip to content

Bevy 0.17 Migration#136

Merged
M1thieu merged 8 commits into
erematorg:mainfrom
M1thieu:main
Oct 18, 2025
Merged

Bevy 0.17 Migration#136
M1thieu merged 8 commits into
erematorg:mainfrom
M1thieu:main

Conversation

@M1thieu
Copy link
Copy Markdown
Collaborator

@M1thieu M1thieu commented Oct 18, 2025

This PR completes the Bevy 0.17 migration and applies several cleanup improvements across the codebase.

Changes

Bevy 0.17 Migration

  • Upgrade all workspace crates to Bevy 0.17
  • Replace Event usage with the new Message APIs (derive, writer/reader, plugin wiring)
  • Update reflection annotations for 0.17
  • Switch the save system to ReflectSerializer
  • Raise the CI timeout to 30 minutes to cover longer cold builds

Code Quality Improvements

  • AI Systems: Remove the unused utility caching module; consolidate on core::scorers::Score
  • Needs System: Generalize NeedType so the same enum covers plants, fungi, microbes, and animals or whatever else
  • Electromagnetics:
    • Use iter_combinations() for symmetric field interactions (skip redundant permutations)
    • Assert on positive frequencies in ElectromagneticWave::new to surface invalid inputs

Testing

  • cargo check --workspace

Issues

M1thieu and others added 8 commits September 21, 2025 13:13
Reverts panic-on-invalid-input back to automatic clamping for production safety.
Prevents crashes from floating-point drift, config errors, and FixedScore edge cases.

I did try a little and faced an issue whereas I did not with this one my bad here
- Guard wave helpers against zero vectors and apply displacement from rest pose

- Fix wave solver chunking, force accumulation, and basic ai if-let

- Harden ai need decay, weighted product, and save reflection
- Update all crates from bevy 0.16 to 0.17
- Migrate Event to Message for internal communication
- Add #[reflect(Component)] annotations
- Update reflection serialization API
- Fix component iterator dereferencing

Closes erematorg#135
Bevy 0.17 fresh builds take longer than 25 minutes.
Prevents timeout during cache warming on first run after dependency changes.
Replace animal-centric need types with universal biological drives that apply to all life forms (animals, plants, fungi, microbes):

- Hunger → Energy (food/sunlight/decomposition)
- Add Resources (water, minerals, nutrients)
- Expand Safety (predators, herbivores, environmental hazards)
- Add Homeostasis (temperature, pH, osmotic regulation)
- Add Reproduction (universal biological drive)

This enables the AI system to work seamlessly with any organism type through component-based satisfaction mechanisms rather than hardcoded organism-specific logic.
- Delete utility.rs with unused caching system
- Consolidate Score type in scorers.rs
- Fix DRY violation in core/
@M1thieu M1thieu merged commit a5b0b80 into erematorg:main Oct 18, 2025
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Bevy 0.17 Migration

1 participant