Hey. I’m going to talk about vanilla, and what it means for me.
Vanilla is what most players will experience, the baseline if you will. All the foundational decisions in the core of the game engine, all the underlying features AND limitations that are the results of compromises and a bigger picture: they are the result of one mans visions creating something from scratch from an idea, thousands if not hundreds of thousands of hours, and a belief that at the end, something new will arise that is fun, and different from what was before.
In Automatia, I have a custom game engine that I’m making from scratch, a project started in 2011, which now has reached a point where it’s playable and public releases have started appearing. This is despite not having a fully fledged game loop, not having a story yet, but yet there are lots of functional systems with lots of potential interplay that honestly make me feel like I have too many options, sometimes: Multiple worlds, weather systems, story and dialogue with managed NPCs who have “places to be” at specific times and dates, full-screen effects etc. On top of this, there’s full multiplayer with an authoritative server and editable worlds.
Press enter or click to view image in full size
I sometimes get told that it looks just like Minecraft, and of course the visuals of 1x1x1 voxels make that comparison fair. But I think that when people choose to play a game, it’s on the merits of what a game has to offer, which is again held up by the foundational choices underneath. I think you’ll find that even though modded MC does a good job (and some modpacks are actually quite revolutionary in some aspects), there is still a vanilla MC game engine underneath it, with all its choices and limitations. I also think it’s a different feeling to work on something knowing that you can go all the way back to the fundamental decisions, and change them to fit something new that you want to achieve. A simple proof of this was me playing Vintage Story recently. It has a very unique feel about it, and even though I had some performance issues, I have massive respect for what looks to also be a custom made engine.
Automatia is gearing up to become a buying-and-selling game, with multiple worlds, story and platforming. I don’t know what else to call it, or what genre to really put it in. I suppose RPG is not entirely wrong. The goal is really simple: Obtain big number, and use it to fund your vanity projects. The game is separated into worlds that are randomly generated and modifiable (eg. you can live in it), and worlds that are part of the story which will have NPCs, puzzles and platforming etc. One idea that I’ve had is that if you complete a main quest in a story world, you also get access to your own instance of that world which you can then build and live in.
Press enter or click to view image in full size
As an example of custom engine tomfoolery, I’ve experimented with pipes forwarding light. I could light up this small room using a lantern that I placed deep underground, and the pipe is passing the light all the way into the room.
The game is fully multiplayer, and it is possible for multiple players to co-exist, play cooperatively or by themselves, and of course meet in the story worlds or visit each others. This makes everything more complicated, but I think building stuff together is just way more fun.
Perhaps ironic given the topic, but the game engine does actually have full modding support. On top of a custom made game engine with full multiplayer support is also a modding layer. God help me what am I doing. The modding API is C++20 running inside an emulator, and it has access to most of the engines APIs through host functions. It would be too much work to script an entire new entity or block in C++, so most of it is defined in JSON through common attributes like what sound it has, or what tile it has on which faces. The C++ can then be used to add unique game mechanics to the block, such as the voxelframe block that allows you to create a painting with colored voxels and hang it on a wall, or something simpler like a block that produces a smoke effect which you can put in a chimney.
I’m not trying to make a mega-hit game or anything like that. One of my favorite games of all time is Arcanum: Of Steamworks and Magick Obscura. A flawed game with a lot of heart, a deep story and many mysteries. Before that, it was TLoZ: A Link To The Past. And after that I really enjoyed the Gothic games, including Risen 1. I like big worlds, with secrets, I guess. So prepare yourself for that. Or something.
The above video is fresh enough that nothing is expected to work well. But it’s getting to a point where I can start seeing the possibilities.
There is the unavoidable topic of generic game engines. Why or why not. There’s many reasons, but for example, the game is currently naturally growing with the game engine. I’ll never be forced to upgrade to a new version that breaks something. I don’t have to accept any licensing agreements. Debugging and call graph generation is a one-liner since I always build and run from source anyway. And while generic game engines greatly simplify some things, like animation and rigging, which I really do wish that I had, there’s many other things I can do very well without. I’m not concerned about mobile play, and all 3 major desktop platforms have working builds now.
Making your own custom game engine for a single game is not for everyone. Hundreds of thousands of hours with no guarantee of results or the elusive fun factor. But, it gives you the ultimate say in everything about your game, from foundations all the way to the metaphorical bikeshed.
Thanks for reading!
EDIT: Looking for a pixel artist who is also familiar with normal/spec/parallax mapping, as well as GLSL shaders (for tweaking only). I don’t know if I’m asking for too much. Let me know.
-gonzo