Let's Make an Engine: Graphics API History

, in Lets Make an Engine

We briefly discussed our choice of DirectX 12 in our previous entry. In order to more fully understand how we’re going to proceed to add graphics support to our engine we need to understand a bit of the history and …

Let's Make an Engine: ImGui

, in Lets Make an Engine

In the previous entry we converted our app to a GUI window and left our next step open. It’s time to take a big step forward, a forcing function that will set up our next couple of moves. We’re going to …

Let's Make an Engine: Window

, in Lets Make an Engine

In the previous entry we built a skeleton project with a terminal application. Nothing against text mode games but we want a fully graphical engine. To this end we first need to create a window. To make our window we …

Let's Make an Engine: Project

, in Lets Make an Engine

Series Introduction Welcome to the first entry in a series where we will be creating a modern game engine from scratch using C++. It is the game industry standard and the language I am most comfortable with having used …

Entity Component System: Intro

, in Entity Component System

This is the start of a series of articles on Entity Component System (ECS) architecture. The posts will be a mix of theory and practical. The goal is to build a functional and efficient library by the end. What is an ECS …

Coroutines: A Million Stacks

Can you have 1 million entities and let them all think with stackful coroutines and achieve acceptable frame rates? An unreasonable question, but is it possible? Obviously not and it’s easy to see why with a …

Win32 app without WinMain

WinMain vs main Win32 apps use WinMain as an entry point. Most other platforms use main. For a long time I’ve used one of two patterns for the entry point in cross platform projects. A separate entry point cpp file per …