Hey, quick update… The physx solution came pretty close to the satisfying result, but only close. It wasn’t useable in a release game at any means, and I got really tired of not knowing what to do and not having 100% controll over the physics simulation.
Long story short, I integrated Bullet Physics into UE4 and implemented my same technique for the new physics engine and it works like a charm so far! You have 100% controll about the time and scene very easily in Bullet and resetting and replaying N substeps can be performed within a single tick, and it’s “easy as eating cake”, at least compared to physx, where you have to dig in the engine code, “hack” into the substepping workers and have to wait for obscure physx callbacks and interprete undocumented networking code of UE. Not blaming UE for not documentating those classes, no one barely uses those.
So, advice for all of you: When you look forward to implement custom vehicle physics with competitive multiplayer, use Bullet physics. Got inspired by Rocket League, who also abandoned physx and implemented bullet.