Universe Simulations

From Open Metaverse Wiki

As discussed here, there are scaling problems with grids organized on a region/server relationship. There are only so many regions that can be run on one server, typically one per core (other than "water regions" for sailing that have much lower content limits that are often called "open space" or "homesteads"). This model of server resources focused on a geographic simulator region is inherently limited in scale not only in what can be built there, but in how many persons can visit the region at a given time. Usually a built out region cannot exceed 40-70 avatars, while an empty region could handle 120 bare-bones avatars.

With increasing region content, and user populations, lag is introduced that impedes physics and user experience, lowering user frame rates and often causing the entire region to crash, thus crashing the viewers of all users in the region.

Service Oriented Architecture

To overcome these scaling limits, we must shift to what is called a Service Oriented Architecture, where server resources are focused on users, not geography. Optimizing this requires two types of servers.

Spacetime Supercluster

One is a supercluster, like a Beowulf cluster, a networked supercomputer that handles the overall physics for a massive volume of space. Calculations have shown that a supercluster of around 2,000 PS2 machines could simulate the physics for an entire galaxy of worlds, stars, asteroids. With this architecture, there would be zero region borders. None.

The Helper Server

The second type of server is a "helper" server, that boots up for each user when they log in. It dynamically follows them around the entire volume of spacetime being simulated by the supercluster, grabbing resources from disparate locations, streamlining more discrete physics, and communicating with similar helper servers that are following their own users, acting as another type of supercluster that dynamically scales with the number of users in a given region of spacetime. Each helper prioritizes processes by a) locality to the user, and b) velocity through the simulation space into "spheres of influence" that are similar to Levels of Detail in rezzing visible mesh but are just as important to physics. This would offer more levels of detail for each mesh object, decaying to the observer to as few as 8 vertexes and 12 triangles at the furthest level of detail where the object would occupy a single pixel on the users screen, as a type of "object impostor".

This dynamic cluster of helper servers would mean little to no lag at all even in the most crowded situations, limited only by the users own graphics card on their PC and their internet connection bandwidth and latency.

With this type of architecture, a virtual world could have unlimited scaling, enabling live events with thousands or millions of participants within visual range of each other.