Wondering if anyone has a follow-up to this post from a July 2015. I'm trying to find out if the server compensates for differences in ping: https://www.reddit.com/r/RocketLeague/comments/3erkr1/how_does_physics_synchronization_and_lag/
"I'm curious if anyone has any insight or theories how RL implements the synchronization between the server and the clients.
The EU servers have been struggling lately and to me the behavior in some of the matches seems just bizarre, as just attempting to drive straight forward can throw your car around the field wildly.
I haven't dabbled much with net code for games, but here's my layman assumption:
Client runs the simulation based on player input and latest information from server. Whatever you do is reflected instantly on your client so there's no input latency, but the overall state is an estimation.
The server runs a simulation on it's own based on the latest inputs from both clients, this is the one true state that can trigger things like goals and boost pickups.
The properties for the cars, ball, boosts etc. is communicated back to the clients, which match them against their own estimation.
If the state differs, the corrections are applied bit of a transition animation so things kinda rubber band around instead of blinking, which can be unnoticeable with very low latency
To compensate for the latency, the client keeps rendering the other players doing whatever they did in the last tick. E.g. accelerating forward.
As long as ticks come reliably at a fast pace, there shouldn't be huge differences between the states. Although things can move and change their direction very fast in the game.
The server are struggling to maintain steady stream of state ticks to the clients, which results in a bunch of rubberbanding despite the low ping.
But none of this would explain why my car might warp five meters to the right and start spinning from the very start of the match, despite me just accelerating.
Is the server-side simulation calculating physics wrong because of the load? Does it run some kind of simplified model?
Is there some kind of anti-cheating sanity checks that go awry when the server can't process all the requests and the clients seemingly report warping across the field?
To me a competitive, fast-paced physics game with lots of players and networking sounds like quite a programming nightmare. Obviously only developers know the actual specifics of the implementation, but I'm also interested if there's any tech-savvy readers who might shine some light on this with an educated guess."
External link â