I'm working on a design for a pipelining game engine, with data some parallelization at each pipeline stage as well.
If I have 4 stages (input/networking, physics/animation, logic/ai, rendering). If I understand the idea of pipelining correctly, then each stage would get it's own copy of the game state, including a copy of the physics simulator (in my case a bullet physics world object). That way each stage can operate concurrently without affecting the other.
Now let's say that at stage 3, an object gets added to the simulation, stages 1, 2 and 4 are now out of sync, and since their simulation state data is ahead/behind respectively, then how can I even add this object to those simulation states without having them be out of sync from the start?
I'm sure this is something commonly solved, I just haven't been able to find any literature on the subject.
Thanks in advance!