Learn How to Make a Video Game Engine From Scratch in C

Travis Vroman
3 min readJan 15, 2021

--

So, you want to learn what goes into making a complete game (namely, its underlying technology) from scratch? No engines, no pre-built libraries — just a blank slate and a compiler? And for those who don’t know it already, how about learning C along the way? Well, I invite you to join me where I’ll be doing just that on video. That’s right — the entire process, documented on video, from the very beginning, on YouTube.

First, some background. Over the years, I have made and shipped a few dozen games and a few game engines using various technology stacks on different platforms. Most of these games were never of my own design and I typically had little control over their final direction. As a developer in a small game company, this was to be expected. However, making other people’s games is something I no longer wanted to do, so I’ve left that studio and now pursue making my own games on my own time outside of my daily, full-time job.

With this all said, I present my project, The Kohi Game Engine. It has both a website and, of course, my YouTube channel with a dedicated playlist.

This project has a few purposes. First, I love making the underlying tech for games. On top of that, I want to make a game that I want to play, that I enjoy, from the ground up, including an engine. I also want to make something that I feel others will enjoy, and not just a simple, casual, single-mechanic game (not that there’s anything wrong with those).

Second, I want to document the entire process so that hopefully along the way it inspires others to want to do the same. I’ve said many times that there are not enough developers who care about the low-level details, about making programs fast like they used to be, and about making software the old-school way, from scratch, without just gluing a bunch of libraries together.

Most of the coding for this project from start to finish will be on video. I wont’ beat around the bush — it’s going to be a long series — likely 2 years or more long (although it will remain focused, and not diverge from only building what is absolutely needed for the game). I’ll also mention that it is not meant to be a tutorial, but a demonstration of the process of making games and engines from my perspective. Therefore, along with the obvious coding, other items such as design decisions, concepts, and debugging will mostly take place on-screen, as all of those are crucial aspects of the development process.

With this, I’ve decided to program this project in C, not C++. This is because C++ has become a large and bloated mess in recent times. C can take things back to simple, and great software can be simple. Another important decision I have made with this project is to adopt a more procedural, functional-ish, data-oriented style of programming. It completely dispenses with the Object-Oriented Paradigm, which just adds unneeded bloat and layers of abstraction to the real problem at hand — handling and transforming data. The renderer is being built using Vulkan.

I firmly believe having a full understanding of the way things work “under the hood” makes for a stronger developer. If making games and, equally as important, making the technology behind those games interests you, I highly recommend joining me as I create Kohi and a few games using it.

Oh, and for those of you who don’t know C, that’s okay. I will soon have that covered as well. Make sure to check out https://kohiengine.com for all things related to the project. See you there!

--

--

Travis Vroman
Travis Vroman

Written by Travis Vroman

Game and Enginedeveloper, Kohi Game Engine. Converts caffeine to code. Opinions my own. YouTube: http://youtube.com/travisvroman http://kohiengine.com

No responses yet