Inspiration

The inspiration behind Your Meta World was to create a truly decentralised NFT based Metaverse on the blockchain, which offers a free to use platform in which users provide value themselves. Whenever there is a new piece of technology, or a word becomes a "buzz word" in the tech world, we often see a significant amount of low quality projects which seek to cash in on this buzz and hype without providing much substance.

Due to the anonymous nature of the blockchain we have possibly seen much more of this than usual over the course of the last couple of years within the Web3 space, particularly with NFT's. Many NFT collections have done little more than offer users expensive profile pics and empty promises of an exclusive club "in the Metaverse", which very often is just a small plot of land in Decentraland and a janky Unity demo.

Your Meta World seeks to change this, by providing users with a free decentralised platform within which they can form their own clubs, create their own Unity scenes, demoes, games etc. And display, wear or trade their NFT's in anyway they choose!

This platform will facilitate the creation of a community of sub communities with different skill sets, interests and visions all working on/in their own piece of the Metaverse side by side.

What it does

The end vision for Your Meta World is a 3D digital universe within which every user owns a freely expandable plot of land. The land is used initially to display the NFT's in their wallet as artwork inside of their spaceship.

This universe will be connected to our marketplace, which offers a unique suite of tools for both NFT interaction and creation. We are still in the early stages of building this marketplace, but users can already lazy mint 3D objects and view them in VR. This opens up a door to a long list of possibilities, such as users being able to try on NFT clothing on their avatar before purchase, artists being able to create innovative and exciting NFT collections with no code tools and more!

If the user wishes they can expand their initial plot of land to connect with additional Unity scenes, or replace this with another one (Micro Grant has been awarded by Filecoin to complete this functionality). These scenes can either be created and uploaded by the user, or they can be purchased from other users on the Your Meta World NFT marketplace (marketplace is already live!).

Inside of this universe users can have parties, gatherings, movie screenings, competitive gaming competitions, lectures and more. NFT's will power this ecosystem as fully fledged digital items which exist in more than two dimensions, and can provide multiple assets at once (sound files, C# scripts, Unity assets etc.).

As of right now, the foundation of this functionality has already been built. Users can

  1. Claim their own spaceship inside of Your Meta World and display their 2D NFT's as artwork
  2. Transform their 2D NFT's into 3D objects which they can then pick up and interact with in VR
  3. Mint a 3D object as an NFT and sell this on a marketplace
  4. Pull their 3D NFT's into a VR traversable environment and pick them up and interact with them for the first time!
  5. Directly swap their ETH funds into eMTRG in the marketplace
  6. Switch between Meter and Ethereum blockchain seamlessly

We are currently integrating our Unity scene NFT minter into the project, after being approved for a Filecoin micro-grant to complete this functionality recently.

How we built it

There are three main parts of this project

1. Vanilla Frontend + REST API

This is the front end of our web apps, which allow users to register their wallet and save the appropriate info to our MongoDB database via our Custom REST API.

All info saved in the DB is publicly available on the blockchain and not sensitive. It's just easier if we can perform the computation required to retrieve all this info up front, so when the user is in game things run smoother.

Users can also lazy mint their own 3D NFT on Rarible using our no code lazy minter, which utilises Moralis's Rarible plugin.

2. Unity Desktop Applications

The vision has always been to have Your Meta World in one single desktop application. This is something we are moving towards, but for the time being we have two Unity applications.

The first and the main app transports users into their own NFT spaceship. Here they can interact with their 2D NFT's like never before. They can also choose to travel to our marketplace, currently on the moon!

This app was created in using the High Definition Render Pipeline inside of Unity. We used HTTP requests to retrieve JSON data from our DB using our REST API, and then manipulated this data to produce 3D interactable objects. We made use of Photon to connect users to an online sever for multiplayer functionality when on the moon.

The second app teleports users into a 3D sandbox within which they can interact with their very own 3D NFT, which they will have minted in the web browser.

This setup was very similar to the previous app, but we are not using a HDRP pipeline for this as it presented some issues with GLTF textures. This is something we're working on.

3. Marketplace & Meter Integration

The NFT marketplace in the web browser is a React JS application built with Moralis. The basis of this was Moralis's open source Ethereum boilerplate project viewable here --> https://github.com/ethereum-boilerplate/ethereum-boilerplate

In addition to styling changes and the integration of a tab dedicated to 3D NFT's minted through our app, we also created a mini DEX backed by Uniswaps liquidity within which users can buy and sell eMTRG. Further integration of Meter's tokens into the ecosystem can also be built upon this.

We have also onboarded Meter's chain, to allow users to switch between ETH based NFT's and Meter based ones (remember to approve Metamask message).

Challenges we ran into

We ran into many challenges during this build, but we've listed some of the major ones below.

Unity is written in C# and is not compatible with node and standard Web3 libraries.

Because of this we needed to find a way to pull a users wallet contents into our Unity scenes. The solution we cam up with was our custom REST API, which connected a simple MongoDB database with standard Web3 JS libraries and wallet authentication. We could then make HTTP requests in C# to retrieve this data.

3D GLTF objects downloaded in real time would sometimes appear in strange places or with misaligned elements

Solving this was a multi step process, but through some external libraries and Unity setting tweaking we were able to solve the import issues we were having, and consistently place an object correctly inside of our scene in real time.

Our project does not have a token which we could apply to add to Meter's passport

Our solution to this was to introduce Meter as our projects token, and provide users with a convenient way to swap their existing ETH into eMTRG.

Accomplishments that we're proud of

I'm extremely proud of producing such an ambitious project as a solo dev with a full time job. There's still much work to be done, but I feel that the scope of this project is massive and there is the potential to change the Web3 landscape forever.

Your Meta World makes Web3 accessible for anyone and everyone, and once finished and launched properly will allow users with almost every type of skill set to build an amazing collaborative platform with branching storylines and experiences.

What we learned

Don't take sleep for granted.

How the Meter ecosystem works, and what the goals of the platform are.

There are some great Web3 API's and libraries out there which can save you a tremendous amount of time when building features from scratch.

What's next for Your Meta World

The first step is to finish the Unity scene NFT minter, which we've received a micro grant from Filecoin for. After this, we need to clean up the app suite to be one single Unity application and one single React app that contains all of the tools and info a user will need.

From there we will continue to innovate and create exciting features that allow builders and even consumers to shape the Web3 landscape. Even those with little or no technical expertise will be able to contribute to building on their own piece of the Metaverse.

eMTRG can be adopted as our own in game currency. Users can buy, swap and sell on the marketplace using their own Meter passport.

We would love to launch our very own NFT collection, which will grant users exciting avatars and wearables that they can use in game. Whilst these may unlock secret places in Your Meta World, we will remain committed to never closing off the tools which we offer to the general public for free. Your Meta World will never be a pay to play type scenario. We will welcome creators to come along and produce interesting and exciting experiences which they can sell, rent, or give away for free inside of the app.

Built With

Share this project:

Updates

posted an update

Users can now mint entire Unity scenes as NFT's and dynamically pull these into their Meta Worlds at runtime!

A user can create their on bespoke Unity scene, mint this as an NFT, and then hook this up to their spaceship. A second leaver is available in VR, which when pushed will teleport the user to their custom Unity scene NFT.

Log in or sign up for Devpost to join the conversation.