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.
The main features for the prototype client and 2D SDK/CLI are:
- An avatar that supports some of the native Decentraland character customizations.
- 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).
- 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.
- A tutorial explaining how assets and scenes can be created by the community using our SDK/CLI.
- 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:
- 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).
- AUG-SEP Implementing the automatic 3D to 2D object rendering of a single scene.
- NOV Implementing the renderer to support moving around Decentraland.
- DEC-JAN Implementing the avatar renderer with support for native wearables and basic movement.
- JAN Documentation on how players can add 2D assets to their lands with a reference scene.