Hi,
I've been thinking about a possible method of multithreading my game engine, which would involve copying the state of all dynamic objects at the end of the timestep and saving them to a buffer of some kind. Any non-essential subsystem (rendering, audio) could work on old states and take as much time as they like while physics and gamelogic would be simulated on the current state. This would also neatly support demo recording, enabling scrubbing forwards and backwards through time (vs only recording inputs, which would only support moving forwards, though I guess a clever system could record only the initial state and inputs while recording, and then reconstruct everything in between upon saving). While resources would be shared between all states, I'm worried that the memory usage of this system might be prohibitive (however, my plan so far is to only target next-gen and pc hardware, so I have a lot of memory to work with); not to mention the cost of actually performing the copy. Has anyone worked on a system like this? Were there any significant problems with it? Thanks.