volve a large number of servers (or will
have failed so miserably that no one
either can or wants to remember the
game or world). Using multiple servers is a basic mechanism for scaling
the server component of a game to the
levels that are being seen in the online
world today. World of Warcraft has reported more than five million subscribers with hundreds of thousands active
at any one time. Second Life reports
usage within an order of magnitude of
World of Warcraft, and there is some
evidence that sites such as Webkinz or
Club Penguin are even more popular. A
single server is not able to handle such
load, no matter how efficient the representation. Even if a single server could
deal with this load, such a server would
be far too expensive for the smaller
loads that are encountered (
sometimes by the same games or worlds) at
times of low demand (or in parts of the
product’s life cycle when demand has
decreased).
Having multiple servers means that
part of building the game is deciding
how to partition the load over these
servers. Two techniques are commonly
used in both online games and virtual
worlds. Sometimes only one of the two
techniques is used, sometimes both,
depending on the nature of the game
or world.
The first technique is to exploit the
geography of the game or world, decomposing the game into different areas, each of which can be mapped to a
hosting server. For example, an island
in Second Life corresponds to a physical server running the code for the
shared reality of the world. Similarly,
different areas of the World of Warcraft
universe are hosted on different physical machines. Anyone who is in the
area will connect to the same server,
and interactions among the players on
that server can be localized (and optimized). Actions happening in a different part of the world are not likely to
affect those in this part of the world,
so the communication traffic between
servers can be kept small.
The second technique is known as
sharding. A shard is a copy of a part of
the game or virtual world. Different
shards reside on different servers, and
players who are assigned to one shard
can interact with the world and other
players in the shard, but will not see (or
With the possible
exception of
the highest end
of scientific
computing, no other
kind of software has
ridden the advances
of moore’s Law as
aggressively as
game or virtual-
world programs.
be able to interact with) players or objects in other shards. Shards not only
allow more players to be supported in
the world, but also permit independent
explorations into the world by different
sets of players. Thus, when a new quest
or mission is added to a game, it will often be replicated with multiple shards
so that more than one player (or group
of players) can experience the quest or
mission in its original state.
Although sharding and geographic
decomposition allow multiple servers
to be used to handle the load on a single game or world, they do present the
developer with significant challenges.
By creating noninteracting copies of
parts of a world, shards isolate the players in different shards from each other.
This means that players who want to
share their experience of the world or
game need to become aware of the different shards that are being offered,
and arrange to be placed in the same
shard. As the number of players who
want to be in the same shard increases
(some guilds, or groups of players who
cooperatively play in a single game
over an extended period of time, have
hundreds of members), the difficulty
of coordinating placement into shards
increases and interferes with the experience of the world. While shards allow
scale, they do so at the price of player
interaction.
Geographic decomposition does
not limit player interaction, but does
require that the designers of the game
be able to predict the size of a geographic area that will be the correct
unit of decomposition. If one geographic area becomes very popular,
play on that area will slow down as
the server associated with the area
is overloaded. If a geographic area is
less popular than originally predicted,
computer hardware (and money) will
be wasted on that section because not
enough players are there. Since the
geographic decomposition is hard-wired into the code of the game or
world, changing the decomposition
in response to observed user behavior
requires rewriting part of the game or
world itself. This takes time, can introduce bugs, and is very costly. While
this is being done, gameplay can be
adversely affected. In extreme cases,
this can have a major financial impact. When World of Warcraft was in-