[DAO:0f0d927] Renewal New DAO Explorers: Mobile, VR, and Desktop (in Godot & Bevy)

by 0x83f9192d59b393c8789b55d446e5d4a77075c820 (ProtocolSquad#c820)

Should the following $155,560 grant in the Platform category be approved?

Abstract

Our team has made significant steps in the Explorers in the past six months, launching Android and iOS clients. Now, our main goal is to enhance the stability of the Explorers and let them to a final version. VR is working very well but the UI/UX needs to move to 3D interactions instead. Finally, the Bevy Desktop client now allows us to quickly introduce and test new features for content creators, like lights, cinematic cameras, GLTF manipulation, and so on.

Grant size

155,560 USD in DAI

Project duration

6 months

Beneficiary address

0x04812c531083054863ef354EF600A61857921466

Email address

dclprotocolsquad@gmail.com

Description

External Image

Introduction

We are very excited to have met and achieved the objectives outlined in our latest proposal. Whether in the Godot-developed client for mobile or Bevy for desktop, it is possible to enter and explore the different worlds of Decentraland, interact with other players, customize your avatar, and discover all new places. Thanks to this solid base, today we are in very good shape to propose even more and enrich the Decentraland ecosystem.

The Bevy client as a springboard for creators

External Image

On the one hand, we have the client made in Bevy, which, while working very well and smoothly, is the perfect scenario to test and iterate on new functionalities that will enrich the content in Decentraland.

We want to allow content creators to add lights, set up ambient lighting, and access the GLTF internal content in order to accelerate the creation pipeline based on this really solid standard. Additionally, we know some features are long overdue and need to be released as soon as possible, such as cinematic camera and scrollable UI.

Iterating on these new functionalities in the Bevy client first will allow us to quickly discover if there are blockers or any challenges, and make appropriate documentation and specifications so that both the Mobile/VR client in Godot and the Foundation Desktop in Unity can easily implement them as well.

The Mobile and VR era for Decentraland

External Image

Developments on the Godot client have focused on providing a final beta product, and this is now ready to be used. The mobile versions are already in stores, in a public beta and you can explore any type of scene and interact with other players.

Having worked in the last grant to prepare the foundations serving Mobile and VR, we can now iterate to improve performance and optimization to achieve a solid experience in both targets. At the same time, we want to start focusing on perfecting both products by adding ambient sounds, music, alerts and differentiating them by adding a UX designed specifically for VR.

In terms of optimization, we will do research to minimize annoying hiccups which, although already improved over the web client, are not tolerable for the VR version. In this sense, we will work together with Bevy if it is necessary to expose tools that allow this to be improved on the content creator’s side. We’ll also provide guides and development tools for content creators to test their scenes on Mobile and VR.

Old content also matter

We’re going to keep implementing the SDK6 Adaptation Layer, so old content is accessible from our Explorers. This is an SDK7 scene that can run the SDK6 scene converting the messages to be used by the SDK7 runtime.

Public document with this same information, just in case:

Watch our videos!

Roadmap and milestones

Each milestone represents two months.

Godot development

  • Keep maintaining the mobile public beta until officially released
  • Milestone 1: Mobile and VR
    1. Research techniques to reduce hiccups
    2. Add sound effects (ui interaction, player locomotion, notifications, etc)
    3. Implement Wallet Connect and Magic natively for Mobile
    4. Expose Dev Tools to debug scenes for creators
      • Make a guide to debug in Mobile and VR
  • Milestone 2: VR/XR client
    1. Create definitive visuals (skybox, ambient light, toon shader)
    2. Improve UI/UX with 3D content
      • Backpack
      • Settings
      • Map
      • Discover (like Genesis Plaza)
    3. Target to:
      • Try to publish to Meta Store (Meta Quest 2, MetaQuest 3)
      • Windows version for connected headsets (every headset that OpenXR supports)
  • Milestone 3
    1. Make graphics settings customizable
    2. Make Avatar optimization to support a large amount of avatars
    3. Try to make a public official release on the AppStore and Play Store
    4. Implementation of the SDK6 Adaptation Layer (part 2)

Bevy development:

  • Milestone 1:
    1. Properly exposing Dev Tools to debug scenes for creators
    2. Iterate and propose new scene runtime functionality
      • Cinematic Camera
      • Scrollable UI panels
      • Rich UI text
    3. Publish signed executables
  • Milestone 2:
    1. Iterate and propose new scene runtime functionality
      • In-world UI (UI to texture)
      • Lights support:
        • Ambient Lights
        • Directional Lights
        • Point Lights
        • Spot Lights
    2. Support Scene Permissions
  • Milestone 3:
    1. Iterate and propose new scene runtime functionality
      • Smooth transitions into animations: Blend
      • Expose and allow to modify internal content of GLTFs
    2. Implementation of the SDK6 Adaptation Layer (part 2)
    3. Implement Friends using Matrix

Vote on this proposal on the Decentraland DAO

View this proposal on Snapshot

Hi there, I really value the incredible work you all are doing. As we approach the midpoint of 2024, we have seen the release of Claude 3 Opus and the latest update for ChatGPT 4 Turbo from April 9, 2024 which one is breaking benchmarks which ones potentially able to speed up workflow up to 20-30%

Now lets try to break down the work with an approximate complexity levels:

(low = 1 day, medium = 3 days, high = 5 days)

and assume a standart 8 hour work day

GODOT DEVELOPMENT

  • Milestone 1: Mobile and VR
    • Research techniques to reduce hiccups (medium complexity)
    • Add sound effects (low complexity)
    • Implement Wallet Connect and Magic natively for Mobile (high complexity)
    • Expose Dev Tools to debug scenes (medium complexity)
    • Make a guide to debug in Mobile and VR (low complexity)
  • Milestone 2: VR/XR client
    • Create definitive visuals (medium complexity)
    • Improve UI/UX with 3D content (high complexity)
    • Try to publish to Meta Store, Windows version for connected headsets (high complexity)
  • Milestone 3
    • Make graphics settings customizable (medium complexity)
    • Make Avatar optimization (high complexity)
    • Try to make a public official release on the AppStore and Play Store (high complexity)
    • Implementation of the SDK6 Adaptation Layer (part 2) (medium complexity)

BEVY DEVELOPMENT

  • Milestone 1
    • Properly exposing Dev Tools to debug scenes (medium complexity)
    • Cinematic Camera, Scrollable UI panels, Rich UI text (high complexity)
    • Publish signed executables (medium complexity)
  • Milestone 2
    • New scene runtime functionality, In-world UI, Lights support (high complexity)
    • Support Scene Permissions (medium complexity)
  • Milestone 3
    • New scene runtime functionality, Smooth transitions into animations (high complexity)
    • Expose and allow to modify internal content of GLTFs (high complexity)
    • Implement Friends using Matrix (high complexity)

If we calculate - we have:

  • Total hours for Godot development tasks: 336 hours
  • Total hours for Bevy development tasks: 272 hours
  • Combined total hours for both: 608 hours
    In parallel = around 300h

Considering 1 day as 8 hours , in total approximately it will be:

  • Godot development tasks: 42 days
  • Bevy development tasks: 34 days
  • Combined total days for both: 76 days
    In parallel = around 40 days

1 week have 5 work days, in total it will be:

  • Godot development tasks: Approximately 8.4 weeks
  • Bevy development tasks: Approximately 6.8 weeks
  • Combined total weeks for both: Approximately 15.2 weeks
    In parallel = around 8 weeks

Considering that work going in parallel, in total we can make an assumption about 8 weeks

In 8 weeks this work can be done by the whole team considering 8h per day and 5 work days per week

8 weeks = 2 month

Considering the availability of Claude 3 Opus and ChatGPT Turbo with a new update from 04.09.24 which one is on the top of bench marks currently, it can speed up work process from 20% to 30%. In this case i would use 25% and 40$ expanse for each person

Right now i will calculate the time from parallel workflow for hours, days, weeks and month, considering 8h per day and 5 days per week - 25% speed up by AI i described above:

300h - 25% = 225 hours
40 days - 25% = 30 days
8 weeks - 25% = 6 weeks
2 month - 25% = 1.5 months

In total we have: 225 hours. If we devide requested 6 month for 225 hours and 5 work days per week it will be around 2 hours per day

Let’s talk about requested budget:

Each person will earn approximately $172.84 per hour, considering $155,560 for 225 hours of work divided among 4 people

Each person would earn approximately $25,926.67 in 1 month - 40$ for 2 subscriptions = $25,886.67
And for the next half of the month 12,943.33$ - 40$ for 2 subscription = 12,903.33$

  1. For 1,5 month , 5 work days per week and 8h per day - each person would earn 38,790$
  2. For requested 6 month and 2h per day and 5 work days per week, each person would earn around 345$ for 2 hours

The data I provided is approximate. In this scenario if the data is wrong, please prove that with a construct that breaks down tasks, assigns hours to each task, or highlights differences by presenting a well-thought-out alternative that better explains or optimizes resource allocation and budgetary needs for $155,560

1 Like

LLMs are currently terrible for highly skilled low-level code, saying “you can do this faster with ChatGPT” doesn’t make sense for that proposal, it’s not trying to generate thousands of questionable-quality media article.
Did you ever tried to write specific code using ChatGPT? You spend more time correcting the AI rather than writing the code yourself directly.

2 Likes

Hey Huepow! I’m glad to answer that!
First of all, you can get better input by seeing the links that I left such as the project where the tasks that were planned are located (with their respective PRs where they were completed) and the proposal from which the continuation of this project derives ( Expanding Decentraland Explorers: Mobile & VR in Godot and Desktop in Bevy).
I wish the calculation were so linear but that is not the case. We have experience working in both Godot and Bevy, and the Rust language. The best estimate we can provide is the one we specify in the proposal, and to which we can commit as we did in the previous proposal. As you will see in the final numbers, the costs are not fixed per month, and we focus on achieving the objectives set in each milestone.
I can report that, unlike the last proposal, in this one, there is 200 hours less dedication per month (and it is reflected in the final budget).
About LLMs, I completely agree with HPrivakos said, I’ve tried, and whenever it applies we try to take advantage of them, but we’re not building something generic or repetitive task. It’s very specific and most of the time you’ll need to correct the AI and hardly iterate.
Hope this answers your doubt, please let me know :slight_smile:

1 Like

Hey @leangodotdev , thank you for the detailed explanation about the time with link to be better informed on the project workflow and hours. I had completely different perspective of it and didn’t understood the budget and time. Now its clear with a budget and I understand that you cannot offer a linear calculation of time and budget, but only an estimate based on previous experience and a proposal with commitments to fulfill, so the cost of the work depends on achieving the goals at each stage. Thanks for breaking down.

It also feels good to hear about your hands-on experience with Godot, Bevy and Rust for the future project milestones

You raise a good point here about LLMs which i haven’t considered before: because you have sharply defined tasks and specific ones. However I would still suggest to try to use the newest and updated GPT-4 Turbo model from April 9 with code-writting GTPs. There are some good improvements in coding and currently top 1 at benchmarks of LLMs, that may help potentially to win some time in the long run or to code something unique, or even polish when it come to varitations and not specification.

P.S. We have a big important event in September - Metaverse Fashion Week and i believe you guys can do your best, before it happens with all available tools which might come on the way in exponential progress in this year

Changing my vote to “Yes”

2 Likes

I have issues with the protocol squad doing both Godot and Bevy development and doing the SDK support team at the same time.
Can you ensure you will be able to do both correctly at the same time? They seem to both be full time jobs.

1 Like

Hey HPrivakos! It’s a good one. Now the *** Technical Liaison and SDK Support team*** bid has passed, we can bring more light here.
Seba and I will be fully dedicated to the other proposal (the support).
In the proposal Expanding Decentraland Explorers: Mobile & VR in Godot and Desktop in Bevy which finishes next April, 30th we’re finally charging by ~ 600hr of Core Engine development per month. And also by 160hr of Jr Scene & Godot Developer.
In the proposal we’re voting on now, there is an estimation of 380hr of Core Engine development per month, and there is no charge of Jr Scene & Godot Developer this time, instead, I’ll be charging by some managing stuffs so the Core Engine devs can focus on technical stuffs. This is reflected by the difference between the two budgets.

1 Like

@HPrivakos, I would like to add from what Lean wrote that I’m going to be dedicated to the Godot Explorer version full-time, and BevyDev Consulting UK is going to be dedicated to the Bevy Explorer full-time
We are not going to be directly involved in the SDK support.

1 Like

Hello @Lean, my fellow “Holy Ones holder” I am so happy to see your growth. You have done well friend and I am happy for your recently approved grant:
[BID-0009] Protocol Squad & Coding Cave (decentraland.org)

I understand that certain people will work on this grant and others on the recently passed but can you kindly summarize who will do what within each grant considering they are both full time jobs. I read what you already wrote but a summary in a bullet point or spreadsheet would be best for my understanding.

Thank you kindly
Jenn

1 Like

Hey Lyla!
Our team is currently working together on the previously quoted grant (Expanding Decentraland Explorers: Mobile & VR in Godot and Desktop in Bevy). This one will finish next April, 30th.
Now, we’re in the middle of splitting the team into two parts.

  • On one side, Seba and I, are fully dedicated to the Technical Liaison and Support Team: I’ll take mainly the Technical Liaison role and also make support and workshops. Seba will be a support but also migrate SDK6 scenes to SDK7.
  • On the other hand, Mateo and BevyDev Ltd., will be fully dedicated to the explorer development.

Why do we post the entire team in this proposal? We’ll keep working together, not on the same product as we used to do, but on very related things, e.g., Bevy client is going to be used to introduce new features in the SDK and iterate faster, the SDK6 Adaptation Layer has to be implemented by the explorers (Mobile, VR and Desktop).
In the BID proposal, there is a document with some details also: BID SDK Support Team - Proposal document w/CodingCave - Google Docs

And numbers:

  • In the previous grant, we charge by 580hr/month of Core Engine development, Mateo, BevyDev Ltd. and Lean. And 160hr/month of Jr. Scene Developer, Seba.
  • Now we’re estimating for this grant by 380hr/month only for Core Engine development, Mateo and BevyDev Ltd. And 24hr/month for Managing, Lean.
  • And also now we estimated for the SDK Support propopsal, 160hr of Technical Liaison and Support (Lean), 160hr for Scene developer and Support (Seba), and 160hr for Scene Developer (Agus and Giorgio)

Hope this is more understandable :slight_smile:

PS: you tagged another Lean

1 Like

Thank you for the breakdown, much easier for me to digest. I’ll have to reach out to the other Lean to see how they are doing :grin:

1 Like

Hey all here, I’m forwarding this message posted also on Discord and shared with Foundation:

Hello there! :slight_smile:

:information_source: We’d like to share a series of things with you on this occasion.

Join BETA testing of Decentraland DAO Explorers :video_game: :test_tube:

First, we invite you to test our BETA Explorers and provide us with all the feedback you think is appropriate to improve them. In Mobile, the most mature version is Android. iOS, as of today (2024/04/18), has VoiceChat and LiveKit disabled (allows multiplayer in Genesis City and Worlds) to be able to polish other points before advancing development.

The future of the team :people_hugging:

We are reaching the end of this cycle, and we also want to share with you that although we will continue to work together, this team will be split into two. On the one hand, Seba and Lean will move to the Technical Liaison and SDK Support Team; on the other, BevyDev Ltd. and Kuruk will dedicate themselves fully to the development of the explorers.

Renewal the Explorers proposal :briefcase: :warning:

We have already published a proposal to continue the Explorers project. Your vote and feedback will be very welcome: Renewal New DAO Explorers: Mobile, VR, and Desktop (in Godot & Bevy)

Thanks for supporting us! This is funded by the Decentraland DAO.

Voting Yes, the team did an amazing work with both explorers. Being able to use Decentraland from the phone is just amazing!

Keep the good work!

1 Like

While I have not seen progress on the VR side of things, I have personally tested mobile and once all the bugs and crashing is addressed, I do think it will provide a great experience for mobile users. I am not a mobile preferred user, but I do see the greater benefit of having this adaption.

I do not understand still the need for the Bevy client as I’m not well versed enough in that but from the small research I have done, I see it just adding another layer of different programming for builders that I’m not sure is necessary. But again I could have that completely wrong as I said I’m not well versed. Happy to learn.

I do share others sentiments of the worry having the team split up into two different projects (this project and the SDK support). Not so concerned with a group having two grants as I am spreading the team thin. With my experience in managing teams, things can get delayed and out of sorts when a small team is focused on two large initiatives.

All that being said, I voted yes as I believe the progress I’ve seen on mobile alone warrants the approval. Although I do hope the crashing is fixed soon so I can really get a taste of the experience :slight_smile: :pray:

Hey Nikki, thanks for your feedback :slight_smile: and sorry for the delay

VR and Godot

Regarding the VR, we’ve been more dedicated to the Mobile version in the previous grant. As secondary objectives, we wanted to make a VR-build and an experimental-build for Web. We achieved both of them:

  • The VR build was shown in the Testing Tuesday; the demo video is here: https://www.youtube.com/watch?v=tS-B-waNlVI&list=PLBmhkGNdurqgz7OD5uDIdDVYvGkBIApCo&index=5. After demonstrating that it works well with the same codebase as mobile, we’re in good shape to propose all of the features exposed in this proposal.
  • About Web: there are some blockers, but the experimentation succeeded. We can confirm that it is possible to make a build there; there are just not enough devs for this renewal. Maybe later if the community demands it

Bevy

Have you given the client a try? It’s a frequent concern, and it’s understandable. There are many reasons to maintain developing the Bevy client, but the ones why we chose the first time still apply (open-source project; ECS based just as DCL). Since the addition of Godot to the project, it has also served as the first iteration of code to make the implementation faster in Godot. This is because both codebases are developed in Rust.
In the previous grant, we also kept Bevy to divide the efforts into two future-promise projects; it’s hard for a small team to target multiple platforms, so focusing on a specific target was key to the velocity we could achieve.

The two grants

It’s a challenge, but I mentioned in the BID that it’s to perform a role that we’ve practiced more or less in the previous grant and, for sure, in the first one. If you pick the previous grant budget and make the sum of the two, you’ll get a bit more because we added two Scene Developers (for migration and support). We feel confident about the scopes proposed :slight_smile:

1 Like

Renewal New DAO Explorers: Mobile, VR, and Desktop (in Godot & Bevy)

This proposal is now in status: PASSED.

Voting Results:

  • Yes 91% 10,491,095 VP (81 votes)
  • No 1% 42,462 VP (5 votes)
  • Abstain 8% 1,014,156 VP (3 votes)