Slide 0 - UBC Computer Science

Enabling Player-Created Online
Worlds with Grid Computing and
Streaming
Philip Rosedale and Cory Ondrejka
Gamasutra, September 18, 2003
Presented by Daniel Ferstay
Overview
• Massively Multiplayer Online Games (MMOG)
– And the people who play them
• Content Distribution problem for MMOG
• Second Life ™
– The Grid
– Streaming
• Conclusions and Discussion
1
Massively Multiplayer Online Games (MMOG)
• “The hours and intensity with which players engage
in games makes for very fast consumption of
content”
2
How many hours and with how much intensity?
• Google search for ‘everquest addiction’ gives interesting results
• “EverQuest: the Latest Addiction”, Wired.com, July 29, 1999
– ~150000 players total
– ~34000 players online for 3-4 hours each during peak night hours
• EverQuest Widows
– Yahoo! group that offers a space for people to vent and support
each other through relationship crises.
– Missed anniversaries, threatened divorce, breakups, etc.
3
Good News, Bad News
• Game players who enjoy the content of a game play
it a lot.
• The more players play, the more content they
consume
4
Question
• How can game designers provide enough content to
keep players engaged?
• Previous approaches
– Provide large amounts of content in game (Final Fantasy)
– Make content reusable; replay value (GranTurismo)
– Make experience dependent on interaction with other human
players (Quake)
5
Problem
• Persistent-world online games
– Players pay a monthly subscription fee to play the game
• Designers keep players engaged by frequently
updating interactive content
– Exploration of 100 hours of content can take only a few
weeks of game play.
• This approach is costly
• Balancing act between time/cost to develop content,
time to play content and monthly subscription fee.
6
Solution
• Allow players to modify and customize game content
and features
• Works well for single player games and FPS where
customization amounts to modifying local
configuration files
• This approach raises technical problems for MMOG
7
Second Life
• Persistent-World MMOG
• Online society shaped entirely by it’s residents
• Players create/modify their avatars to look and sound
like anything
• World landscape is provided but players create the
objects which populate the world
– Houses, boats, furniture, art, etc.
• See: The Metaverse in Neal Stephensons “Snow
Crash”
8
Second Life
9
Content Distribution Problem
• How do we distribute player-customized content
(graphics, sound, geometry, animation, behaviour) to
other players in real-time?
• The online world is one big contiguous space
populated by players who can:
– Create, edit, and move objects
• The world contains hundreds of thousands of objects
that have unique:
– Textures, physical properties, shapes, permissions, etc.
10
Content Distribution Problem cont.
• Shipping the games current contents to users in a box requires
> 100 CDs
• Patching users with new in-world content when they logged in
would require downloads of 10s of megabytes per day
• Storing and manipulating all of the game content on a
centralized database would yield a transaction rate of > 10000
read/writes per second during peak hours
• These numbers grow linearly with the number of players
11
Content Distribution Solution: The Grid
• Distribute the objects across a tiled grid.
• Each tile in the grid represents one machine running a ‘sim’
– Simulates physics, manages objects/behaviours/terrain for a fixed
square region of space (~16 acres)
12
The Grid cont.
• Simulator machines talk to their four nearest
neighbours in the grid
– Solves scaling problem as world becomes large
• As objects move around the world, their
representations are transferred from simulator to
simulator
– Using higher order prediction, players and objects transition
across simulation borders seamlessly.
13
The Grid cont.
• As players move around the grid, they maintain streaming
connections only to the simulator machines they are near.
• Simulators compute the information and objects that can be
seen
– Transmits only information that is new to the player (or has
changed)
– Players need only a thin client (a world viewer) to play the game
• To grow the world, add simulator machines to the grid.
14
Streaming
• Game requires a broadband connection.
– Average bandwidth to a client ~100Kbps
• Compression is needed
– Each sim supports ~10000 objects; players can see a large
percentage of these.
• Graphical representations of objects are built out of
simple geometric shapes.
– Generalized meshes are too complex and don’t compress as
efficiently
15
Streaming cont.
• Texture and audio data are compressed
– Allows players to put thousands of large textures and a large
number of audio sources into a scene.
16
Streaming is expensive
• Clients receive information related to:
– Frustum culling, change detection, motion
interpolation/extrapolation, compression, and packet construction
and management.
• Multiple servers stream data to different ports on the client
machine via UDP
– UDP allows for a more responsive/controllable stream then TCP.
• Avoids TCPs “slow start” congestion controls.
• Reliability built around loss detection and data correction
– Not retransmission
17
Conclusions
• A Grid of simulators solves the problem of scale when users are
allowed to create and modify objects in a large online world
• Streaming data to players in real time allows users to modify
the online world in a collaborative and interactive manner.
18
Thank You
Any Questions?
19
Discussion
•
In what ways could this game be improved?
– Graphics are simple, low polygon count
– Multiple UDP streams get blocked by Firewalls
– Adaptive congestion control vs. 100Kbps magic number for client bandwidth
•
Is it reasonable to expect players to create all of the content in the
game?
20