End of Year Review: 2020’s Technical Updates
Looking back at Decentraland’s biggest technical updates from 2020
2020 has been another big year for the Decentraland community. From the open sourced World Explorer and DAO to the full decentralization of the platform’s deepest layers of functionality to some awesome crowdsourced creative competitions, Decentraland’s contributors have made available an incredible range of features, content, and live events.
It’s easy to get caught up in the moment, so here’s an in-depth review of last year’s biggest technical developments.
Don’t forget that the code behind these releases is all open source. You can view, comment on, and contribute at github.com/decentraland.
The catalyst network and the world
Decentraland allows anyone to create interactive 3D content with tools like the Builder or the SDK. There are marketplaces that make it possible to find and manage your own LAND where you can deploy your creations. With February’s launch of the first open source client, now people can go in-world to explore different scenes, play games, and socialize at events. With the addition of voice chat, people are even meeting for karaoke!
But how is this possible without using any centralized servers controlled by big corporations?
Before we answer that question, let’s take a look under the hood to see how Decentraland works. What are the different pieces of Decentraland and what do they do? What has to happen in order for a player to log in to Decentraland, view and engage with the content there, and interact with other people?
At a very high level, there are three critical processes that make Decentraland work:
- Hosting content, or the actual three dimensional models, textures, images, and sounds that make up the world
- Allowing players to engage with content
- Allowing players to interact with each other
In February 2020, all three of these processes were integrated into catalyst servers. When you enter a Decentraland client, like the Explorer, you are connected to one of 13 currently existing Catalyst nodes. (At the time of writing there are 13 nodes, but this can change as we’ll discuss later.)
The server you connect to will send your computer the 3D content making up your virtual surroundings. You will be able to see any other players near you in-world only if they are also connected to the same server. If you walk up to a player to say hello over voice or text chat, the catalyst server opens up a peer-to-peer connection between your computers.
What makes these catalyst servers any different from the servers that run other virtual worlds, like Runescape?
Games like Runescape use specialized servers. There’s a server that allows players to log in. There are servers that store extra data like friend lists and inventories. Then there are the servers that store the game’s actual content. All of these servers are under control of either Jagex (the company that built Runescape) or one of their private contractors.
On the other hand, Decentraland’s catalyst servers are all part of a bigger network. Every node in the network is identical in that they all host a copy of the exact same content and they all provide the same core services needed to make Decentraland work, like establishing those peer-to-peer connections between players.
There are some tremendous benefits to using a network like this.
There’s no risk of a single point of failure.
If any one node goes down, nothing is lost. The remaining nodes can pick up the slack.
Nodes are added (or removed) democratically via the DAO.
Anyone is welcome to create their own node to help serve Decentraland’s content and services, but in order to do so it must be approved through the DAO, Decentraland’s governance tool.
It’s impossible for any one person or group to shut down Decentraland, either deliberately or accidentally.
Since node additions and removals must be approved through the DAO, it’s impossible for any single entity to shut down the entire network without the approval of the community (an unlikely event).
Nodes can be added to help handle the growth of Decentraland.
The catalyst network is easily scaled to handle increasing demands from a growing community. Additional nodes are simply added via the DAO according to demand.
The catalyst network has given the Decentraland platform the stability, flexibility, and room for growth needed to build a truly decentralized virtual world.
After some testing within the community this past month, voice chat has been added to Decentraland. There are some improvements to this feature under active development, like adding more granular control to your voice chat settings (e.g. specifying your input and output devices), but this first version is a great step toward a more social world.
What makes voice chat different in Decentraland, and why haven’t we seen it until now?
As with all of Decentraland’s features, voice chat has to be independent from any centralized, third party service. It has to be peer-to-peer.
This wasn’t possible until catalyst nodes were introduced last February, because it’s these nodes that initiate the safe and secure peer-to-peer connections between different users in Decentraland.
Up-coming additions in the Explorer: ambient occlusion
Realistic lighting and shadows have a drastic impact on the immersive quality of Decentraland. Ambient occlusion is the technical name for how ambient light affects different areas of a 3D rendered scene.
As in real life, we naturally expect shaded areas to appear darker and less shaded areas brighter. As of now, Decentraland doesn’t use ambient occlusion, which is why scene lighting often appears a little bit flat.
Shadows do exist in Decentraland, yes, but they lack the realism provided by ambient occlusion.
The community can hope to see the addition of ambient occlusion soon!
Non-player characters, or NPCs, are timeless elements in any game. As demonstrated in the last Game Jam, the SDK includes a shiny new library making it super easy to add your own fully customizable and conversable characters to your scenes. Whether you’re crafting a story-driven narrative or you just want to add an automated (yet personable) guide to help players navigate your scene, you can find details and documentation in the Awesome Repository!
The new UI library provides several tools helping you to build UI elements in your scenes like menus, notifications, or health bars. Building UI elements from scratch has always been a painful process, making this library a welcome addition to the SDK.
Adding any form of blockchain interactions to scenes has been another challenge for developers from the start. However, the SDK’s new crypto library greatly simplifies payment processing and NFT transfers. It also allows scene developers to check players’ MANA balances or to verify that players possess specific NFTs - crucial functionality for any blockchain enabled game or experience.
Layer 2 functionality
In September, an L2 library was added to the SDK. This is a new set of tools that brings the layer 2 functionality from the Matic Network to Decentraland developers. Whenever you want to transfer MANA between players in a scene via Matic, check a player’s MANA balance via Matic, or anything else involving data stored on Decentraland’s second layer blockchain, this is the place to go.
The developer community is even looking at different ways the sidechain can be used to mint wearables right within Decentraland!
Toggle voice chat within your scenes
Along with all of these added utilities, the SDK now also allows scene creators to specify whether or not they want to permit voice chat use within their scenes. This is especially helpful for people hosting events like musical performances or conferences where a quieter crowd is desired.
Outbound linking, streaming, and avatar control
Among the many other SDK improvements this year, we’ve seen the addition of outbound link support (enabling teleportation within and between scenes and even linking to external websites), audio and video streaming, more performant NFT picture frames that automatically adjust their rendering quality according to viewer proximity, “avatar modifier” areas, and the ability to trigger player emotes within a scene.
Most or all of these tools stand firmly on their own, but it’s exciting to see how they lay the foundation for richer functionality down the road. Let’s look at a couple examples.
Giving scene creators control over player avatars
When players create their avatar before entering Decentraland, they get to customize their appearance. Players choose specific body features that remain persistent as they explore the world. While these customizable, recognizable avatars remain standard across Decentraland, there are certain times when it’s helpful for scene creators to take control of players’ appearances.
In step avatar modifier areas.
These definable areas allow scene builders to change how avatars appear. Once an avatar enters a modifier area, the scene’s code kicks in altering the avatar’s shape, wearables, and even animations. If the player steps outside the defined area, their avatar returns to its original appearance.
This is great for applying certain aesthetics or team uniforms (pirates vs. ninjas, anybody?). It even allows scene builders to completely remove rendered avatars from their scenes!
Similarly, the SDK also gives creators the ability to trigger player emotes, the friendly and active animations preloaded for all avatars. Let’s say a player successfully completes a task or reaches a new level in a game, this tool could cause that player to jump with joy or clap their hands.
With the eventual support for custom avatar animations, these emote triggers will open the doors to a huge range of custom avatar behavior. Imagine avatars playing instruments, using tools, or playing field games.
Decentraland’s Builder and Marketplace have both undergone several big changes this past year. It’s getting easier to build more complex interactive scenes using the Builder thanks to integration with the SDK’s more powerful features, and builders have more options when deploying and managing their creations.
The Builder, Catalyst, and making smart items even smarter
One of the most notable changes is the Builder’s integration with the catalyst network last September. As part of the continual decentralization of all corners of Decentraland, the Builder now shows you what scenes are published (and where specifically they’re published) by referring to catalyst nodes. By keeping all of this data within the catalyst network, not only is it protected but it’s also more consistent!
All of your LAND meta-data now resides within the catalyst network, so when you visit the LAND tab within the Builder, you can see what content is deployed on your parcels or estates regardless of who, how, or when that content was deployed.
The September release also added the ability to deploy the same content to multiple locations at once, so anytime you want to reuse content you can save yourself a little effort.
Finally, the Builder’s smart items have been updated to share some of the SDK’s more important features:
- 3D icons for outbound links (with planned support for outbound links and icons to social media sites like Facebook, Instagram, and Youtube)
- Video streaming screen
- Audio stream playing radio
- Teleports (for inter-scene travel)
- More customizable picture frames (with customizable frames and the ability to display NFTs not owned by your account)
- Displayable images from a URL (this feature isn’t new to the SDK, but only now is it available as a smart item in the Builder)
- Displayable QR codes for wallet donations (all you have to do is input the wallet address, and the Builder generates a QR code for you!)
Analytics in the Builder
In November, stats and analytics were added to the LAND details pages within the Builder. Data hounds (or anyone excited to experiment with some data-driven content creation) can now see how many users visited their LAND over a given time period, what the median session duration was, what the max concurrent visitor count was, and more!
The major July release brought even more features from the LAND manager into the Builder, rounding it out as the go-to tool not just for creating scenes but also for taking care of your LAND and estates. Specifically, the Builder now allows you to:
- View a complete list of your parcels, estates, and their respective details
- View the locations of all of your LAND within an Atlas, along with highlights for any deployed scenes
- Transfer LAND (individual parcels or estates) between accounts
- Add or remove any operator permissions for any of your parcels or estates
- Create or dissolve estates
- Add or remove parcels from your estates
- View a complete list of your previous transactions, along with their current statuses
The biggest takeaway here is that the Builder and Marketplace have become the best feature complete, up-to-date, and most secure places to manage any of your Decentraland assets - from wearables to estates. While the LAND manager is still around and usable, soon it will fall behind the Builder and Marketplace.
In February of 2020, the Decentraland DAO was launched marking a tremendous turning point for our community.
Wait, what’s a DAO again?
A DAO, or “decentralized autonomous organization”, is a collection of people with shared goals and objectives (e.g. building a virtual world) yet with no centralized control. By using a public blockchain and automated processes (i.e. smart contracts), decisions can be made, funds allocated, and actions taken without the need for private oversight.
Building decentralized applications is one thing, but giving global communities power over the future of those dApps is anothing thing entirely. Decentraland’s DAO puts this power in the hands of our community.
What is the Decentraland DAO for?
Making collective decisions
The DAO controls all of the smart contracts that power the Decentraland platform. For example, the contracts defining LAND, Estates, Wearables, and the Marketplace are all “owned” by the DAO. This means that any time someone wants to make a change to any of those smart contracts, the change must be approved by the community through the DAO’s voting system.
Managing Decentraland’s catalyst network
Remember those catalyst nodes? Anytime someone wants to add one (or remove one!) from the network, it first has to be approved through the DAO. This is an important safeguard to prevent any interruptions in Decentraland’s uptime, and to guarantee that Decentraland’s infrastructure can grow to support a growing community of users.
In addition to controlling Decentraland’s various smart contracts, the DAO controls a large amount of MANA that exists to help fund development of the Decentraland platform and its community.
Right now, the DAO’s interface only allows people to vote on YES/NO questions determining things like feature releases, permitted avatar names, smart contract updates, catalyst node additions/removals, and point-of-interest additions. However, members of the community are discussing the addition of a grants system that would allow people to request funding for their contributions to Decentraland.
Such contributions need not be limited to source code! Grants could help fund anyone creating content for Decentraland, whether it be art enriching the virtual world or a business with a monetization strategy based within the platform.
To read the community proposal for the grants platform, and to chime in with your opinion, visit the forum.
How can the DAO improve?
Each time you vote on an issue in the DAO, you submit an Ethereum transaction requiring a gas fee. These can add up to a prohibitive amount, deterring people from engaging in more trivial questions and issues.
To help boost community engagement with the DAO, the developer community is considering the use of a gasless, off-chain voting platform similar to Snapshot.
In addition to addressing the concerning gas fees, the Decentraland Foundation is planning to contribute to the user experience within the governance tool itself. DAO’s are unfamiliar territory for many people, so new tutorials, in-app tooltips, and detailed explanations of how the DAO works are needed.
How to get involved
You can find a detailed, technical tutorial for the DAO in the docs! This is a great place to start learning how to access the DAO’s dApp, how voting power is determined, what the voting process is, and what the various proposal stages are.
If you’re looking for the latest conversations about community proposals in the DAO, The Forum is the best place to look. The Forum is intended to host any active discussions related to Decentraland and its development. While Discord will always be a hub for the community, The Forum is a more searchable, browsable platform for long-form conversations.
For anyone interested in submitting their own proposal to the DAO, it’s recommended that you review these guidelines for writing an informative and successful proposal.
The Decentraland platform and community have come a long way since the beginning of 2020. Each month, we’ve seen notable progress toward the further decentralization of the tech underlying the metaverse. The tools available to developers, artists, and enthusiasts have all advanced, and the DAO has ushered in a governance system to support Decentraland’s growth for years to come.
There’s a lot to look forward to in 2021. The developer community within Decentraland is exploring some significant additions, like tools for building scenes directly in-world, a desktop client to boost performance and add native VR support, and a fully integrated L2 (second-level blockchain) solution for developers, users, and scenes!