210 likes | 331 Views
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
E N D
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?