SCALING
in games & virtual worlds
The three months have turned into two years (and
counting). I’ve found lots of new research challenges,
but they all have to do with finding ways to make the
environment for online games and virtual worlds scale. In
the process, I have been introduced to a different world
of computing, with different problems, different assumptions, and a different environment. At times I feel like an
anthropologist who has discovered a new civilization. I’m
still learning about the culture and practice of games, and
it is a different world.
EVERY THING YOU KNOW IS WRONG
The first thing to realize in understanding this new world
is that it is part of the entertainment industry. Because of
this, the most important goal for a game or virtual world
is that it be fun. Everything else is secondary to this prime
directive. Being fun is not an objective measure, but the
goal is to provide an immersive, all-consuming experience 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 that story and world has much to do
with the success of the game. 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 the virtual world.
Members of the team include writers, artists, and musicians, as well as coders. The group with the least influence
on the game consists of 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 platforms they can get, or
game consoles that have been specially designed for
the computational rigors of these games. These client
machines will have as much memory as can be jammed
into the box, the latest and fastest CPUs, and graphics
subsystems that have supercomputing abilities on their
own. These clients will also have considerable capacity
for persistent storage, since one of the basic approaches
12 November/December 2008 ACM QUEUE
to these games is to put as much information as possible
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 stand-alone 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 needs
to be designed so that it is doing very little, 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
increasingly elaborate. The original role of the server
was to allow players to compete with each other in the
game. Now games and virtual 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 that the player has
access to the client program, and the competitive nature
of the games gives the player motivation to alter the
rants: feedback@acmqueue.com