Build a Smaller Bevy Scheduler
Preserve the architectural center, not Bevy’s game API.
- Create a
Worldwith typed resource storage and two component columns. - Adapt ordinary functions into a
Systemtrait with initialize/run methods. - Have each parameter register read and write
TypeIdaccess. - Build a dependency DAG and reject cycles.
- Run ready, access-compatible systems with scoped worker tasks.
- Add a per-system command queue and one explicit apply barrier.
- Add a non-
Sendsystem that must execute on the coordinator thread. - Add an
AssetServer-like background task returning an owned result. - Copy render-relevant state into a second
Worldand process it independently.
Tests should prove that readers overlap, writers exclude, dependencies override compatibility, commands cannot invalidate live queries, a panic is surfaced, and stale entity generations are rejected.
Production Bevy additionally supplies archetypes, sparse storage, query caching, change ticks, observers, reflection, scenes, platform runners, asset pipelines, render graphs, GPU lifetime management, and years of scheduler optimization.