I'm working on a game where one of the main mechanics is going to revolve around manipulating time, reversing it, manipulating multiple interacting timelines, etc. One of the main things that facilitates all this is a system of recording and playing back data on various types of nodes.
Now it seems that I can use multiple threads to record data on RigidBodies without issue, but if I try to multithread re-applying those states (while disabling physics as much as I can), things get a bit Weird.
I frankly don't see any reason why I can't achieve this somehow, given I want to completely ignore all physics while 'rewinding' these objects, and all the data interaction for each thread is entirely self contained as far as I'm aware.
I've tried having the rigidbodies sleep, set their modes to static or kinematic before moving them, and setting them to have custom integrators. None of it seems to stop something from attempting to take control of the rigidbody and messing things up.
You can find all my project code/data at this github page if you want to see exactly what I'm trying to do. It's currently set up in a 'working' state with the multithreaded re-application of states commented out, and just replaced with a single-threaded version.