I have a replay system that records and replays user input. The input is recorded in FIXEDUPDATE and is passed through the replay system before use (so that the value used live is always the value that was recorded).
This creates completely deterministic replays. I can run the game in the editor, trigger the replay, and the exact same thing will happen every time. There is only one moving object in the scene.
However, when I generate a PC build of the game, the replay does not reproduce the same outcome - but it DOES always produce the SAME wrong outcome - still deterministic, just not the same as in the editor.
Are there any physics settings I should be looking for that might change when a game is built?
EDIT: Having realised that script execution order might be a factor, I changed all the fixedupdate functions in my object’s components to ‘ForceFixedUpdate()’ and called them in a fixed order from a single component on the vehicle.
This did prove script execution order can cause problems, because the old replays no longer work properly.
However, replays generated in the editor (which work perfectly when replayed in the editor) STILL don’t produce the same outcome in a build.
What else could I be missing?