What’s proper way of generating procedural world in ECS?
For now I have two system groups: EntityIntantiationGroup and EntitySetValueGroup. First one Instantiates Entities from Entities prefab based on perlin noise. The problem I have is that they are instantiated with commandBuffer which is on the end of this group and this creates sync point in the middle of frame. EntitySetValueGroup works on newly spawned entities and sets values after instantiation, it works by checking what item it is because it has ItemTag component. The thing is EntitySetValueGroup must work on Entities that already have ItemTag set, that’s why EntityIntantiationGroup has commandbuffer in the end. How can I improve this technique so that I won’t have to create sync points in the middle of frame?
You are going to have a sync point at some point. So what is stopping you from moving the instantiation part to your dedicated sync point and then initializing the values later?