DOTS development status and next milestones - November 2023
“We're working on a new global entities store. Previously, entities were allocated per world and it was often confusing to determine which world an entity belonged to. Entities will be allocated globally so their values are unique when created in different worlds. When debugging, there’s no ambiguity anymore about which world an entity belongs to and this ensures that the data displayed by debug watches is always reliable.”
From the ECS 1.2 changelog
“CopyAndReplaceEntitiesFrom is unreliable and should be avoided. Entities are not the same across worlds anymore, so an optional remapping table can be passed to the function in order to look up which entity in the destination world corresponds a given entity in the source world.”
From bug reports
“EntityManager.CopyAndReplaceEntitiesFrom is unfortunately making a series of assumptions that fundamentally prevent this function from ever working in the general case. And recent changes in the way entities are allocated made it even more difficult to use properly. So we have decided to deprecate this function. There is just no way it would ever deliver on what it was supposed to do.”
CopyAndReplaceEntitiesFrom is being deprecated and never worked anyway. Is there a way to deterministically control entity iteration order if you want to roll back a world? How would one go about implementing deterministic entity roll back?