Description
`RingCollisionSystem.findActiveMap()` iterates over all entities every tick to find the entity holding `ActiveMapComponent`. With 8 players, this is 8 linear scans per tick (160/s). As entity count grows this becomes a performance bottleneck that will manifest in tick overruns.
Acceptance Criteria
Technical Details
- Simplest fix: store the game entity reference at system initialization time; access its `ActiveMapComponent` directly
- Or: introduce an `EntityManager.getSingleton(Class)` convenience method for single-entity components
- Applies the same pattern fix to any other system doing per-tick entity scans for singleton components
Dependencies
- Phase wiring must be complete (so the game entity exists when the system initializes)
Estimate
S
Description
`RingCollisionSystem.findActiveMap()` iterates over all entities every tick to find the entity holding `ActiveMapComponent`. With 8 players, this is 8 linear scans per tick (160/s). As entity count grows this becomes a performance bottleneck that will manifest in tick overruns.
Acceptance Criteria
Technical Details
Dependencies
Estimate
S