Saturday, December 20, 2008 at 2:55PM

Update:Presentation: Second Life’s Architecture. Ian Wilkes, VP of Systems Engineering, describes the architecture used by the popular game named Second Life. Ian presents how the architecture was at its debut and how it evolved over years as users and features have been added.



Second Life is a 3-D virtual world created by its Residents. Virtual Worlds are expected to be more and more popular on the internet so their architecture might be of interest. Especially important is the appearance of open virtual worlds or metaverses.

What happens when video games meet Web 2.0? What happens is the metaverse.

Information Sources

Platform

MySQL



Apache



Squid



Python



C++



Mono



Debian

What's Inside?

The Stats

~1M active users



~95M user hours per quarter



~70K peak concurrent users (40% annual growth)



~12Gbit/sec aggregate bandwidth (in 2007)

Staff (in 2006)

70 FTE + 20 part time



"about 22 are programmers working on SL itself. At any one time probably 1/3 of the team is on infrastructure, 1/3 is on new features and 1/3 is on various maintenance tasks (bug fixes, general stability and speed improvements) or improvements to existing features. But it varies a lot."

Software



Client/Viewer

Open Source client



Render the Virtual World



Handles user interaction



Handles locations of objects



Gets velocities and does simple physics to keep track of what is moving where



No collision detection



Simulator (Sim)

Each geographic area (256x256 meter region) in Second Life runs on a single instantiation of server software, called a simulator or "sim." And each sim runs on a separate core of a server.

The Simulator is the primary SL C++ server process which runs on most servers. As the viewer moves through the world it is handled off from one simulator to another.