[MUD-Dev] Slaying the Lag Monster

Kirinyaga lanjk.ro at laposte.net
Thu Nov 25 13:15:00 CET 2004


Greg Boyd [mailto:lextalionis at gmail.com] wrote:

> I have been reading the lag discussion with interest because I
> have been doing some research on earlier mechanisms to combat
> latency in virtual worlds.

> The question involves two older ways of solving lag problems,
> particularly in the early 1990's.

>   1.  Smoothing or "dead reckoning" (I have found some information
>   on it - not as rare as case #2)

>   2.  Internal clock synch and adjustment (even more interesting
>   for me - harder to find examples of this)

Another nice system against lag is to have a specified time offset
between the state of the world on the server and on the client. Let
say 1 sec : the client is always 1 sec later than the server. Of
course it needs a clock synch system to work properly. Now, the
client can absorb 1 sec of internet travel delay (including
retransmission because of packet loss) for infos about mobs and the
world. For information about other clients, it can absorb 500ms
delay (client B sends info that a spell is cast, 500ms later the
server receives and applies it retrospectively (you need to design a
server engine being able to do this) and send the info to client
around, again 500ms. Client A can then updates the world and
displays it correctly.  As long as the lag is under the limit, it
has _zero_ effect for the players.  You can combine it with
extrapolation when it is above the limit (with 1sec it means really
bad lag already), wich then give you an effect similar to a pure
extrapolation, but as seen with 1sec _less_ lag.  The problem is you
need to design an engine able to apply retrospective events to the
current state of the world.

I know Saga of Ryzom does this and part of its engine is GPL'ed, but
I don't know if the GPL network library includes this or not and a
large part of the server engine is not GPL.
_______________________________________________
MUD-Dev mailing list
MUD-Dev at kanga.nu
https://www.kanga.nu/lists/listinfo/mud-dev



More information about the mud-dev-archive mailing list