So I am making a Multiplayer FPS and already implemented some techniques that are needed.
What I have is:
-Interpolation on remote clients
-Authoritative Movement with Movement prediciton
So there's only a third technique missing: Lag compensation.
I thought about it a long time and red somewhere that PhysX has a function to create reckoning scenes. Unfortunately this isnt possible with Unity.
So I thought I'd do it myself.
My idea would be to keep the last 20 positions/rotations of the object just like in the interpolation. The bullets itself will have a script which does 3 things:
-rollback the scene depending on the latency of the player at the moment the bullet has been shot
-test raycast/spherecast against all players
-rollback the scene again to current state
What do you think about this approach?
I haven't been able to find any other solution to this than doing it manually. Furthermore it's sorta limiting because it only allows for raycasts and spherecasts.
Hopefully someone can answer this question!
Thank you in advance