Skip to main content
GameDev.net gamedev.net
🔒 Locked

Client-server lockstep for rts

Started by ccherng May 19, 2012 at 9:58 AM 2 replies 3.1k views
Original Post
ccherng
ccherng
In the article
http://gafferongames...ame-networking/
there was the following comment which i could not understand:

[color=#111111][font=Verdana, sans-serif]"btw afaik StarCraft don’t use peer-to-peer it uses client-server model with lockstep (at least warcraft 3 does so). It has the advantage what theoreticaly laggers will not affect gameplay/response latency at all (but to not let them fall behind server do timeouts so the lagger can catch up, also doing temporary local game speed increasing) and imo it’s the only and true way to do sync in RTS like games. (and for some reasons this technic isn’t good covered in the web) [/font][color=#111111][font=Verdana, sans-serif]most articles are about FPS or peer-to-peer syncs"[/font]


Does anyone understand what is meant by client-server model with lockstep and how that allows laggers to not affect response latency? It would seem to me that the lagger would effect response latency as isn't the effect of lockstep is to enforce that all clients synchronously change state so that client input such as lassoing a rectangular area with the mouse always always makes sense.
hplus0603
hplus0603
Actually, laggers do affect latency, in the sense that the game will run at the speed of the slowest player's physics rate.
As long as the lagger can queue commands far enough ahead of time, then the transmission time to the server ("lag" in one sense) does not affect anyone else's game experience.
enum Bool { True, False, FileNotFound };
ccherng
ccherng

Actually, laggers do affect latency, in the sense that the game will run at the speed of the slowest player's physics rate.
As long as the lagger can queue commands far enough ahead of time, then the transmission time to the server ("lag" in one sense) does not affect anyone else's game experience.


Can you explain in detail what you mean? Your comment appears to contradict the quote. So now I am very confused.
hplus0603
hplus0603
It's quite possible the quote is just wrong. It's hard to tell without more context.
enum Bool { True, False, FileNotFound };

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.