MONA, Decentralized VR
I like Mona. There. I said it.
I liked their SDK before they earned me a bunch of money, too.
(Disclaimer: They didn’t give me anything to write this post, unfortunately.)
Why do I like Mona? Because it’s quick and easy to get a 3D environment from the Unity game engine onto the OpenSea marketplace.
If you wanna join me playing in a decentralized immersive sandbox, step this way.
What’s a Mona?
A platform for custom interactive worlds that provides creators with open tooling and infrastructure to launch 3D experiences in the metaverse.
Here’s their schtick:
Mona’s mission is to empower people around the world to create, collect, and share the highest quality immersive experiences on the blockchain, growing the Open Metaverse.
The highest quality multiplayer experience available in a web browser enabling anyone to host interactive experiences, games, and events over the web with fully customizable avatars, voice chat, text chat, and token gated access. These experiences are part of a connected social network of thousands of interoperable virtual worlds, unrestricted by creative limits.
The first dedicated marketplace for the creation, discovery, and purchase of interoperable 3D assets built for interactive experiences across the open metaverse.
The greatest metaverse builder community comprised of the world’s top architects, game designers, 3D artists, developers, collectors, and explorers from around the world with a passion for remarkable immersive experiences.
Another Disclaimer
Look, I know there’s a lot of criticism of the crypto industry.
- Does it have a big ecological footprint? Yeah, probably bigger than it could be. It is a lot better than it used to be, though.
- Does it exacerbate inequality? That’s a hard thing to prove either way. We should all keep a close eye on how things in El Salvador (the first country to make bitcoin legal tender) play out.
- Is it full of scammers and Ponzi schemes? Yeah, there are definitely too many out there. If you find one, punch them.
- Is it used to facilitate human trafficking, assassinations, and drug deals? Hell, I don’t know. Probably. I wouldn’t put anything past human beings. Then again, these things all pre-date our “magic internet money”.
That said, I’m hopeful.
Decentralized finance opens the doors to new applications, businesses, hardware, and jobs. It also confronts some of the darker aspects of our traditional finance systems (crippling debt, predatory loans, engineered inequality, charlatanism, fraud, and other forms of class warfare).
The reason I bring this all up is because any decentralization endeavor is inherently experimental compared to other more established techniques. Even as I type this, I recognize that Mona is at an all-time low in terms of NFT sales.
Who knows? Maybe it’ll perk up again when/if there’s another uptick in public interest.
I suspect there will, and it will. I’ve seen a few ups and downs over the years, so I don’t think this particular dip is one that’ll last forever.
Getting Started
Okay cool, t’s and c’s out the way, let’s get our hands dirty.
Here are the official Mona docs: https://docs.monaverse.com/create/getting-started-building
Install Unity 2022.3.6f1
Mona currently (24/08/2023) requires all builders to use Unity version 2022.3.6f1.
- Install the Unity Hub if you haven’t already.
- Install Unity 2022.3.6 after installing Unity Hub
- Pop this into your browser → unityhub://2022.3.6f1/b9e6e7e9fa2d
NB: When installing, make sure to add Build support for WebGL. If not installed, you’ll run into a WebGL related error when building.
Download Mona Template SDK
- We have a ready-to-use Mona SDK for Unity. Download it here.
- Download the SDK by pressing ‘Code’, then ‘Download Zip’, or cloning the repository. (Tip: The Release section is usually stable)
Open the Template SDK in Unity.
- Unzip the Mona SDK into the preferred location on your computer.
This folder is the project. - Open the Mona SDK folder to your Unity Projects using the ‘Open’ Button in Unity Hub.
- If the Space is not opened automatically, click on the project to open it. Note that this may take up to 5 minutes to import.
Note: If you see this error…
Load Mona Scenes
After opening the project, load the template scenes.
‘Mona > Load Space Scenes’ in the Mona menu at the top.
This will open three scenes: Space, Artifacts, & Portals.
Make sure to delete the ‘Untitled’ scene in the Hierarchy window by right clicking it, and selecting ‘Remove Scene’.
Update the SDK
Popular SDKs get updated often. Luckily, Mona has built in a neat little updating tool.
Design
Backups
Plastic SCM (aka Unity DevOps) is a common source control app for Unity projects. It’s not as popular as Github or as straightforward as Perforce, but I think Unity will turn it into something pretty useful at some point. The old Unity Source Control app was built into the engine, which is where I think they’ll take this app.
Get deacōnline’s stories in your inbox
Join Medium for free to get updates from this writer.
In the meantime, remember to backup often.
To do this, you can simply make a copy of your project folder (Ctrl + C, then Ctrl + V works) and then open the duplicate folder in Unity to continue.
Mona Library
Other SDKs sometimes distance themselves from external (unofficial) prefab tools. Mona has baked them into their SDK.
Lighting
Bakery is an awesome tool.
It handles lightmapping quickly and with high quality.
It is a paid Unity asset, but it goes on sale regularly. Today it’s $55, but who knows when it’ll go on sale again. I’ve used it countless times, so I’d say it’s worth any price, really.
(I’ll update this part of this post with a little more Bakery detail in the future… Stay tuned.)
Importing 3D
https://sketchfab.com/ is wild. There are oodles of 3D models on there.
No wonder Epic Games bought them. (see https://www.fab.com/)
Perhaps one of the best features of Sketchfab is the number of downloadable formats.
As someone who works with AR and VR, I can’t recommend the .glb format highly enough. It’s lightweight, optimized, and it neatly organizes materials and textures so you don’t have to.
The thing is, to import a .glb into Unity, there’s one extra step.
glTFast is the coolest .glb importer out there at the moment.
It’s just quick, it’s easy to use, and it works reliably. (Three things I profoundly appreciate in any software tool.)
With this installed, just drag and drop your .glb files right into your project folder, and you’re all set.
The .glb’s secret sauce is that textures and materials are combined on export. This means that when we render these 3D objects, the computer only needs to make a minimal number of draw-calls (the loading of a texture file).
Development & Logic
Logic (Reactor)
Reactor is a beta release of the interaction tools for Mona.
It is experimental and will have limited support for now, but if you’re willing to get your hands dirty it can make cool stuff!
Here are the official docs: https://docs.monaverse.com/create/building-spaces/adding-interactivity/reactor-overview










