michael’s thoughts

collected

Why Second Life Has the Wrong Architecture

I have been involved in the Second Life community off and on for several years.  For a time I was very bullish on the project and I really thought it might take off and realize Neal Stephenson’s Metaverse concept.  But it doesn’t seem that it is going to get there.  I thought that if Linden Labs kept innovating they might make progress in that direction, but upon logging in recently I’ve realized that the whole architecture is flawed.

Second Life is a homogeneously scaled environment.  Every “sim” in the system has essentially the same capacity and capabilities as all the others.  The server software for each environment is identical.  The whole system uses the same scripting engine, the same physics engine, etc.

This seems like a good architecture, but it will never allow for the true potential of a 3D immersive Internet virtual world.  The problem is that different environments have different needs.  Not everyone needs to support all the complicated physics.  Some environments don’t need complete user control of custom objects.  Some environments need to support a lot more people than others.

One of the great use cases for business marketing in Second Life is the virtual car dealership.  Web sites are not a great way to show off a three dimensional real world high performance feat of engineering.  A 3D simulated virtual world is.  Certainly some car manufacturers have experimented in Second Life but the result has never been a truly great promotional experience.

The problem is that the car maker’s virtual cars have the same priority as every other object in the environment.    If I were a car manfucaturer I’d rather sacrifice the individual creativity of my visitors to conserve resources to allow me to showcase a high quality virtual automobile.

And then there’s the question of what to do with the car once it’s created.  I’d think you’d want people to be able to take it out on a street or a race track for a test drive.  Again, this has been done but the system for creating a race track in Second Life is the same system that is used to create a moon bounce or a dance club.  That is not a good architecture.  There are a ton of driving simulation games available for PCs and gaming consoles and I’d wager all of them are superior to what has been created in Second Life.  Why not let the car companies’ simulators run a racing game engine instead of the standard general purpose physics engine of Second Life?

The uniform size of the sims is also too restrictive.  If I’m building a race track, I want a big race track.  Perhaps several miles.  But I don’t want to create that across many differnet sims.  I just want one race track simulator that is several miles long.  This can be achieved by making the parts of the simulator that are not on the track “off limits” or very restricted in what they can do.  No foreign object support, for example.

On the other hand, I may want a convention center or lecture hall that can accomodate hundreds or thousands of participants.  Of course to support that many people it would be necessary to remove support for custom foreign objects that people may bring with them.  That’s a trade off, but I can live with people not being able to race their Aston Martin’s around my convention center auditorium.  In fact, if they can’t do that in the middle of a presentation that probably adds to the quality of the experience.

I do think that a scalable 3D virtual world is still a great business concept for the future innovation of the Internet, but unfortunately the current platforms are not taking an architectural approach that will be successful.

The most successful viritual worlds in existance are MMORPGs.  These engines support thousands of concurrent players but they do so at the expense of curtailing individual freedoms.  You cannot build arbitrary objects in World of Warcraft, but that does not diminish the success and popularity of that platform.

My point is not that participants should not be able to create content.  My point is that the content creation requirements are different for different applications, and a one size fits all approach is doomed to scalability and quality shortfalls.

What is needed is a virtual world system that supports shared accounts accross a variety of interconnected engines.  A system that allows me to login, walk to a car dealership and be emmersed in a racing game, then stand up and walk into a conference hall to listen to a talk with several thousand other people and participate in Q&A, and then walk into an environment where I can play World of Warcraft is the system that will realize the dream of the Metaverse.

  • Tarnak
    "Second Life is a heterogeneously scaled environment" -- do you mean homogenously?
  • Yup! Of course I meant homogeneous. Thanks for catching the typo! Fixed.

    -m
  • You will want to follow the work of the Architectural Working group and many others working toward that goal. OpenSim, as alpha and buggy as it is, for example, does allow modular physics engines. Standards for representing 3D content, like COLLADA are emerging and we are on our way to the dream, but still a long way off.
  • http:opensimulator.org allows you to customize each sims "ini" file as far as physics engine, scripting engine etc and whether they are on or off. It has been designed in a very modular way to allow for all the things you suggest above. Great article!
blog comments powered by Disqus