[DAO: bafkrei] Decentraland Retro 2D Client and SDK Proposal

by 0x270722b5222968603e4650c3b70a7dfb971ed5b6 (frantufro)

Should the following Tier 4: up to $60,000 USD, 6 months vesting (1 month cliff) grant in the Platform Contributor category be approved?

Abstract

We would love to have a 2D client for Decentraland that allows anyone to create and play 2D games.
We are proposing a 2D client prototype that allows you to walk around Decentraland.
We think that a 2D game client would help expand the Decentraland ecosystem by providing an alternative way to create content in Decentraland.

Grant size

60,000 USD

Beneficiary address

0xa63A3eeE0101e61f3c970445A237ED04785ad145

Description

Background

After Reading maraoz’s blog post about his vision for Decentraland, I (frantufro) started to get interested in Decentraland’s potential as an open-source metaverse.
Up until then my opinion about crypto gaming (including Decentraland) was rooted in the current state of Play-to-Earn games and their mostly speculative nature.
Our initial discussions on the topic made me realize how shortsighted I was about the potential of a platform like Decentraland. We both want to see an open-source alternative to Meta. We also know that there’s a lot of work to be done to get there.
This proposal is our first step towards that vision.

Vision

We would love to see a thriving community of Decentraland game creators enabled by an ecosystem of tools that support them. Besides the original 3D client developed by the Decentraland Foundation, we think that 2D experiences should definitely be a part of this ecosystem, and we want to take the lead in creating such tools.
The long-term vision for this project is to allow the community to easily create 2D retro games on Decentraland, with enough flexibility to support multiple types of 2D games.
To achieve this, we propose first building a prototype of an independent 2D retro client to walk around Decentraland, including scenes and some wearables.

Specification

In order to enable the creation of 2D retro-style games we need an alternative 2D top-down Decentraland client, and that’s where we want to start.

You may be wondering how it’s even possible to allow 2D games in Decentraland. The Decentraland Protocol consists of various layers. LANDs hold the scenes published by land-owners, which players can explore using the official 3d client. However, the protocol doesn’t specify what scenes are, or how the scenes are rendered. The official client is just one of many possible implementations. The magic of open-source and open protocols is that anyone can create their own client, with their own graphics and rendering. Currently, only the 3d web explorer by the Decentraland Foundation exists, and a VR client is being developed via a DAO grant. A prototype by maraoz shows it’s possible to create an alternative isometric 3D client too. What we want to create is the base layer for anyone who wants to create 2d content.


Visual Inspiration 1

The main features for the prototype client and 2D SDK/CLI are:

  1. An avatar that supports some of the native Decentraland character customizations.
  2. A top-down 2D rendering of the existing scene contents that you can explore with your avatar (without, for now, the ability to interact with 3D content).
  3. The ability to add 2D tiles/assets to lands through a CLI. Definition of a protocol to support defining 2D scenes and assets in Decentraland.
  4. A tutorial explaining how assets and scenes can be created by the community using our SDK/CLI.
  5. Base avatar movement that would allow the player to navigate the 2D version of Decentraland.

With these features in place, we think we’ll be in a good spot to start creating tools to implement gameplay on top of the 2D client.

As a byproduct of this prototype, we want to publish a Rust crate (software development package) to wrap Decentraland Catalyst’s REST API. This way other Rust developers will be able to interact with Decentraland easily.

Out of scope for this prototype:

  • Scene logic (execute Javascript for 3D or 2D scene content).
  • Interaction with 3D scene content from 2D client.
  • Implementing a 2D sample game.

Personnel

frantufro is a game and software developer with 20 years of experience and the owner and director of Hidden People Club, a small game development team located in Buenos Aires, Argentina. Part of the team was responsible for Nubarron.

Two members of Hidden People Club – loomstyla (developer) and camiloer (artist) – will be focusing full time on the project, and Fran will work on the core architecture and project management.

maraoz - Founder of OpenZeppelin and early contributor to Decentraland. Will oversee that the project’s vision is aligned with the Decentraland community. https://github.com/maraoz

Roadmap and milestones

We believe we can finish this project in 6 months.

We will use the Bevy game engine as a starting point, because we believe it will help us get to the prototype stage faster than implementing everything ourselves. Bevy is a free and open-source game engine in Rust. After the prototype is done we can evaluate if Bevy is the way to go or something different is required long-term.

The main milestones are:

  1. JUL Implementing catalyst-rs, a Rust crate to interact with Decentraland’s Catalyst API, focusing on data consumption for lands and avatars first (what we need for this prototype).
  2. AUG-SEP Implementing the automatic 3D to 2D object rendering of a single scene.
  3. NOV Implementing the renderer to support moving around Decentraland.
  4. DEC-JAN Implementing the avatar renderer with support for native wearables and basic movement.
  5. JAN Documentation on how players can add 2D assets to their lands with a reference scene.

Vote on this proposal on the Decentraland DAO

View this proposal on Snapshot

4 Likes

Great to see this out. I’ve been helping frantufro with this proposal and think it’s an essential experiment we must make as a community (ie: have more than 1 client, with different technologies and styles, and independent dev teams)

Looking forward to helping make this happen, strong YES!

5 Likes

so hard yes - alternate clients has been an idea since the early days of DCL, please let me know if you need extra help!

3 Likes

Based on my initial thoughts, our conversation in the DAO channel of discord, and @maraoz 's involvement, you have my YES. I would love to see this client developed and to see how it could impact the future growth of DCL.

Great proposal, I wish you success.

3 Likes

Love the idea of a second client that leverages the Decentraland assets in a way that is complementary. While deploying two scenes adds complexity, this is a tremendous increase in utility for land owners. I appreciate proposals looking to push the boundary of the DCL protocol.

3 Likes

Loving this!

I would imagine that you will need a strong pipeline to convert assets from 3D to 2D automatically. Challenging, but doable to a fairly usable degree.

Probably most of the value will come from content created specifically for the 2D client. For example the Golfcraft game can have a 3D scene (used on 3D clients) and a 2D scene (used on 2D clients).

Just amazing!

2 Likes

Some additional ideas:

Trying to make a perfect conversion from 3D to 2D assets will be mainly a waste of resources.

There can be some basic workflow to rendering in low resolution / orthographic view scenes and wearables. But please don’t try to make the 2D client compatible with the 3D SDK.

Instead provide a simple builder tool for the 2D version, and a nice 2D SDK. And only use the isometric render from the 3D scene if no 2D scene is provided.

AUG-SEPImplementing the automatic 3D to 2D object rendering of a single scene could cost too much effort for a low return.

Would be interesting to think how scale will come into play.
Decentraland lands are very small, and probably will feel even smaller in 2D.
2D land could be bigger, but that will hurt integration of 3D scenes and 2D scenes. If 3D scenes are scaled up avatars will feel small.

3 Likes

awesome proposal guys.

1 Like

We are pretty much aligned. The idea is to have an automatic process, similar to what’s done for https://genesis.city (in fact, we might develop a small tool for that project too) but using an orthographic projection with a fake topdown view of the current content and run it through a simple filter to make it pixelated. But that will serve as an automatic fallback, we’ll also work on a way for users to upload the 2D representation of entities.

So, yeah, we won’t do a “perfect” conversion, I think there’s no such thing, but we can do something good enough to avoid having to create assets for everything we have on decentraland.

We already have a Rust library that can download scene contents (I’m working on the last bits to expose this functionality, but I got it to work already). We were also able to open a DCL model using Bevy engine. So we’re pretty close to be able to create rasterized images, and then apply the filter.

Creating the builder with CLI/SDK is part of the project too. We’ll have to figure out a bunch of things before we can start working on that though.

We’ll see what we can do regarding scale. This is very experimental, so we are not sure yet how that will turn out. But yeah, we’ll do a fist pass, and then discuss what to do with the community.

1 Like

Awesome!

Looking forward to see the results!

Decentraland Retro 2D Client and SDK Proposal

This proposal is now in status: PASSED.

Voting Results:

  • Yes 99% 11,020,936 VP (52 votes)
  • No 1% 143,878 VP (3 votes)
1 Like

Decentraland Retro 2D Client and SDK Proposal

This proposal has been ENACTED by a DAO Committee Member (0xfe91c0c482e09600f2d1dbca10fd705bc6de60bc)

Vesting Contract Address: 0x9538bF13B7Eb6b6569adE0804e6ad9FA1AcEa9e5
View Transaction

1 Like

@Zino @yararasita @yemel should this vesting contract be frozen? there’s no update for awhile but grantee is still taking out funds :angry:

2 Likes

Hi @dax; thank you for this comment. I messaged the Grantee on Discord and we’ve been talking via email and scheduled a meeting for next Friday.

1 Like

Dear Community

The Grant Support Squad was created to support the grantees in achieving their goals and taking care of the DAO treasury.

We have spoken to the grantee and understand that the project is at least 2 months delayed and that the grantee is making efforts to get back on track.

With these inputs, our recommendation to the DAO Committee (@HPrivakos @yemel) is that the vesting contract for this project should be paused until the grantee could return to the main points.

This is the best course of action and will support the grantee in achieving their goals and taking care of the DAO treasury.

Thank you for your consideration.

Zino.

1 Like

The vesting contract has been paused. The DAO Committee is willing to recreate it when the team catches up.

Thanks everyone for your support and keeping us accountable.

I added an update to clarify some points and let everyone know that we just released the first version of 2dcl, the result of this grant: https://2dcl.org

Dear Community

The Grant Support Squad was created to support the grantees in achieving their goals and taking care of the DAO treasury.

The main objective of this experimental project was to prove the possibility of a 2D client prototype that allows you to walk around Decentland, and they made it (You can now download 2dcl from https://2dcl.org). They (@frantufro) have also expressed their commitment to seeking community input on the best course of action to advance the project.

Based on their achievements and transparency during the journey, we recommend to the DAO Committee (@HPrivakos @Tobik ) that the vesting contract for this project be resumed with a single payment of DAI 4099.541. This amount represents the remaining balance after deducting the DAI 55,900.459 that has already been released.

We believe this recommendation aligns with the project’s progress and provides the necessary support for the team to continue their work effectively.

Zino

1 Like
1 Like