[e2e] 150ms - tolerable latency for quakeIII
m.oliveira at cs.ucl.ac.uk
Thu May 24 05:32:36 PDT 2001
Your results are interesting but I wonder if you mind a few comments of my
own. My pardons to members of the list that know this already.
Any game (or distributed virtual reality) has their latency threshold (or
game lag) set by the nature of the user interaction model. If you notice the
popular Ultima Online, it is based on a 2D isometric engine, which allows a
lot of leverage. The user interaction is based on point and click
destination, then the character plots a path to the destination and a smooth
animation is drawn at each frame. This is the model other popular online
games have, such as the Real-Time Strategy games.
Having said that, lets discuss the FPS. Current FPS engines have progressed
significantly since the initial network version of DOOM (where each
keystroke generated a packet). I think that they have begun to use
techniques from the Distributed Interactive Simulation (DIS) community, even
though the games are based on client/server. One of the tricks they use is
Dead-Reackoning which reduces the amount of traffic by having every host
running a simulation of remote entities. Each host runs a simulation of
themselves and validates if their current position (user input) matches the
simulated one (the same that remote sites will have of them). If the
difference exceeds a certain threshold then a packet (with correct data) is
sent to correct the perspective everyone else has. And that is only one of
the techniques used...
Why am I pointing this out? Because, packet generation is not once per
frame, but every once in a while. Also notice that the server does
significant amounts of filtering and smoothing. What matters is people enjoy
the experience, not that it is 100% accurate.
Now another thing that needs to be considered in the equation is the user.
The human being can adapt very well within certain limits. It is true that
ideally the latency should be below 150ms. However, many users manage to
play at higher levels because of their skill. In fact, they enjoy the
I assume you do not correlate the network data with the skill of the users.
Do you check what percentage of players drop out of the game after a few
minutes because their ping times are superior than the other users? How does
the latency vary along the duration of the game?
More information about the end2end-interest