Start here
A first path through game programming
New to making games, or to how engines work underneath? These twelve lessons, in this order, cover the ideas the rest of the site builds on. Each one has something running you can change. After the path, every section goes deeper on its own, and each has labs where you can take its ideas further.
- 1Game loops, fixed timesteps and running faster than real timeEngineEvery game is a loop. How it keeps time decides whether your physics, input and frame rate get along.
- 2Memory, cache lines and data layoutEngineWhy the way you lay out data matters more than the instructions you run on it. Everything after this leans on it.
- 3Handles and allocatorsEngineThings in games are created and destroyed constantly. How to refer to them safely, and where their memory comes from.
- 4Entities, ids and namesflecsEntities and components, the way most modern engines organise game objects, on a real ECS you can step through.
- 5Archetypes, and entities moving between themflecsHow an ECS stores components so systems can run over them fast, and what adding or removing a component costs.
- 6Spatial partitioningEngineFinding what is near something without checking everything: the query behind collisions, AI senses and culling.
- 7Behaviour treesGame AIThe most common way game agents decide what to do, with every node lit up as it ticks.
- 8SteeringGame AIHow an agent actually moves along a path without walking into walls.
- 9What a physics step doesPhysicsWhat a physics engine does each tick, and why it wants a fixed timestep.
- 10The pipeline and the draw callRenderingWhat happens between a draw call and pixels on screen, on a rasteriser you can pause.
- 11Latency, jitter and lossNetworkingWhy multiplayer is hard: latency, jitter and loss, on a game you can make worse.
- 12Profiling: finding where the time goesEngineHow to find out where the time actually goes, so you fix the slow part instead of guessing.
You'll need to be comfortable reading code; the examples are in C++. You don't need to know any engine, graphics API or maths beyond vectors.