next up previous
: Empirical Study : Scaling Properties of Client-Server : Scaling Properties of Client-Server


Game Parameters

In this section, we present crucial game parameters which affect the bandwidth required at a centralized server of a typical FPS game. For our back-of-the-envelope calculations, we use parameter-values obtained from a trace-based study of the Quake II FPS game.

Besides control traffic from clients, the three game parameters that most impact network performance are: (1) the number of objects in play ( $ \mathit{NumObjs}$), (2) the average size of those objects ( $ \mathit{ObjSize}$), and (3) the frequency at which changes are disseminated to game clients, a.k.a, the game's frame-rate ( $ \mathit{UpdateFreq}$). For example, in Quake II, $ \mathit{NumObjs}$ ranges from 8 to 64, $ \mathit{ObjSize}$ is $ \sim$200 bytes, and $ \mathit{UpdateFreq}$ is 10 updates per second. A naïve server implementation which simply broadcasts the updates of all objects to all game clients ( $ \mathit{NumClients}$) would incur an outbound bandwidth cost of:

$\displaystyle \mathit{NumClients} \times \mathit{NumObjs} \times \mathit{ObjSize} \times
\mathit{UpdateFreq}~,
$

or about 1-66Mbps in the case of Quake II.

Two commonly used optimizations to reduce this bandwidth cost are area-of-interest filtering and delta-encoding.2Individual players typically only interact with or see a small portion of the game world at any one time. Most servers only update clients about this area-of-interest, thus, reducing the number of objects transferred from the total set of objects in the game ( $ \mathit{NumObjs}$) to the number of objects in this area ( $ \mathit{NumAoiObjs}$), typically about 4 for Quake II. Similarly, the set of objects and their state change little from one update to the next. Therefore, most servers simply encode the difference (delta) between updates, thus reducing number of bytes for each object transferred from the object's size ( $ \mathit{ObjSize}$) to the average delta size ( $ \mathit{AvgUpdateSize}$), which is around 24 bytes in Quake II. Thus, the optimized outbound server bandwidth cost would be:

$\displaystyle \mathit{NumClients} \times \mathit{NumAoiObjs} \times
\mathit{AvgUpdateSize} \times \mathit{UpdateFreq}~.
$

or about 62-492kbps in the case of Quake II.

We should note that area-of-interest filtering is used not only as a bandwidth optimization also to enforce the rules of the game. For example, players should not be able to observe or react to events outside their area-of-interest. These rules are often enforced on computer controlled objects as well. This implies that the associated think functions should not access objects that are outside the area-of-interest.


next up previous
: Empirical Study : Scaling Properties of Client-Server : Scaling Properties of Client-Server
Ashwin Bharambe 平成17年3月2日