So you want to build a game engine? Congratulations, that’s ambitious.
You’ve probably already heard “don’t build a game engine, build a game”. Which is good advice if you have a game in mind and want to finish it. Going down this rabbit hole makes it much more unlikely you will finish a game - at least one made with your own engine. It’s not impossible, but it is much harder. If that is your primary goal, you should pick an available game engine (Unity, Godot, Unreal) and run with it.
However, if your goal is to start or learn to build a game engine like those listed above, you’ve come to the right place.
The goal of the site is to be used in two different ways:
This site’s focus is game engine architecture and what I call the “glue” that brings it all together. We are going to make a complete game engine that resembles a Unity or an Unreal Engine. That includes an editor, scripting, a real-time server for multiplayer, an asset pipeline, and more. Often these are the most valuable assets an out-of-the-box engine brings to the table, but there are precious few resources on them compared to articles on rendering.
That said, we’re not going to build it all ourselves - we’ll use a number of 3rd party libraries for physics, scripting, audio, and more. Some stuff we will build ourselves, since I believe it is important to understand in-depth; in particular, the networking and rendering systems will be custom. And our final product probably won’t look like Unity or Unreal, which have hundreds of employees working full-time to deliver great products. We’re going to focus on education over performance.
Here are the pieces we’re going to build:
As I mentioned above, our final game engine will be complete (ie. we could build a game using it), but it won’t be as performant or feature rich as commercial 3D engines. It serves as a foundation for you to learn and build on. Similarly, I wouldn’t call myself an expert in building game engines; there are likely many areas for improvement.
If you have feedback, or there is something you would like to see, please reach out.
The engine created here uses many 3rd party libraries. Here is a full list:
Next, head back to the Table of Contents and click Getting Started to start at the top or find a section that interests you and dive in from there.