bevy
bevy copied to clipboard
Add PhysicsSystems and AiSystems system sets.
Objective
- Allow ordering systems against unknown physics engine / AI crate.
Solution
- Add an unused generic
PhysicsSystemsandAiSystemssystem set that crates can opt into.
Showcase
The PhysicsSystems and AiSystems are useful general system sets for ordering systems relative to unknown crates. For example, your crate may care that it manipulates transforms before a physics engine. Physics engines can put their systems in this system set, and your crate can order its systems before this system set. This allows crates to avoid pulling in extra dependencies just for their system sets!
AiSystems feels a bit too generic to me. "AI" can be arbitrary app logic, whereas "Physics" is more often handled in a specific "physics step".
AI might not be the best word for that anymore and we can make the use case more clear. Maybe call it "AgentSystems" (for ordering against when entities with agency make decisions).