Author: 0x83f9192d59b393c8789b55d446e5d4a77075c820
Update Status: Late
Project Health: On Track
Introduction
Welcome to the fifth grant update. This team has the primary goal of developing an explorer version using two different technologies:
- Bevy targeting to Desktop: featuring experimental and developer features to enhance the creator’s possibilities
- Godot targeting to Mobile and VR: pointing to have a reliable and production-ready explorer.
Highlights
In March, we improved the UI API for Bevy, allowing huge progress in the Bevy Scene UI and also the generation of imposters on the server side. We refactored the UI in Godot to support Portrait mode, enabled the asset optimization pipeline for Worlds, and submitted a try to the Apple Store for review. We left all the details below.
Bevy (Desktop)
Features
- Server-side imposters
- Add
--content-server
command line arg for forcing a specific content server- Set imposter realm base to be about url instead of content server
- Optionally generate zip files when creating imposters
- Add
multisample-amount
setting for imposter rendering, set to 0 for baking - Download imposters from server
- Protocol
- Add
forceRender
toAvatarShape
andAvatarEquippedData
- Add
- Gamepad controls
- Input bindings
- Rework input management
- Persist bindings
- System UI scene apis
- Reload
- Hide UI
- Live scene info list
- Get/set home
- Get realm provider
- System action stream
Misc
- Avatar reports feedback on load state to scene via
GltfContainerLoadingState
- Add writeable
PointerLock
for system scene - Improve blocked camera collision detection
Bugfixes
- Fix crash on Linux/x86-64 when spawning multiple v8 isolates
- Remove obsolete Linux despawn workaround
- Report cursor coords correctly when drag locked
- Use forked winit to fix cursor locked behaviour
- Fix fast avatarShape updates cause duplicate render entities
- Fix scroll drag behaviour with nested scroll areas
- Fix blocked initial parcel causing scene ui to not load
- Don’t restart animations when an existing avatar is updated
- Avatar nametags now orient to active camera
- Avatar nametags don’t render if empty
- Permissions use realm provider url instead of server url
- Permissions recheck settings before showing dialog
- Fix distortion on foreign avatar nametags
- Fix sticky focus on focused item despawn
- Read
expressionTriggerId
for emotes - Increase gpu transfer budget to avoid flickering on scenes with many large videos
- Honour emote loop extended metadata field
- Emote uses default animation if no “_Avatar” animation is found
- Emote remove props matching old default avatar/reference meshes
Scene UI
- Backpack system for wearables: wearable visualization, equip, avatar preview, pagination for long list, category slots, etc.
- Scene info card and scene widget are implemented: Likes, Fav, Scene Rating, Photos, SDK Version, Tittle, description, coordinates, etc.
- The Events tab works now, but I need to improve the handling of bad API responses. (Right now its behavior is pretty similar to alpha explorer)
Godot: Mobile and VR and others
- Implement asset optimization for Worlds
- Refactor Godot Mobile UI for Portrait and Landscape
- Implement UI visual effect
- Implement Terms and Conditions screen
- Submitting Godot to Apple Store for review
- Fixed falling animation not triggering on small drops
- Improved
Jump_Start
andRun_Jump_Start
animations for better responsiveness - Implemented camera improvements: smoothing and dynamic FOV adjustments
Blockers
Next steps
We will be working on:
- Update to Godot 4.4.1 (Godot Core)
- VR update (Godot Core)
- Upgrade iOS SDK to version 18 (Godot Core)
- Sensitive settings for input bindings (Bevy Core)
- Extend Bevy UI API functionality (Bevy Core)
- Polish Server-side imposters (Bevy Core)
- Backpack system for wearables: emote visualization, equip emote, sort by (UI Scene, Bevy)
- Set home (widget scene info) (UI Scene, Bevy)
- Photos panel (to see place’s photos) need to improve some styles and layout, implement share buttons. (UI Scene, Bevy)
Additional notes and links
- Join us on our Discord server: Decentraland DAO Explorers
- Public home page to get links: https://dclexplorer.com/
- Public roadmap: DAO Explorers · GitHub
- Godot project: GitHub - decentraland/godot-explorer
- Bevy project: GitHub - decentraland/bevy-explorer
- Bevy Scene UI project: GitHub - dclexplorer/bevy-ui-scene
- X Account: https://twitter.com/DclDaoExplorers/