Enabling Player-Created Online Worlds with Grid Computing and Streaming (Second Life)

This webpage documents my presentation of "Enabling Player-Created Online Worlds with Grid Computing and Streaming" by Philip Rosedale and Cory Ondrejka for CPSC 538A: Topics in Time-sensitive Distributed Systems, taught by Charles 'Buck' Krasic.

Quick Links


Summary

"The hours and intensity with which players engage in games makes for very fast consumption of content"

As players participate in a game they need to interact with new content in order to stay interested and keep playing. Previously, game designers have used the following ways of providing users with a reason to keep playing:

These approaches do not work well for Massively Multiplayer Online Games (MMOG) where players pay a monthly subscription fee to participate in the game. Since it only takes a player around one month to consume 100 hours of content, MMOG developers have tried to frequently update the interactive content of their games to keep players subscribing. This approach is costly as new content must be developed on short time scales.

This paper describes the challenges behind creating the Second Life MMOG. Second Life makes the game players responsible for creating and modifying in-game content. The problem that the paper addresses is: How can we scale an online world to support tens of thousands of players and hundreds of thousands of objects at one time such that all of the players have a consistent view of the world around them, and can interact with each other by modifying the world collaboratively in real-time?

The authors address the above problem by using two techniques. First, the authors divide the world up into square tiles of 16 acres in area. Each tile represents a simulation (or 'sim') running on a single server that simulates the physics, manages all objects, behaviours, terrain and player actions in the tile. Each sim is targeted to manage around ten thousand objects. As players and objects move around the world their in-game representations are transfered from server to server as they cross tile boundaries. Servers only communicate with their four neighbouring servers. This solves the scalability problem for Second Life; in order to grow the world the developer only need to add more servers to the grid.

In order to solve the problem of distributing in-game content to the players in real time, the authors decide to use streaming. Players play the game using a small (~10MB) 'world viewer' application. All information about the world (audio, video, geometry, textures) is streamed to the viewer application; none of the content is actually stored on the players machine. As players move around the grid they maintain streaming connections only to the servers that they are near.

All data is sent over multiple UDP streams to allow for a more controllable stream than TCP. Reliability of a stream is built around loss detection and data correction instead of retransmission to allow for timely delivery of content. The authors decided to cap streaming bandwidth at 100kbps per client in order to avoid network congestion. However, there is a lot of game state that needs to be transmitted to clients at any one time. To fit all of the data into a 100kbps pipe, Second Life uses wavelet compression on textures, ogg vorbis compression on audio, and efficient compression of game geometry because of its simplicity (avoiding generalized meshes). In addition, players only receive information that is new to the clients (or has changed).

The main contributions of this paper are:

The Second Life world viewer can be downloaded from http://secondlife.com/download/. It can be played for free for the first 7 days.

Presentation Slides

The slides for my presentation (in ppt format) can be found here.

Group Discussion

Questions about the paper:
Discussion of future work:
In what ways could the developers improve the game?

Links


Daniel Ferstay
Last modified: Sun Mar 28 18:18:43 PST 2004