practice
Doi: 10.1145/1378704.1378716
Online games and virtual worlds have
familiar scaling requirements, but don’t
be fooled: Everything you know is wrong.
By Jim WaLDo
scaling
in Games
and Virtual
Worlds
I USED TO be like you.
I used to be a systems programmer, working on
infrastructure used by banks, telecom companies,
and other engineers. I worked on operating systems.
I worked on distributed middleware. I worked on
programming languages. I wrote tools. I did all of the
things that hardcore systems programmers do.
And I knew the rules. I knew that throughput was
the real test of scaling. I knew that data had to be kept
consistent and durable, and that relational databases
are the way to ensure atomicity, and that loss of
information is never an option. I knew that clients
were getting thinner as the layers of servers increased,
and that the best client would be one that contained
the least amount of state and allowed the important
computations to go on inside the computing cloud.
I knew that support for legacy code is vital to the
adoption of any new technology, and
that most legacy code has yet to be
written.
But two years ago my world changed.
I was asked to take on the technical architect position on Project Darkstar, a
distributed infrastructure targeted to
the massive-multiplayer online game
and virtual-world market. At first, it
seemed like a familiar system. The
goal was to scale flexibly by enabling
the dynamic addition (or subtraction)
of machines to match load. There was
a persistence layer and a communication layer. We also wanted to make the
programming model as simple as possible, while enabling the system to use
all the power of the new generations of
multicore chips that Sun (and others)
were producing. These were all problems that I had encountered before,
so how hard could these particular versions of the problems for this particular market be? I agreed to spend a couple of months on the project, cleaning
up the architecture and making sure it
was on the right track while I thought
about new research topics that I might
want to tackle.
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.
everything you Know is Wrong
To understand this new world, the first
thing to realize 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
ILLUSTRATION BY PETER GOLIBERSUCH