How to make your own game engine

Nov 12, 2021

At first I was going to just copy/paste his article and call it my own then I realized that is kind of a dick move.

How to make your own game engine (and why) by Tyler Glaiel

Well worth a read.

In my 35+ year career in games I've never used an off the shelf game engine. Starting with SCUMM I've always build my own. I love the power and the freedom. It's hard work and probably cost me more but I love making game engines and writing compilers. It's a skill you slowly acquire and after the 5th one it's not a daunting task anymore.

I ran into a programmer at an indie meet-up and she told me this story about how another programmer at her company brought up building their own game engine. Someone responded with "What! Are you Ron Gilbert!"

I wear that as a badge of honor. 😀

Conny Torneus Nov 12, 2021
Interesting, will give it a read. Yes, I love the idea of making the ultimate engine. Even if that means surpassing something like Unity.

Mighty Pirate Nov 12, 2021
Absolutely. I have a strong disgust to all kinds of frameworks. Learning the framework is always a considerable effort, but they are not aligned with the way your brain functions, and doing anything that their devs didn't anticipate is always a PITA.

Fred Berry Nov 13, 2021

Maico De Blasio Nov 13, 2021
After reading Tyler's post, I no longer feel like a loser for not using Unity! By accident rather than design, I have arrived at a DirectX 12 3D engine of sorts that contains most of the ideal features Tyler outlines, and built using only Visual C++ (and HLSL for the shaders, but that's a C-style syntax language too).
My engine is really just an agglomeration of all the DirectX tutorials written by MS engineer Chuck Walbourn, but I've added extra effects to support shadows, reflections, and depth of field, and there's also support for skeletal animation, collision detection, particles, and 3D object picking.
These capabilities were achieved after months of research, failure, screaming, swearing and hair pulling... but as each objective was finally implemented, nothing could beat that feeling of accomplishment.
The reason I'd gone the C++ only route was because many years ago, I began learning Borland Turbo C on a Compaq 386, and the thrill of compiling and linking my own code into a DOS EXE file has never left me.
I'm comfortably at the stage where I can start work on a game, but the crazy thing of it is, I've never played a 3D game! (Except Wolfenstein 3D, but I think we consider games using the old raycasting engines as more pseudo-3D these days.)
I'm strongly opposed to FPS kill games and have neither the time nor desire to play other open-world genres like RPG, flight or driving sims. My first love was always the text parser and point-click adventure game, and I have this crazy dream to make just such a game in 3D.
I'd be interested in Ron's opinion as to whether the modern 3D environment could ever work for a game like Thimbleweed Park or any classic LucasArts/Sierra game... or is low-res 2D the best native format for the non-RPG adventure, based on there never having been a compelling example that has managed to successfully cross the 2D-3D divide?

Ron Gilbert Nov 13, 2021
I would love to build a true adventure game all in 3D.  I think it could work really well.  I just need someone to give me $10m+ to do it.

dc.b Nov 13, 2021
It depends on what you're trying to achieve, your skillset and your budget. If you can do it on your own in a reasonable amount of time, go for it. If not, you need to decide if you want to write a game or an engine. Your specific case might be your friend. If you suck, your engine can be outdated before you even finish it. Most people will use a set of libs then, where you also need to rely on others (except you fix bugs on your own).

I liked that the TWP engine wasn't this demanding. Special subset of functionality vs. broader optimisations.

I would love to see more 3D adventures, also in VR. There exist nice ones, both in VR and normal 3D, as well as high-res 2D ones. In my opinion you need to utalise whatever you go for properly. VR is insanely immersive. 3D gives you tons of options. High-Res 2D can look so fresh. Low-Res has the oldskool vibe but a nice puzzle, a funny dialogue works in all of them.

Brian Goldberg Nov 13, 2021
This reminds of all the interviews with Tommy Refenes on creating the engine for Super Meat Boy. That dev team was also very of the opinion that the individual engine is important to the nature of the game

Dan Lee Nov 13, 2021
Hey Ron,

Any chance you could do an AMA of your experiences of the current state of adventure gaming and what cool new emerging stuff you see happening that could be influenced by new technology (cloud, mobile, auto generated worlds, etc...)? This blog has been amazing as being a tech nerd myself, it's fascinating to read how you and your teams overcame limitations that existed with tech back in the 80s / 90s.

Cheers, Dan.

Conny Torneus Nov 14, 2021
That was a very insightful article Ron, thanks for sharing.

Of course a true adventure game can be made in 3D. It's just a matter of striking that perfect balance between 2D/3D. Speaking of which, Mark Ferrari gave 3D a go many years ago and didn't like it very much. If I recall, he said he felt that he lost his artistic freedom as the 3D process back then was less about art and more about crunching numbers to get the 3D to render.

If you somehow do get the funding for it, getting Mark onboard won't be easy. And let's be fair, adventure games without Mark Ferrari is like Laurel without Hardy. You might think it'll work, but trust me it won't.

And what about a true adventure game in VR Ron?

Søren Ladegaard Nov 14, 2021
Maybe "Beyond a steel sky" is an example of a modern day adventure in 3D?

Michaël El Baki Nov 14, 2021
Hey Ron, now is the time to raise $10m :) Each and every day, teams with a few mobile games success raise this kind of money in seed or Series A! With your pedigree, I guess you could do that very quickly. And if you add NFT or Metaverse in your speech, you can probably multiply that by 10...

Maico De Blasio Nov 14, 2021
After watching the "Beyond a Steel Sky" trailer on Steam, I'd say it's a very good example of a true 3D adventure game! Sort of like Cyberpunk 2077 without the violence and carjacking.
That's what will separate a 'classic' adventure game in 3D from 'action' adventure
games like Fortnite and GTA V... our hero will be able to explore to his/her heart's content without feeling the urge to stock up on weapons and embark on a murderous criminal rampage!
Ken Williams' new game is being designed primarily for VR, and even the Two Guys from Andromeda have a 3D game in development that is naturally very Space Quest-inspired... unfortunately it's been delayed by a few years and its completion is uncertain as it has overshot its Kickstarter budget.
I recall Mark Ferrari's comments about 3D as well and what he said was true... it's much more about 'triangles' than pixels. I'm sure Mark's skills as a pixel artist would be useful when working as a texture artist for 3D assets, but it's true that he'll get no control over lighting for example, as that is calculated in the pixel shader and combined with the texture for the final result.

dc.b Nov 14, 2021
Quite some 3D adventures made the mistake to loose focus and turned into cumbersome walking sims where movement and camera is in your way. Don't do 3D then. They also lack a nice and timeless look. I don't know what's hard about proper materials and lighting though. Some also try to be movies instead of games. If you want to make a movie then go for it but don't make a game. The early TTG did a number of aspects right.

So, the creator of pirate games lacks some money. Somehow this sounds funny to me. :)

DieSkaarj Nov 15, 2021
Tooling: one of the coolest things about writing your own game engine, I've found, is tooling. I'm writing a tilemap editor specifically for a Mega Drive/Genesis game. It's got a dumb name. I like that, it makes working with it fun.

On 3D: I really liked the way the Nintendo 3DS handles 3D. I'd like to have seen an adventure game utilise that tech. Graphic Adventure Game scenes would make amazing pop-up books, and the 3DS approximates that in a neat package.

Atrus Nov 16, 2021
Definitely no from me regarding building a new engine, unless I have a big budget. It still puzzles me why the Thimbleweed team decided to go with building a dedicated engine, it's the kind of game (2D with typical pnc UI) you can easily make with a professional adventure-making tool like Visionaire Studio for example (or even AGS). That would have lowered the budget significantly and increased the profit margin (possibly the final price of the product to the end user would be lower also).

Thomas Nov 16, 2021
I am finally starting to feel confident writing my own C++ engine code and I am having so much more fun building a 2d platformer from 'scratch' (with SDL) than I ever did trying to decide which parts of Unity to use and which to ignore. Especially as the editor bloated.

Learning how I wanted to deal with the game loop, sprite rendering, ui, asset management, level editing, memory allocation and all that good stuff really tought me a lot about figuring stuff out, I think. I never thought I would have opinions on how to build those things...

dc.b Nov 17, 2021
I think €20 is wonderful fair price for TWP. Think of all the fun you can have with the game, VR games are more expensive if you take into account how short some of them are, also due to the smaller market. I'm glad that Ron wrote his own engine. It added something special to the game and it was a noticeable less demanding than the typical energy wasting Unity Indie Games. Good job.

Maico De Blasio Nov 18, 2021
Happy Life Day everyone!

HangmansMoose Nov 18, 2021
Hi Ron, I am actually curious as to what software you use for your dev environment, ie editor, compiler, debugger etc..

Ron Gilbert Nov 19, 2021
Xcode for c++.  Sublime Edit when I'm writing Dinky script code.

Conny Torneus Nov 22, 2021
Dinky? Is that a fork of Squirrel?

Ron Gilbert Nov 22, 2021
Dinky isn't a fork.  I wrote it from the ground up.  It does share some of my favorite features of Squirrel.

Tape Nov 25, 2021
3d adventures too often get lost in a setting too big to get filled. Even a pixelated 2d picture contains hardly any hot spots these days, because every interaction needs voice recording, animation and costs too much money for anything not immediately relevant for the plot. At the same time the ration of assets and duration of the game does not get improved.
Having played Zak McKracken and Lamplight City recently I wonder whether a more open world containing missions which share assets would not be a more interesting experiment than just trying the same in 3d. A detective could get several different cases, markers where to go, but also enter all other locations. Cases could spawn items for later cases or give hints about the game world which would make solving later cases easier - so they would not be entirely random choices but based on a network of dependencies. However, when being on the third playthrough, one would be aquainted with the locations and the basic grammar/gamification of the world enough to intuitively navigate in the game. It also would open up the opportunity for DLC.

Evan Nov 28, 2021
I'm a Unity guy because it has always done what I've needed it to do.  That being said it has certainly been a headache at times dealing with bugs or missing features I have no control over.  I always find a work around though.

When I get the itch to make a new game I just want to jump right into making the thing and not worry about all the things brought up in this article.

Besides...I'm an artist and designer who happens to be able to code enough C# (ie Google till find a solution) for some gameplay. Definitely not a software engineer!

Conny Torneus Dec 03, 2021
I should have known better than to think Ron Gilbert would do a fork out of Squirrel 🙂 Correct me if I'm wrong, but was Dinky used in the creation of Thimbleweed Park?

Ron Gilbert Dec 03, 2021
TWP used Squirrel. Delores used Dinky.  Dinky code is 90% compatible with Squirrel.  You can see it here: