Enabling Player-Created Online Worlds with Grid Computing and Streaming Presented by Daniel Ferstay Gamasutra, September 18, 2003
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
Massively Multiplayer Online Games (MMOG) • “The hours and intensity with which players engage in games makes for very fast consumption of content”
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.
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
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)
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.
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
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”
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.
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
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)
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.
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.
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
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.
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
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.
Thank You Any Questions?
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?