About a month ago, I reconnected with maraoz. It had been a while since we last talked, and we went through a lot of things. Among them, he pointed me to a blog post he wrote about his vision for Decentraland.
Decentraland is an open-source metaverse built on top of Ethereum. I'm a bit critical about blockchain projects in general, mostly because I don't like speculative markets. Because of that I kind of dismissed Decentraland because, from my perspective, it was another speculative project. Manu's post changed my mind regarding it, mostly because I now see it as a great counter-culture device against Meta. Similar to what I felt when I found the open source movement in the 90s.
After some back and forth, we decided to try and submit a proposal for a project to explore what can be done with the existing protocols and APIs in Decentraland.
We decided to apply for a grant to build an alternative Decentraland client. Currently, there are two clients, the official one created by the Decentraland Foundation, and a VR one that is on the makings.
The thing, though, is that both of them are built using Unity. And I'm not using Unity anymore.
To make the experiment a bit harder but more useful in the long term, I decided to use Rust and try not to rely on the Unity implementation other than as a reference implementation.
The proposal I submitted aims to build a 2D retro client that will let you walk around Decentraland with a customized 2D character.
The proposal was approved this week with overwhelming support and nice words from the community and the Decentraland Foundation. I'm very grateful we got a chance to make this a reality.
The value of this project
I'm very excited about the value this project will bring to the Decentraland community.
For starters, this will be the first attempt (that I know of) at creating a client solely using Decentrland's APIs and protocols (besides from the Foundation client, that is).
I hope we'll encounter a bazillion blocks in the way and by solving them we'll pave the way for other people wanting to create custom clients.
We've already been reporting some issues in the Catalyst API, and hope to keep contributing as much as we can in terms of fixing existing documentation.
Also, all the code we're writing is open-source and has the same license as the code from the Foundation. This means that other developers should be able to create clients using Rust (or other languages provided they create the interfaces to our libraries).
In terms of what we bring to land owners and users, I love what
dax pointed out on discord:
What this means is that, by having the ability to create a 2D "version" of a decentraland scene, we're creating alternate dimensions, and thus, creating a multiverse.
In the long term, developers will be able to create 2D versions of their 3D experiences, use the 2D land for totally different purposes or build mixed experiences, where 3D actions affect the 2D world or vice-versa. I can't wait to play Stranger Things' upside down in the 2D client 😛.
Project status update
We've been working on implementing a catalyst client in Rust and we're pretty advanced. I'm focusing a lot on creating a clean and simple API for the library. I'm very happy with the results and will be writing about it soonish, but if you're impatient and know some Rust you can peek at my work in the repository I created for the project.
Also, if you see something odd in what we're doing, please feel free to open an issue on GitHub or ping me on Discord (my user is
Fran Tufro#2202). I'm happy to discuss the project with anyone interested.
Until next time 🌈