I’m Building a Metaverse Engine

Hey everyone, this is a general update on the website and where I (WireWhiz) am going.

The blog has been silent for a while, and that is for a good reason, for one I started college and I was hired by Megadodo as their lead game dev (Only game dev atm but the fancy title feels nice.) So I have not had a lot of time to focus on the website and general “influencer” type activities.

Luckily for you guys I’ve been getting better at time management and am going to start posting again! What am I going to be posting? I don’t think I will be doing too many tutorials anymore, while I would love to do them my focus has shifted to more advanced topics that are a little hard to tutorialize.

More specifically I’m building a game engine from scratch.

As it’s a game engine that I eventually want to be able to use for shippable projects, specifically one particular project, I won’t be posting step by step tutorials, but rather devlogs and patch notes.

Ok cool, I’m building an engine. Why?

Well, it’s actually been a dream of mine for a long time to make a metaverse engine, though I didn’t think of it like that back then. The earliest idea I think I had was probably over 5 years ago, when I was wandering in my backyard contemplating life, and I thought up an idea for a web based game. The concept is simple, a 2D web game where any player could access the code of the game, the specifics are a little vague, but I had this vision of grand wizard battles where players cast spells made of code at each other in a grand battle to see who was the most powerful, the smartest, the best. Of course I didn’t do anything with this idea, but it stuck with me.

The second main inspiration I had was from the book series “The Mortality Doctrine” by James Dashner. In these books people access the “virtnet” through coffin like devices that offer a full dive experience, and when they close their eyes, instead of seeing nothing, they see the code of the world surrounding them. This also stuck with me.

Basically I really like the idea of a VR world where just like with a web browser you can “ctr + shift + i” and see the code.

Why Not Just Use WebXR?

Because put bluntly, I don’t like JavaScript, and I don’t think web based tools are powerful enough. I want to build something from the ground up that is made solely for a Metaverse, and is optimized solely for that one task.

Ok Then, What Are You Making?

I’ve named it the Brane Engine.

No, that’s not a misspelling, though I do that a lot. A Brane or Membrane is a concept in String theory that represents an “an extended object with any given number of dimensions” basically I understood that as: Our universe is a 3D membrane with a bunch of strings that representing everything resting upon it. Why the string theory reference? Because strings! (We’ll come back to this later)

Goal

My end goal is an engine that works similarly to a web browser, in that you go to places and they are loaded in over the internet as you play. This is the reason I’m not using a pre-existing engine. Because all current modern engines are built for compile-time optimizations and need nearly everything there when you press build, whereas the engine I am making is built around the idea downloading literally every asset at runtime. (No, don’t bring up WebXR stuff, again, not a fan)

I also want it to function similarly to Neos (No idea they existed when I started planning) In that all scripting will be done through nodes in game. Server scripts, player scripts, object scripts, shader scripts (eventually). And it will all be JIT compiled for maximum performance. I plan on coming up with a way that players can share libraries of code, that way if a player creates an object they could also use it’s functions in another world that uses the same library, if the world allows it they could still bring the objects in but some of the scripts wouldn’t work. Only whitelisted players would be able to change code and world owners could set if it was visible. Lots of settings and security stuff to figure out.

World loading will be dynamic, no waiting to load into rooms. You will just be dropped into the grid and be able to watch 3D models load in around you, I hope to be able to make this in such a way that an open world could be created with objects dynamically loaded in as you walk around it.

I’m unsure about how travel will work. What I want to do is make it so that instead of teleporting around, every world has a “magical subway entrance” basically all worlds would be connected by a subway car, where you get in from you home world, and then select your destination. This would be to increase the sense of presence you have in the world as you would never “technically” leave. It would also make it possible to do things like pick up friends in whatever server they’re in and make a party. That way you wouldn’t have that awkward feeling of having the slowest internet speed of the bunch, stuck in the void with nobody to talk to. Instead everybody will be stuck together in a cramped subway car all mad at the person with the slow internet, fully able to express their feelings. Much better.

Current Status

As of now, everything above is a calculated dream, not a promise, but it is what I’m aiming for. As to how far I’ll get? Unlike the other abandoned projects scattered about this website, this is one that I care deeply about. It’s basically my child while the others were just projects. So at this point the only things that could stop me from perusing this project are Death, Dismemberment (Until I got a neuralink or something), Or somebody hires me to make a metaverse with the right terms and conditions.

Now something to address is that I am working for Megadodo, who have plans to make something similar to a metaverse, but I’m not making this for them. This is a project that I am doing of my own accord in my free time. It is a possibility in the future that I would work with them but I would want to retain control over the engine, which is why I’m doing it on my own for now. Basically, coding the engine is my life at this point, I will not lose it or control over it.

As to the actual status of the engine, I’ll go into more detail in future posts but I’ve halfway completed the core ECS system, and am working on adding in Vulkan support so that I can actually have something to show for the 3,500+ lines of code I have so far. For now you get some baby photos:

The shader compellation messages are being sent from different threads and I haven’t bothered to fix them yet

So not much to show yet, but there is a great journey ahead of us. I got some socials you can follow if you want to stay updated, I’ll post on my twitter every time I post an article here so you can find it. The email system for this website hasn’t worked in years and I can’t be bothered to fix it.

Twitter: https://twitter.com/TheWireWhiz
YouTube: https://www.youtube.com/channel/UC7Od0m1gMVNHw1BCLZarWwQ

I hope I see you around.

Liked it? Take a second to support WireWhiz on Patreon!
Become a patron at Patreon!

2 comments

  1. It sound like you have a conflict of interest with your employer if you go ahead with this project. You could have a hard time proving you didn’t develop the engine at work and therefore in a court of law your employer will be able to claim they own your code.
    However I am very interested in your project, and I also play NEOS from time to time and have developed a few plugin for that program.

    1. Hey, Thanks for the interest! I’ve actually spoken to Or (Deca CEO) about about this and it’s not going to be a problem for the foreseeable future.

Comments are closed.