zmeul, on 05 March 2013 - 07:03 AM, said:
I see a problem with this "rewind" state
and the problem is that the communication between the server and the client is happening in 2 steps
let's take my case as example, I play with 140+ms ping, but that 140 translates into 280ms because of 2 way communication
I see, I fire (1) - server receives the fire order, server calculates outcome (2) - client receives outcome (3)
1) moment zero
2) 140ms later
3) 280ms later
the problem is that moment zero is already 140ms late, and this is not taking into consideration the target's latency
this is not the 1st time I talk about this, and as I said my on past post, the solution I propose is to sacrificially give everyone in the match the same latency as the biggest latency in the match
so, if I have the biggest latency, everyone plays at default 140ms delay - this way, moment zero is always at 0ms delay
Edit: Actually what I wrote wasn't quite correct.
What you describe is what happens just now. What state rewind does is rewind the simulation back to moment zero. And it does so accuratly accounting for any delay between the server and you as long as your delay is more or less constant (mitigating jitter is practically impossible). What this means is: if your ping is 140 ms the state rewind will not rewind by 140 ms but in fact by 280 ms because that was the correct state you were seeing when you sent the fire command.
Edited by Jason Parker, 05 March 2013 - 07:26 AM.