Technical Updates - 15 Feb, 2021
Reviewing the latest technical developments in Decentraland
Shortly after the new year, the End of Year Review brought us all up to speed on Decentraland’s biggest technical developments from the previous 12 months. This time, we’re back with a granular, monthly review of recent deployments in the Decentraland Builder, Marketplace, SDK, Explorer, and Catalyst network.
Rather than cover everything chronologically, we’ve organized each release according it’s particular area of the metaverse. Let’s get started!
On January 15th, version 2.17.0 of the Builder was deployed, introducing a slew of features for creating and managing unique names in Decentraland. After launching the Builder and tapping on the Names tab, users are presented with a fresh list of every name they’ve claimed in the metaverse, along with options to claim new names, assign names to different avatars, and even to generate unique, persistent URLs that tie a name to a parcel or estate.
Shortly after, this update resolved an issue where the Builder couldn’t load a complete list of names. Now, regardless of how many names you’ve claimed, you can view and manage all of them from the Builder’s interface.
The most notable addition to the Marketplace in January is version 2.0 of the LAND API. Version 1.0 was beginning to show its age; inconsistent objects returned from the v1 endpoints coupled with some very taxing methods for retrieving data about LAND meant an update was overdue.
Version 2.0 features new, more usable object shapes returned from the LAND APIs endpoints. For data unavailable directly from the API, developers can now query The Graph, a decentralized indexing profile. You can read up on how Decentraland uses The Graph in the original announcement.
To get started with the new LAND API, begin with the docs on GitHub.
The SDK received two exciting new library updates.
No longer do NPCs have to stay put in Decentraland. By using the new
followPath() function, you can program NPCs to walk, hop, or slither (animations not included) along straight and curvy paths throughout your scenes. Parameters allow you to define different starting points, speeds, or looping options. Learn about NPC paths and see some examples on GitHub.
Random noise utilities
Reproducing complex motions that appear natural and organic in any 3D environment can be tricky, but these new Noise Utilities in the SDK make it a little easier in Decentraland. This is a new library using Perlin and Simplex algorithms, both of which were invented by Ken Perlin in the 80’s and early 2000’s (times when computer graphics left plenty to be desired).
Perlin created these algorithms with the goal of randomly generating more realistic and organic 3D graphics. Picture the motion of waves or grass blowing in the wind, the seemingly random heights of forest trees, or the shapes of mountain ridgelines. The Simplex and Perlin algorithms are a simple yet powerful tool that can provide the values needed to recreate these natural patterns in the metaverse.
January saw several bug fixes in the Decentraland Explorer.
Fix: pausing HLS (HTTP live stream) content causes the video to start over
Previously, pausing or playing any live stream videos would result in the video starting over. A related bug prevented any HLS videos that were restarted from being played again at all. This fix allows videos to be played, paused, and reset without any errors.
Fix: retrieving the message of the day triggers fatal errors
Some users have encountered fatal errors when loading their message of the day, preventing them from entering the world. This fix helps the Explorer to load, even if the MOTD cannot be retrieved.
Fix: info panel remains on screen after avatar editor is closed
After closing the avatar editor, sometimes the info panel would remain open. This fix ensures all components are closed when closing the avatar editor.
Fix: videos impact performance of nearby scenes
Video playback within scenes has frequently impacted the performance of neighboring scenes. This has been due to the cost of refreshing the video texture, so this fix updates the frequency at which these textures are updated. Now, when a player moves away from a playing video (or they leave the scene entirely) the texture refresh rate drops to once every 1.5 seconds.
Fix: negative performance when loading shaders
This fix greatly reduces the loading times of the Explorer by optimizing the shaders that are pre-loaded, or “pre-warmed”.
Fix: wearables not shown when in avatar editor
Previously, some users would open up the avatar editor to find that their wearables could not be displayed. This fix ensures that avatars are able to don their wearables even when being edited.
New feature: sort deployments by date when calling
/deployments endpoint allows you to retrieve a list of the content deployments stored within the content component of Catalyst. Documentation for this endpoint (along with the query params) can be found here.
This change adds the ability to sort results according to
entityTimestamp, which notes the time that a particular deployment is created.
localTimestamp notes the local time when a deployment is performed, and can also be used to sort results. The results can be arranged in ascending or descending order by setting
localTimestamp can differ due to a lag between an initial deployment of a scene, wearable, or profile on one Catalyst node, and the eventual sync with the remaining nodes in the network.
Fix: concurrent requests handled incorrectly
This fix prevents duplicate content deployments from being made. For example, if a user makes changes to their content and deploys them to their LAND, it should not conflict with content already deployed. (You can still deploy content to multiple locations, this fix just prevents conflicting deployments to the same location.)
New feature: Lambda service now curates list of populated scenes
After launching Decentraland, you can enter the Explore tab to view a list of current scenes with the most users. This is a helpful way to find interesting and popular places to visit. Previously, each individual client was tasked with curating this list of scenes, resulting in longer loading times for players.
This update adds a Lambda service to create the Explore scenes list, greatly reducing the loading times for each player. The Lambda API is used by Decentraland to retrieve information about the world on a short term basis, answering questions like “which scenes currently have the most users”. (Information that needs to be stored for longer periods resides in Content servers on each Catalyst node.) By creating a Lambda service to generate the Explore list, users’ individual clients are spared the effort of handling that complex computation - all without relying on a single centralized server.
Don’t miss future updates!
Follow Decentraland on Twitter to stay up to date with all of the latest open source, community releases in the World Explorer, Builder, Marketplace, SDK, and DAO!