[DAO:cbd8655] Update #1 for proposal "Expanding Decentraland Explorers: Mobile & VR in Godot and Desktop in Bevy"

Author: 0x83f9192d59b393c8789b55d446e5d4a77075c820
Update Status: Late
Project Health: :green_circle: On Track

Introduction

Welcome to the first grant update from Decentraland Alternative Explorer project. This team has the main goal of developing an explorer version using two different technologies:

  1. Bevy targeting to Desktop
  2. Godot targeting to Mobile

As secondary objectives we have:

  1. Make reliable explorer-agnostic tests to ensure the well-working of new explorers
  2. Develop experimental builds on VR and Web using Godot

The project is on track as planned and with strong steps done.

Highlights

General highlights:

  • Both projects, Bevy and Godot, are reaching the SDK7 feature parity in comparison with the current Reference Client. This means scenes developed with SDK7 almost work as completely as in the Reference client. Some things require planned features before implementing them, like the Web3 API.
  • The base for the Web3 implementation has already been started in both explorers.
  • The explorer tests of the first milestone are almost completed

Detailed Bevy highlights:

  • Features
    • add scene bounds checker
    • out-of-scene meshes dissolve with a simple noise pattern
    • out-of-scene world-space text fades
    • add nfts and nft dialogs
    • add requestTeleport API
    • add getPlayerData, getPlayersInScene apis
    • persist scenes that still exist when changing realms
    • /reload console command
  • Bugfixes:
    • add promise reject handler
    • fix collider layer mask
    • fix out-of-world exit condition for worlds
    • freeze ffmpeg version at 6.0

Detailed Godot highlights:

  • Features:
    • Update to Godot 4.2 and latest gdext
    • Web3 signin
    • Implement NFTShape component & open NFT dialog API
    • ui for scenes and UI components (UiInput, UiDropdown and PointerEvents)
    • Implement portables experiences
    • Implement ~system/Runtime and ~system/EnvironmentAPI API implementation
    • CLI for avatar rendering (tooling)
    • add ~system/Players and some sendBatch events
    • add sdk6 request teleport (API implementation)
    • implement adr 245 components (avatar)
    • add pointer lock and simplify camera mode component code
    • avatar modifier area
    • support global scenes
    • default emotes with multiplayer and restricted action for trigger emote
    • move player and teleport restricted actions
  • Codebase features:
    • add gdscript linter and async-function-name linter
    • use new promises
    • http request, remove content stages, and add content thread…
    • add gdscript promises to content manager
  • Bugfixing:
    • format avatar renderer gdscript
    • add avatar components to primary player
    • city loader content server url
    • avoid deno vm stop working on unhandled promises
    • ensure realm url starts with https:// or http://
    • stop processing ticks until all gltfs are different of loading state pending
    • CameraModeArea limits, they only works in the active scene
    • promise resolving for fetching texture on ui background

Detailed Tests highlights:

  • scene set up to test componentes
  • add mesh renderer snapshot test
  • add material snapshot test
  • add glft container snapshot test
  • add visibility snapshot test
  • add pointer-lock test
  • add engine-info test
  • add billboard test
  • add raycast test
  • add transform test
  • add camera-mode-area test

Blockers

Fortunately, so far there are no blockers. We forked @dcl/sdk and @dcl/protocol to iterate faster in the protocol level modification. Creators will be able to access this modification by installing npm i @dcl/sdk@protocol-squad in their scenes.

Next steps

As everything seems to be on track as planned, the public roadmap in DAO Expanding Decentraland Platforms · GitHub contains what we’re working on. We hope to finish the Web3 implementation and close the SDK7 feature parity in the coming month.

Additional notes and links

View this update on the Governance dApp