Proposal: a Protocol Squad for the DAO

Dear all,

I’d like to get a grant from the DAO to set up a new DAO squad to help the future of Decentraland. I’ve been working with @yemel and an external collaborator on this project for about a week, and we’re excited to get your feedback.

The Goals:

  • Write an extensive and detailed documentation of the Decentraland open protocol
  • Build the next-generation implementations of the World Explorer

Motivation: there is currently no rich source of information about the inner workings of the Decentraland protocol, which severely limits the ability of world-wide contributors to create new and more performant variants of the World Explorer, as well as other inventive uses. To increase our level of decentralization, the knowledge required to build on top of Decentraland must be easily accessible in high-quality documentation, and the field of alternative Explorers must grow.

New Documentation

The new technical documentation would cover the Decentraland protocol from end to end, providing a high-level overview as well as detailed information about each component, recommendations to leverage the existing capabilities and implementation guides to develop software using them.

New World Explorers

Three teams would be assembled to leverage and enrich the new documentation, building three new implementations of the World Explorer. Each one would have a different purpose:

  1. Production quality: aiming to become the most popular among players, this implementation would prioritize enhanced performance, distribution on game and app stores, broad reach for developers, and attention to legal licensing in today’s market.

  2. Educational: new developers joining the Decentraland community can greatly benefit from an implementation that prioritizes readability and organization, easy addition of new features, widely known programming languages and simple tooling. This implementation is meant for humans to read, learn and discuss improvements to the protocol.

  3. Moonshot: an idealistic and forward-looking implementation, based on technologies that are currently immature but hold great promise for the future. This project would prioritize solid fundamentals, extensibility, and the use of modern open-source frameworks.

The Plan

To make this dream a reality, we would submit a grant request to the DAO in order to help organize and finance the effort, and look for top-tier developers and writers passionate about Decentraland to create a dedicated team.

We selected a number of criterions desirable out of an implementation, and compared them to visualize the properties of the most popular engines in the market.

All feedback is welcome, and if you would like to participate in the squad, please send me a note!

Best,
Esteban

10 Likes

Sounds great! Decentraland relies too much on the Foundation for the client and protocol.

Distributing that knowledge in a controlled way is a good idea.

3 Likes

Oh yes, please!
I have personally been looking for that kind of documentation and would def love to see this become available.
And I would absolutely love to see something built with Production quality, with a clear focus on performance and user experience since this is the number one blocker atm imho when it comes to user attraction and retention. More than happy to contribute in one way or another! :metal:

3 Likes

First of all thank you for creating Decentraland. :handshake:

New chapter begins. Its so relevant. Hope you will do what you have planned.

2 Likes

An update on the implementation plans:

Implementing Alternative Explorers

The World Explorer is the principal client of the Decentraland protocol, by virtue of using the entire set of features and introducing requirements that drive the development of the underlying software.

Besides being the only complete implementation available, the current Explorer has known limitations, experienced by both users (e.g. performance) and developers (e.g. complexity). Some of these problems are intrinsic to the technology on which it’s built, others are the natural result of years of iterative development and difficult choices.

We’ll build three new implementations that rely on different frameworks and utilities, and can tackle these problems from a fresh start taking new approaches while armed with the accumulated lessons and discoveries of the Foundation.

The protocol documentation will be tested and refined as these efforts progress.

Implementation Goals

Each implementation will rely on a different stack, and have its own niche and set of goals.

  1. Short-term, production-ready: aiming to become the most popular among players, this implementation would prioritize enhanced performance, distribution on game and app stores, broad reach for developers, and attention to legal licensing in today’s market.

  2. Educational: new developers joining the Decentraland community can greatly benefit from an implementation that prioritizes readability and organization, easy addition of new features, widely known programming languages and simple tooling. This implementation is meant for humans to read, learn and discuss improvements to the protocol.

  3. Moonshot: an idealistic and forward-looking implementation, based on technologies that are currently immature but hold great promise for the future. This project would prioritize solid fundamentals, extensibility, and the use of modern open-source frameworks.

We’ll use Unity for its short-term production potential, BabylonJS for the educational variant and Bevy for the long-term bet.

:bulb: See Criterions for Engine Selection and the engine comparison table for more information on the selection process.

Unity: Production-Ready

Unity is a popular game engine that offers a number of advantages:

  • Performance: Unity is designed to support high-performance gaming on a variety of platforms, including mobile, desktop, and console. This can help to ensure that games built with Unity run smoothly and provide a good user experience.
  • Developer community: Unity has a large and active community of developers, which makes it easy to find support and resources when working with the engine. This can be particularly useful for developers who are new to game development or to Unity itself, and widens the recruitment field.
  • Distribution and licensing: Unity is supported by a wide range of game and app stores, including the Apple App Store, Google Play Store, and Steam. This means that games built with Unity can be easily distributed to a large audience on multiple platforms, and its license is per-developer seat, not taking a fraction of revenue (unlike, for example, Unreal).
  • Language safety and binary security: unlike lower-level frameworks, Unity uses a garbage-collected language and avoids the bug potential and security risks that come with C++ programs.
  • Long-term support: Unity has been around for a long time, is actively maintained and improved, and there’s every reason to think this will continue to be the case.

It’s also worth mentioning that Unity is the engine of choice for building VR applications for both PCVR and standalone headsets.

BabylonJS: Educational

BabylonJS is a good choice for the educational implementation for several reasons:

  • Code readability: BabylonJS is written in TypeScript, which is not only popular on its own but based on JavaScript. There are more developers using JavaScript than any other programming language. TypeScript provides features such as type checking, auto-completion and a language server that IDEs can use to help navigate the code.
  • Easy to get started: by leveraging TypeScript/JavaScript, it is well-suited for developers who are new to game development, Decentraland or Babylon by virtue of reducing the learning curve.
  • Scaffolding of new features: Babylon provides a number of built-in tools and features that help developers try out new functionality quickly. It comes with a scene editor, a physics engine, a particle system, and other utilities to accelerate the development process and reduce the amount of time and effort required to make changes or additions.
  • Free and open source: unlike some of its AAA cousins, anybody can build with Babylon without expensive subscriptions or licensing agreements.

BabylonJS is a good choice for this category, even if it’s not going to be the most performant.

Bevy: Moonshot

Bevy is built on solid fundamentals, it’s free and open source, and considers high performance a priority. Some reasons for choosing Bevy:

  • Solid fundamentals: Bevy is built on the Rust programming language, which is known for its strong emphasis on safety and reliability. This means that games built with Bevy are likely to be more stable and reliable, and to perform well even under heavy load.
  • High performance: Bevy is designed to support high-performance gaming, with a low-level rendering engine and concurrent execution within its ECS system, which is one of the most advanced. This, along with the choice of Rust, helps ensure that games built with Bevy are highly performant, cache-friendly and generally run smoothly.
  • Can become a production build: although relatively new, it has a strong and growing community of developers, and is actively being developed and improved. It has a good chance of becoming a viable option for production-level game development in the future, even if it is not realistic right now.

We can reasonably hope that, in a number of years, the Bevy implementation can become the default one and replace the closed-source Unity engine in production builds.

6 Likes