Does this mean that the client is constantly showing an extrapolated version of the ball / other players? (And then using smoothing techniques when the server ends up disagreeing with the client rather than having an instant jittery correction.)
For example, if my client has 50ms of latency (25ms in either direction):
The server is at time 100ms
My client has received game-state for time 75ms.
If my client sends an input now, the server will receive and execute that input at time 125ms (ignoring the buffer that causes the server to wait a little before executing the inputs).
Because of this, my client uses the past game-state values to extrapolate game-state (ball / other players) for time 125ms (while the client only has state up to 75ms).
Yep that's exactly right!
Read moreAnd how does that input buffer on the server affect this? If this input buffer is causing inputs to be delayed ...