Monday, March 12, 2007
Back in the mid-1990s, while we were designing ViOS as a large-scale commercial server-dependent and massively-multiuser metaverse application, I was deeply concerned that its success as a widely-used platform would be its undoing. Thats because, unlike the web, multi-user immersive environments require relatively constant interactions between clients and servers - and those interactions don't scale well for large numbers of users.
Virtual environments such as multi-user flight simulators and first-person shooters rely on many independent server sessions that are limited to a relatively few users at any one time. Massively multi-user metaverses, on the other hand, require the client to be updated as fast as things happen within the environment. This means that large-scale metaverses need a lot of horsepower in the server layer since every move and every action of every avatar must be conveyed to every client. This puts a tremendous load on a few servers for even the most trivial of interactions. The approach simply doesn't scale to support the widespread global information systems that the Croquet architecture is being designed to make possible.
Our strategy back at ViOS, Inc. was to simply re-tune the system and put up more servers as the loads increased - hoping for the best. That approach would work well for Intranet applications that serviced relatively small numbers of clients. It even worked well for ViOS' initial user base of around 15,000 unique users. Problem was that once we had several thousand simultaneous Viosians tooling about in the landscape, they began to overload our interactivity servers, resulting in performance problems and service interruptions. Since there wasn't a lot of cash flow or investment capital during the 2001 post dot-com financial downdraft, we were unable to add servers at a rate that could meet the demand. If we had, it might have led to another few years of success for the ViOS metaverse platform - but sooner or later we would have been brought down by fundamental flaws in our approach as a bottlenecked client-server based architecture.
The Croquet technology has been developed with these lessons in mind. It is designed to scale in support of interconnected multiverses of millions of users without the need for any dedicated server infrastructure. Croquet's architecture makes it possible to develop metaverse applications in which, anyone can freely put up content in islands of any size, interlink those islands with any number of other islands, and control access to those islands.
By contrast Second Life makes money by controlling who can create islands and how those islands are linked to each other. It also has a very similar technical architecture to that of ViOS - a vintage twentieth century client-server architecture with with single points of failure, inertia, and control. It's been interesting to watch Linden Lab's struggle with the inevitable technical problems faced by Second Life as a result of its recent popularity, constrained architecture, and non-scaling technical approach. For details on some of those struggles click here, here, and here.