New communication protocol makes mass player gatherings and events in the Metaverse possible.
The purpose of this post is to discuss the ways in which player-to-player communication works inside Decentraland, and how it is about to improve at an accelerated pace. Although we’ll get pretty technical, we’ll keep the gist of it approachable.
Several changes are coming that will enable massive gatherings and events, creating a much more vibrant world. Decentraland has had limitations since its launch that limit each player that enters the world to only being able to get in touch with a fraction of the other players who are in the same place. In contrast, the upcoming changes to Decentraland’s communication protocol will enhance the ability for each player to interact with a greater number of peers, paving the way for a more robust and scalable communication protocol.
As you might already know, Decentraland uses servers and layers to keep players in separate contained groups. You might have noticed that the Decentraland URL includes some random name followed by a color, like “fenrir-ambar” or “unicorn-blue”. The first name is the server, and the color refers to the layer within that server.
Why do we split players into groups? It’s because there are limits to how many people can connect 1 to 1 without blowing up a server. There’s a simple mathematical formula for how peer to peer communications grow exponentially as you add more people to a network. Google “Metcalfe’s law” if you want to nerd out on the math, but to illustrate the concept with a simple example, suppose we have a group of 4 people and they all connect to each other. At first, there are in total 6 connections to keep track of. Bring in a 5th person, and that adds 4 new connections, making the total 10. Add a 6th person, and this time we need to add 5 new connections, bringing the total to 15. Keep doing that for a while and you’ll realize that the power of exponential growth is not something you want to mess with. So, for now at least, a hard limit was set at 100 players.
This means that on all the servers that make up Decentraland’s communication network, we can only have 100 players per layer. A server might have multiple layers, but none of these layers can go over 100 players, and each of these layers is just as isolated as if it were its own server. We call these isolated groups “realms”. Players in different realms can’t see each other, interact, or chat publicly with each other, even if they’re standing next to each other on the same parcel.
This design is powerful because it enables us to handle a large total number of users on our servers, but it comes at a price:
- You can only run into or chat with a fraction of the other players that are currently in the world.
- A large crowded event might only feel partially full, because you’re only in contact with the people on your layer who happen to also be in the same location. If the 100 players in your layer are hanging out somewhere else in the map, you might feel entirely alone.
- A confusing UX, as the concept of realms is not very transparent. In fact it’s only exposed within the URL. If you try to join a friend at a given location, you might not meet if you both end up on different layers. It takes a pretty advanced user to know that you can jump between realms simply by changing the not-so-pretty part of the URL.
Enter Archipelago. This is a new way of organizing communication between peers that introduces the concept of communication islands, as opposed to layers. Just like layers, islands are a way to arrange players into sub-groups within a server; what’s novel about islands is that they take world positions into account, and they dynamically adjust as players walk in and out of a region.
Therefore, rather than having the 100 people with whom you share a layer spread across the entire map, you’re grouped together with people you might actually encounter on the island. For example, an island might include all of the players in the region around Voltaire District and its surroundings. From there, a player can walk south to Crypto Valley and seamlessly switch islands with the players in that other region. A region may shrink or split in two if it becomes overcrowded beyond 100 players. The number of players on an island is always kept under 100 by re-grouping the closest players.
This protocol change will enable us to:
- Remove the concept of “layers” from players’ minds, making things simpler. Players won’t need to know about islands either, if they walk around the map they will be able to run into everyone who’s in the server, and it will feel like one single cohesive space.
- Reduce latency between users.
- Increase the success rate in P2P connections.
- Take advantage of the current limits of the P2P network by automatically clustering users and building “connection islands”.
- Support multiple overlapped islands, which should guarantee a cohesive experience while at the same time enabling large crowds to occupy the same place.
- Prepare for future changes, which will enable greater scalability and support for truly massive events.
We’re super excited to see this radically change how Decentraland feels. As a scene creator, these changes shouldn’t affect you. As a player, you will surely start running into a lot more players when you take a walk around Decentraland.
As you might imagine, in order to make this all work, we need to change some APIs. As a result, some community-made integrations that rely on realms and comms may need to adapt. If you are responsible for maintaining such an integration, please review the changes and make adjustments when you are able to. Despite the need for some additional effort, these changes will greatly improve the Decentraland platform and community.
In the following public Architecture Decision Record you can find the details of the API changes that will be introduced.
There’s already a public Catalyst with these API changes implemented on Peer Testing. You may use the following link to connect to the Peer Testing Server from the Explorer and validate that your service works well with the new architecture.
August 16th, 2021 was the target rollout date for these protocol changes. After the 16th, we can expect to see some drastic changes to the social experience of exploring Decentraland.
World’s First Metaverse Festival
Benefits to the new protocol are already visible with Decentraland announcing the Metaverse Festival which will feature artists such as DeadMau5, The Wombats and Paris Hilton among many others. The four day virtual festival began on 21st October and was the first event of its kind – a fully decentralized celebration of music that offers a weird and wonderful brew of world-class headline acts, mind blowing stages, games, exclusive artist merch, collectibles and more.