for the last weeks I have been working on Client-Side-Prediction for our vehicles, and tried many techniques, but somehow, nothing really satiesfied us.
We were looking for a solution that fulfills the following requirements:
-Server Authoritve | Client does not determine his own position autonomously
-No Input Latency | As a fast-paced racing multiplayer game, input latency is no option. When the player presses a key, he should see the results immeditaley
-Synchronousity (Don’t think I spelled that right, I apologize for my english) Although the Client has to predict his own future for the roundtriptime, all objects should be corrected to the same moment in time as fast as possible, to avoid confusion in aiming and driving mechanics, when ping changes occur
As I mentioned, I tried dozens of techniques, but then realized, we need Rewind&Replay for Physics.
And so I implemented it. Well, I currently am still implementing it, it required me to dig deep into the engine code, but the results look good so far, but far from being perfect yet (some errors in my implementation in the Replay, but the generall system is working).
I was wondering if anyone else of you ever implemented something similar and if you want to share your experience. As soon as I have a result good enough to show, I will of course try to share my 'knowledge", if there is any interest.
I switched to bullet physics, to read why and how the results are, and when you want a “short” explanation (“tutorial”) on what I am doing for my client-side-prediction, check out page two.