A metaverse is a virtual world that users can extend by adding objects and scripting them to provide interesting applications. This user-extensibility contrasts with games, where all content originates from a central author. A metaverse provides a few basic services with which to build applications:
- storing the location of objects and a reference to the graphical models of objects,
- updating location and model state based on script commands and physics simulation,
- executing object scripts and generating script events, such as timers and inter-object communication,
- telling objects and clients what objects they can see and interact with.
Decentraland, today’s most popular project of decentralized metaverse. Its design is representative of how current metaverses decompose internal systems and support applications. Decentraland statically partitions land into 10m × 10m regions called “Land,” each will be managed by a different server via BitTorrent or IPFS. A Lands’s server is responsible for all activity within the land, including the above services. Decentraland uses distance to control object discovery and inter-object communication. Servers prioritize objects or clients based on multiple factors, but generally clients will not see objects farther than 100 meters away. Scripted objects (applications) cannot detect objects farther than 15 meters away. The basic communication primitive is a geometric broadcast to all objects within 10, 20, or 100 meters. Decentraland will also provides a very limited form of unicast which is unsuitable for interactive applications due to its low throughput and high latency. These restrictions are critical for Decentraland to be able scale to its current size. They will allow the simulation to be nearly shared nothing: servers only coordinate with their geometric neighbors. Because the region-to-server mapping is static in Decentraland, the system cannot respond to variations in load. As a result, most of the world lies will be empty.
Relaxing these restrictions may enable virtual worlds to move closer to their imagined potential. Users will be able to view sweeping vistas, and the applications they interact with will be able to span the world. Users will be able to serendipitously discover events throughout the world; players in a game will be able to monitor and aid distant allies; and real-world data will take on new meaning when overlaid onto a virtual replica of Earth. Enabling this vision, however, requires novel distributed systems principles and techniques.