TL;DR

I’m making a game engine for VR with a demo game based on the Stargate franchise (which I’ll neither sell nor distribute, it will be strictly personal). I have no previous experience in the game industry, and it’s merely a hobby to keep my brain busy. I’ll share my progress in the ramblings page and what I learned in the future posts. Wish me luck !

How a neurodivergent brain works

I’ve always been fond of video games, or books. Anything that can push the boundaries of our current world. As a neurodivergent person, I had always struggle finding my place in the society, or even understanding it or its conventions, and fictional universe have been a real relief for my mind across the years.

(My apologies for the fact that I’ll always use the personal pronoun in this blog, I figured out that since the main purpose of it is to share thoughts, devlogs and what I’ve learned or discovered, it will be more convenient this way).

In my day to day job, I’m a developer and I like to be as technical as possible, knowing every aspect of my problem and how to solve it. I spend most of my time in front of a computer’s screen and when I code, or I explore a new world in a video game, I’m able to not perceive this constant difference between my brain and the world. My family always joked about the fact that I’m more comfortable with machines rather that with my own kind.

One of the problems of the way my brain works, is that I can get bored really easily. I need to keep it occupied and solving tasks or working on problems. Otherwise it may have disastrous impacts on my life : being bored often leads to impatience, anger and even depression. I’m not even joking, sometimes it may push me to not enjoying anything, to be mad about puny things, or even to outburst of rage if someone even tries to talk to me. (At this point, I should remind you that ADHD is a real thing, and even more when it’s associated with a borderline behavior).

A picture of a smiling face surrounded by the world bored written
everywhere

In peace, a small dust can scratch the mind

As you can see, it’s a constant struggle with my own brain (one of my friends used to say you’re running after your brain). Like I said before, video games are part of my peace bubble, however I often happen to be frustrated by the possibilities in them. They’re supposed to be complete universe, but you’re not free to do whatever you want, you’re limited by the possibilities implemented in the system.

With the recent progress in technologies (mixed reality, compute processing power, high resolution cameras, small & large language models…), I think that we have all the tools to create complete universes and simulations.

Take for example video games like Red dead Redemption 2, Grand Theft Auto 5, The Legend of Zelda: Tears of the Kingdom… All those video games are basically simulations with a specific set of rules, and with worlds of an exponential size (given the size of their “enclosure” : the Switch cartridge or the size of a Hard drive). You can literally generate complete towns, or even countries using two small squares of less than 5 cm (your CPU and your GPU). This is even more true when you take a game like StarCitizen which creates a complete solar system without any loading screen ! (yeah I know, it’s in dev for more than 12 years now… but still technically it’s amazing).

Few years ago, while doing groceries with my wife, I bought this used book called Player One by Ernest Cline. I literally devoured the book like a Lion while devour eat a zebra in the wild. (It was before Spielberg made this movie adaptation, thankfully). The idea of creating a complete virtual universe to live anything you want using only a VR headset, it was mind blowing for me. In fact my own username came from that book. I became obsessed with VR, and started learning everything I can about it. I managed to get my first headsets (a Cardboard and a Daydream, both deprecated in less than 5 years after their releases, thanks Google for that), then a Lenovo Explorer (now useless since the drop of support to the Windows Mixed Reality platform, thanks Microsoft for that), and I try several games in them. And it was… disappointing.

An animated image of Ego in Guardian of the Galaxy 2 saying
disappointing

I mean most of the VR games out on the market are only arcade games (shooters or simulations) or things with a little story line (a few hours at most). The only games at the moment with more than 30 hours of gameplay (or a big universe) are ports of existing games, which aren’t design with VR has a first target, so they’re kind of clunky. The only game that feel realistic enough is Half-Life Alyx, but it’s a shame that Valve didn’t put more effort in this (thus I still love them, they made HL Alyx and the Valve Index with its awesome controllers). Those VR games are nice hours of play, but they’re stil not complete universes to immerse myself into, with a complete freedom of actions or movement, like the Oasis of Player One. For several months, I tried to forget it, but this simple realization scratched this part of my mind. The part that told me you can complain in your corner… or you can stop waiting for someone to do it, and do it.

So screw it, I’ll do my own. This should keep my brain busy for the next decade at least.

Dopamining

Like I said, I’m a developer, however I’m more specialized on Cloud based technologies rather than in Video games and very low level stuff. I don’t know how game engines worked, how to make 3D assets, and how to create interaction in VR. Fun times ahead. By the time I decided to work on this, Unreal Engine 5 just came out, and the promise of MetaHumans, Nanite and the Blueprint system was clearly appealing. But soon I realized that you can’t start a game directly on UE without knowing the engine first. So I would have to create a bunch of small challenges and games, before actually creating my universe in VR. And even by doing this, I would not know exactly how everything works, which is a big part of my wanted list. UE5 code is open-source, but there’s a lot of history here to understand it fully just by reading the source.

I mean, this could do the trick. UnrealEngine is a formidable engine, used to make gorgeous movies and games, but the purpose here for me is to learn and solve things and I’m a better learner when I go through the path.

An animated image of Morpheus in the Matrix saying that there is a difference between knowing
the path and walking the path

Previously to all of this, I was following with a big interest the YouTube channels of Casey Muratori’s Handmade Hero, The Cherno or ThinMatrix. What do they have in common ? They all made (or are currently making) a game. Oh, and they also all does it without any premade game engine, they code it. If you don’t know any of those channels, I can heartily recommend them to you. The more and more I looked upon them, the more it seems to me that creating a complete video game from scratch is the absolute achievement in computer science : you go from multithreading, low level system calls, gpu programming to more recent subjects like artificial intelligence, machine learning, computer generated assets, and mixed reality.

And that should keep my brains busy learning new things and making virtual worlds every day.

So enough about the history, let’s talk about this project itself.

The Project

This project is called Avatar (more on that later). It will basically be a game engine dedicated for Mixed Reality first and be architectured in small libs that will works together only if needed. Just like a Linux distribution where you can install a dev lib only if you need it, or even disable complete parts of the distribution if it doesn’t suit your needs. Also, this engine will target programmers. There will be no fancy GUI (at least for my initial plans), and the purpose of this is to be able to code a game using only a laptop on battery. For example, my own editor of choice (the one I’m also using to write this post) is Vim, and I don’t plan on changing it just for my game project. Of course, even if I wish this project to be multiplatform, it’s just a hobby. So it should at least compile and works on my platforms (Windows & Linux systems, Meta Quest 3).

So, let’s resume, I want this game engine to :

  1. Be modular, you build only part of the engine you really use.
  2. Be simple to use. No fancy GUI, no big hardware requirements, a text editor, a compiler and go on.
  3. Be compatible with the Meta Quest 3

Of course, if I make a game engine, I should create a game with it, at least for testing the engine. But what ? What kind of game will be fun to create in VR and with a complete universe ? Then it lights a bulb in my head. If this game is a demo of my engine, why stopping on one universe ? Why not mix universes ? Like in the Oasis where you have reference of Blade Runner with Firefly or StarWars. So many possibilities ! But from where to start ?

There’s one SciFi franchise that deserve a big game, that has a huge universe and lore and that has a malediction over its head regarding video games. Four, there’s four aborted attempt of video games all with a lot of promises ! Even a fan game which was so perfect and successful that the right owners unleash the lawyers (if you’re french and seek someone to follow on Twitch, go check one of its creator’s channel). The only official game on this franchise was released recently, and clearly it’s meh. Yes, I’m talking about the Stargate franchise.

Richard Dean Anderson as Jack O’Neill in the Stargate SG1 show, in a golf suit, trying to do
a backswing through the opened Stargate

Now that I have my beginning universe (because I don’t exclude mixing content from other universes), I need something small for the first version of the game. A small game loop, with a scenario of several minutes, just to demonstrate the capabilities of the engine. There’s an episode, on Season 8 where the members of the Stargate Command are trying a device to train them in a simulation of base invasion using a “virtual reality device”. This episode is called Avatar (and now you know where the engine’s name came from). So the first version of the demo game will be a reproduction of Stargate Command Level 27 and 28, with the same scenario of invasion. It’s gonna be sooooo fun.

The Disclaimer

Ok, now we know the project, and its purpose : keep my brain busy, learn how to code a video game in VR and a game engine, and maybe create a universe to experiment with it. Now for the important part :

  1. I may (or may not, I’m still not sure) sell the game engine only, using a specific business model once finished.
  2. I will create commercial games out of the game engine, in fact I already have several ideas in mind (why am I not using one of those to create my engine ? Because I don’t want the game idea to direct the engine features).
  3. Due to the fact that the demo game will borrow a lot of trademarks and IPs from publishing companies, I will not and never sell or release the demo universe. The most I can do with it is only to show screenshots and screencaps but that’s all. I don’t want to make money out of the demo universe. It’s just to act as a portfolio to show what I’m able to do.

(Yes, this acts as a disclaimer, and no I’ll not change my mind).

Conclusion

Now you know why I decided to create my blog. It will be mostly to share what I learned in the next posts, or even my in-dev ramblings about this project and my life. I hope it will interest you enough.

If you want to comment or ask something about this, feel free to send me an email, or send me a DM on one of my social media. I may edit this post with our discussions.