While learning ECS architecture, I found out that some ECS libraries gives me unsorted entity ids when iterating over filtered entities in system. (Seems like deletion algorithm in sparse set is the reason...)
Won't it be a problem if you need deterministic results(Networked game, replay feature, etc...) for your game?
For example, assume there's entity 1 and 2. They have a CollisionBox
component.
When they hit an entity with a GoalBoundary
component, the one who hits it first wins.
If somehow entity 1 and 2 arrived Goal at the exact same frame, then iteration order will be critical to the game's result.
Maybe my example is not perfect, but hope you get the point - Sometimes iteration order is so critical in game logic and I am confused about understanding how these kinds of issues must be solved in ECS architecture.
Any help will be appreciated, thanks!