that rewards the player for playing well,
is easy to learn but hard to master, and
will keep the player coming back again
and again.
Most online games center around a
story and a world, and the richness of
the story and the world has much to do
with the success of the game. The design of the game centers on the story
and the gameplay. Design of the code
that is used to implement the game
comes quite a bit later (and is often
considered much less interesting). A
producer heads the team that builds
the game or world. Members of the
team include writers, artists, and musicians, as well as coders. The group with
the least influence on the game is the
coders; their job is to bring the vision
of others to reality.
The computational environment
for online games or virtual worlds is
close to the exact inverse of that found
in most markets serviced by the high-tech industry. The clients are anything
but thin; game players will be using
the highest-end computing platform
they can get, or a game console that
has been specially designed for the
computational rigors of these games.
sible on the client.
The need for a heavyweight client
is, in part, an outcome of the evolution
of these games. Online games have developed from standalone products, in
which everything was done on the local
machines. This is more than entropy
in the industry, however; keeping as
much as possible on the client allows
the communication with the server to be
minimized, both in the number of calls
made to the server and in the amount
of information conveyed in those calls.
This communication minimization is
required to meet the prime directive of
fun, since it is part of the way in which
latency is minimized in these games.
Latency is the enemy of fun—and
therefore the enemy of online games
and virtual worlds. This is especially
interesting in the case of online games,
where the latency of the connection between the client and the servers cannot
be controlled. Therefore, the communication protocol needs to be as simple
as possible, and the information transmitted from the client to the server
must fit into a single packet whenever
possible. Further, the server must be
designed so that it is doing very little,
These client machines will have as
much memory as can be jammed into
the box, the latest and fastest CPU, and
a graphics subsystem that has supercomputing abilities on its own. These
clients will also have considerable capacity for persistent storage, since one
of the basic approaches to these games
is to put as much information as pos-
ensuring that whatever it is doing can
be done very quickly so a response can
be sent back to the player. Some interesting tricks have been developed
to mask unavoidable latency from the
player. These include techniques such
as showing prerecorded clips during
the loading of a mission or showing a
“best guess” immediately at the result
of an action and then repairing any differences between that guess and the actual result when the server responds.
The role of the server is twofold. The
most obvious is to allow players to interact with each other in the context of
the game. This role is becoming more
important and more complex as these
games and worlds become more and
more elaborate. The original role of
the server was to allow players to compete with each other in the game. Now
games and worlds are developing their
own societies, where players may compete but may also cooperate or simply
interact in various ways. Virtual worlds
allow users to try out new personalities.
Games let players cooperate to do tasks
that they would be unable to complete
individually. In both, players are finding that a major draw of the technology
is using it to connect to other people.
The second role of the server is to
be the arbiter of truth between the clients. Whether the client is running on
a console or on a personal computer,
control rests in the hands of the player. This means the player has access to
the client program, and the competitive nature of the games gives the player motivation to alter the client in the
player’s favor. Even in virtual worlds,
where there is only social competition,
the desire to enhance the opportunity
of the individual player (more commonly known as “cheating”) is common. This requires that the server,
which is the one component that is
not in control of the players, be the arbiter of the true state of the game. The
game server is used both to discourage
cheating (by making it much more difficult) and to detect cheating (by seeing patterns of divergence between
the game state reported by the client
and the game state held by the server). Peer-to-peer technologies might
seem a natural fit for the first role of
the game server, but this second role
means that few if any games or worlds
trust their peers enough to avoid the
server component.
current scaling strategies
The use of the singular term server in
the previous section represents a conceptual illusion of the system structure
that can be maintained only by the clients of the game or world. In fact, any
online game or virtual world will in-
SYNCRETIA IN SECOND LIFE, BY ALPHA AUER, AKA. ELIF AYI TER