Episode Guide

The detailed episode guides linked to on this page would not have been possible without the generous contributions of time and energy from Jace Bennett (@jacebennett), Abner Coimbre (@AbnerCoimbre), Matthew VanDevander (@mvandevander, supportable on Patreon), Gustavo Chávez (@gusChvz), Kasper Sauramo (@KMSchme), Ben Craddock (@theinternetftw), Dustin Specht (@Dustin_Specht), Jacob Pike (@pikejd), Matt Mascarenhas (@miblo_), Miguel Lechón (@debiatan), Cory Henderlite (@effect0r), Insofaras (@insofaras_), Clay Murray (@powerc9000) and Tim Liou (@wdliou).

Matt (Miblo) is currently the sole maintainer, doing so live on Twitch and may be supported on Patreon.

Please take a moment to thank our contributors if you happen to see them on The Twitters! :)

How to Use This Guide

Handmade Hero is broken up into four parts: a basic programming introduction, the construction of a platform prototyping layer, the coding of a game engine, and the coding of the game itself. These parts can be fluid, and blur into one another, but if you would like to skip directly to one of the parts without watching the preceding ones, you may be able to do so, depending on your level of experience.

  • The basic (very limited) introduction to C programming is Week 0.

  • The construction of a Win32 prototyping layer is Weeks 1 through 5.

  • Game engine coding begins on Week 6.

  • Game coding itself has not yet begun.

Text Editor Tutorial

By popular demand, Casey goes through his emacs setup and shows how he makes use of the text editor

Week 0: Intro to C

Before starting Handmade Hero, I did a five-day series on C programming to test the Twitch streaming set up. It is too brief to be a complete introduction to C, but may be better than nothing if you are trying to start from scratch. At some point, when there is time, I may try to do a more complete intro series for people who want to follow Handmade Hero but have little or no programming experience

Week 1: Simple Framebuffer on Windows

The first week of Handmade Hero was spent setting up a Windows build, creating a window, and making it so that we could directly write animating graphics into a framebuffer and have Windows display it in our window

Week 2: Sound and Input on Windows

The second week of Handmade was spent getting sound, input, and timing working

Week 3: Defining the Platform Layer Boundary

The third week of Handmade Hero had us abstracting our Win32 code so we could divide the project into platform-specific and platform-independent parts

Week 4: Win32 Prototyping Layer Cleanup

The fourth week of Handmade Hero was spent cleaning up our Win32 code, and getting to a lot of the "TODO" markers we put in the source code

Week 5: Fun with Win32

The fifth week of Handmade Hero is all about taking some time to do crazy, fun, and useful stuff with our Win32 layer

Week 6: Game Engine Architecture

The sixth week of Handmade Hero spends time laying the foundation of the game upon the platform work done over the previous weeks

Week 7: Coordinates and Tilemaps

The seventh week of Handmade Hero is about figuring out how we want to store the game world, as well as how to represent positions within that world

Week 8: Bitmaps

The eighth week of Handmade Hero focuses on loading and displaying our first asset files

Week 9: Vector Math and Player Movement

The ninth week of Handmade Hero introduces vectors and begins the process of using them to improve character motion

Week 10: Player Collision

The tenth week of Handmade Hero concentrates on iteratively improving the nascent collision detection code

Week 11: Basic Entity Handling

The eleventh week of Handmade Hero is mainly about handling entities

Week 12: Entities in Space

The twelfth week continues with entities. And space. Entities in space

Week 13: Simulation Regions

The thirteenth week concentrates on simulation

Week 14: Collision Rules

The fourteenth week continues with simulation regions. And Figure out how to handle collision rules

Week 15

Week fifteen

Week 16

Week sixteen

Week 17

Week seventeen

Week 18

Week eighteen

Week 19

Week nineteen

Week 20

Week twenty

Week 21

Week twenty-one

Week 22

Week twenty-two

Week 23

Week twenty-three

Week 24

Week twenty-four

Week 25

Week twenty-five

Week 26

Week twenty-six

Week 27

Week twenty-seven

Week 28

Week twenty-eight

Week 29

Week twenty-nine

Week 30

Week thirty

Week 31

Week thirty-one

Week 32

Week thirty-two

Week 33

Week thirty-three

Week 34

Week thirty-four

Week 35

Week thirty-five

Week 36

Week thirty-six

Week 37

Week thirty-seven

Week 38

Week thirty-eight

Week 39

Week thirty-nine

Week 40

Week forty

Week 41

Week forty-one

Week 42

Week forty-two

Week 43

Week forty-three

Week 44

Week forty-four

Week 45

Week forty-five

Week 46

Week forty-six

Week 47

Week forty-seven

Week 48

Week forty-eight

Week 49

Week forty-nine

RSI Leave

Q&A Sessions while Casey is on RSI leave resting his typing fingers

Week 50

Week fifty

Week 51: Debug System

The fifty-first week sees us reacquainting ourselves with and enhancing the debug system

Week 52: Debug System

The fifty-second week continues to enhance the debug system

Week 53

Week fifty-three