Home / Series / Handmade Hero / Absolute Order /
  • TheTVDB.com Season ID 1768708
  • Created August 19, 2019
  • Modified September 4, 2023
When available, episode names will be translated into your preferred language. Otherwise they will be shown using the series' origin language.
Name First Aired Runtime Image
S01E01 Day 001 - Setting Up the Windows Build
November 18, 2014
YouTube
113
S01E02 Day 002 - Opening a Win32 Window
November 19, 2014
YouTube
60
S01E03 Day 003 - Allocating a Backbuffer
November 20, 2014
YouTube
93
S01E04 Day 004 - Animating the Backbuffer
November 20, 2014
YouTube
94
S01E05 Day 005 - Windows Graphics Review
November 22, 2014
YouTube
127
S01E06 Day 006 - Gamepad and Keyboard Input
November 25, 2014
YouTube
81
S01E07 Day 007 - Initializing DirectSound
November 25, 2014
YouTube
92
S01E08 Day 008 - Writing a Square Wave to DirectSound
November 26, 2014
YouTube
93
S01E09 Day 009 - Variable-Pitch Sine Wave Output
November 27, 2014
YouTube
123
S01E10 Day 010 - QueryPerformanceCounter and RDTSC
November 28, 2014
YouTube
118
S01E11 Day 011 - The Basics of Platform API Design
December 2, 2014
YouTube
102
S01E12 Day 012 - Platform-independent Sound Output
December 2, 2014
YouTube
97
S01E13 Day 013 - Platform-independent User Input
December 3, 2014
YouTube
93
S01E14 Day 014 - Platform-independent Game Memory
December 5, 2014
YouTube
95
S01E15 Day 015 - Platform-independent Debug File I/O
December 5, 2014
YouTube
93
S01E16 Day 016 - VisualStudio Compiler Switches
December 8, 2014
YouTube
91
S01E17 Day 017 - Unified Keyboard and Gamepad Input
December 9, 2014
YouTube
101
S01E18 Day 018 - Enforcing a Video Frame Rate
December 11, 2014
YouTube
87
S01E19 Day 019 - Improving Audio Synchronization
December 11, 2014
YouTube
104
S01E20 Day 020 - Debugging the Audio Sync
December 12, 2014
YouTube
166
S01E21 Day 021 - Loading Game Code Dynamically
December 15, 2014
YouTube
103
S01E22 Day 022 - Instantaneous Live Code Editing
December 17, 2014
YouTube
113
S01E23 Day 023 - Looped Live Code Editing
December 18, 2014
YouTube
106
S01E24 Day 024 - Win32 Platform Layer Cleanup
December 19, 2014
YouTube
98
S01E25 Day 025 - Finishing the Win32 Prototyping Layer
December 19, 2014
YouTube
150
S01E26 Day 026 - Introduction to Game Architecture
December 22, 2014
YouTube
90
S01E27 Day 027 - Exploration-based Architecture
December 23, 2014
YouTube
102
S01E28 Day 028 - Drawing a Tile Map
December 24, 2014
YouTube
96
S01E29 Day 029 - Basic Tile Map Collision Checking
December 25, 2014
YouTube
99
S01E30 Day 030 - Moving Between Tile Maps
December 26, 2014
YouTube
115
S01E31 Day 031 - Tilemap Coordinate Systems
December 29, 2014
YouTube
93
S01E32 Day 032 - Unified Position Representation
December 30, 2014
YouTube
96
S01E33 Day 033 - Virtualized Tile Maps
December 31, 2014
YouTube
91
S01E34 Day 034 - Tile Map Memory
January 1, 2015
YouTube
108
S01E35 Day 035 - Basic Sparse Tilemap Storage
January 2, 2015
YouTube
107
S01E36 Day 036 - Loading BMPs
January 5, 2015
YouTube
91
S01E37 Day 037 - Basic Bitmap Rendering
January 6, 2015
YouTube
93
S01E38 Day 038 - Basic Linear Bitmap Blending
January 7, 2015
YouTube
103
S01E39 Handmade Hero - Announcement Trailer
November 12, 2014
90
S01E40 Intro to C on Windows - Day 1
November 12, 2014
90
S01E41 Intro to C on Windows - Day 2
November 14, 2014
90
S01E42 Intro to C on Windows - Day 3
November 14, 2014
90
S01E43 Intro to C on Windows - Day 4
November 15, 2014
90
S01E44 Intro to C on Windows - Day 5
November 16, 2014
90
S01E45 Basic Emacs Tutorial
season finale
December 16, 2014
37
S01E46 Day 039 - Basic Bitmap Rendering Cleanup
January 8, 2015
YouTube
90
S01E47 Day 040 - Cursor Hiding and Fullscreen Support
January 9, 2015
YouTube
72
S01E48 Day 041 - Overview of the Types of Math Used in Games
January 12, 2015
YouTube
94
S01E49 Day 042 - Basic 2D Vectors
January 12, 2015
YouTube
101
S01E50 Day 043 - The Equations of Motion
January 14, 2015
YouTube
99
S01E51 Day 044 - Reflecting Vectors
January 15, 2015
YouTube
90
S01E52 Day 045 - Geometric vs. Temporal Movement Search
January 16, 2015
YouTube
90
S01E53 Day 046 - Basic Multiplayer Support
January 20, 2015
YouTube
108
S01E54 Day 047 - Vector Lengths
January 20, 2015
YouTube
83
S01E55 Day 048 - Line Segment Intersection Collisions
January 21, 2015
YouTube
60
S01E56 Day 049 - Debugging Canonical Coordinates
January 22, 2015
YouTube
90
S01E57 Day 050 - Basic Minkowski-based Collision Detection
January 23, 2015
YouTube
104
S01E58 Day 051 - Separating Entities By Update Frequency
January 27, 2015
YouTube
87
S01E59 Day 052 - Entity Movement in Camera Space
January 27, 2015
YouTube
102
S01E60 Day 053 - Environment Elements as Entities
January 28, 2015
YouTube
81
S01E61 Day 054 - Removing the Dormant Entity Concept
January 29, 2015
YouTube
78
S01E62 Day 055 - Hash-based World Storage
January 30, 2015
YouTube
118
S01E63 Day 056 - Switching from Tiles to Entities
February 2, 2015
YouTube
77
S01E64 Day 057 - Spatially Partitioning Entities
February 3, 2015
YouTube
85
S01E65 Day 058 - Using the Spatial Partition
February 4, 2015
YouTube
88
S01E66 Day 059 - Adding a Basic Familiar Entity
February 6, 2015
YouTube
99
S01E67 Day 060 - Adding Hitpoints
February 6, 2015
YouTube
94
S01E68 Day 061 - Adding a Simple Attack
February 10, 2015
YouTube
101
S01E69 Day 062 - Basic Moving Projectiles
February 11, 2015
YouTube
79
S01E70 Day 063 - Simulation Regions
February 12, 2015
YouTube
89
S01E71 Day 064 - Mapping Entity Indexes to Pointers
February 13, 2015
YouTube
84
S01E72 Day 065 - Finishing the Simulation Region Change
February 13, 2015
YouTube
86
S01E73 Day 066 - Adding Support for Non-spatial Entities
February 16, 2015
YouTube
73
S01E74 Day 067 - Making Updates Conditional
February 18, 2015
YouTube
90
S01E75 Day 068 - Exact Enforcement of Maximum Movement Distances
February 19, 2015
YouTube
88
S01E76 Day 069 - Pairwise Collision Rules
February 19, 2015
YouTube
84
S01E77 Day 070 - Exploration To-do List
February 20, 2015
YouTube
95
S01E78 Day 071 - Converting to Full 3D Positioning
February 24, 2015
YouTube
93
S01E79 Day 072 - Proper 3D Inclusion Tests
February 25, 2015
YouTube
90
S01E80 Day 073 - Temporarily Overlapping Entities
February 26, 2015
YouTube
78
S01E81 Day 074 - Moving Entities Up and Down Stairwells
February 27, 2015
YouTube
93
S01E82 Day 075 - Conditional Movement Based on Step Heights
February 27, 2015
YouTube
86
S01E83 Day 076 - Entity Heights and Collision Detection
March 10, 2015
YouTube
87
S01E84 Day 077 - Entity Ground Points
March 11, 2015
YouTube
81
S01E85 Day 078 - Multiple Collision Volumes Per Entity
March 12, 2015
YouTube
78
S01E86 Day 079 - Defining the Ground
March 13, 2015
YouTube
98
S01E87 Day 080 - Handling Traversables in the Collision Loop
March 14, 2015
YouTube
76
S01E88 Day 081 - Creating Ground with Overlapping Bitmaps
March 19, 2015
YouTube
98
S01E89 Day 082 - Caching Composited Bitmaps
March 20, 2015
YouTube
92
S01E90 Day 083 - Premultiplied Alpha
March 20, 2015
YouTube
110
S01E91 Day 084 - Scrolling Ground Buffer
March 24, 2015
YouTube
78
S01E92 Day 085 - Transient Ground Buffers
March 25, 2015
YouTube
76
S01E93 Day 086 - Aligning Ground Buffers to World Chunks
March 26, 2015
YouTube
85
S01E94 Day 087 - Seamless Ground Textures
March 27, 2015
YouTube
71
S01E95 Day 088 - Push Buffer Rendering
March 28, 2015
YouTube
75
S01E96 Day 089 - Renderer Push Buffer Entry Types
March 31, 2015
YouTube
76
S01E97 Day 090 - Bases Part I
April 1, 2015
YouTube
83
S01E98 Day 091 - Bases Part II
April 2, 2015
YouTube
69
S01E99 Day 092 - Filling Rotated and Scaled Rectangles
April 3, 2015
YouTube
75
S01E100 Day 093 - Textured Quadrilaterals
April 4, 2015
YouTube
86
S01E101 Day 094 - Converting sRGB to Light-linear Space
April 7, 2015
YouTube
82
S01E102 Day 095 - Gamma-correct Premultiplied Alpha
April 8, 2015
YouTube
78
S01E103 Day 096 - Introduction to Lighting
April 9, 2015
YouTube
117
S01E104 Day 097 - Adding Normal Maps to the Pipeline
April 10, 2015
YouTube
76
S01E105 Day 098 - Normal Map Code Cleanup
April 11, 2015
YouTube
77
S01E106 Day 099 - Test Environment Maps
April 14, 2015
YouTube
81
S01E107 Day 100 - Reflection Vectors
April 15, 2015
YouTube
74
S01E108 Day 101 - The Inverse and the Transpose
April 16, 2015
YouTube
89
S01E109 Day 102 - Transforming Normals Properly
April 17, 2015
YouTube
91
S01E110 Day 103 - Card-like Normal Map Reflections
April 18, 2015
YouTube
78
S01E111 Day 104 - Switching to Y-is-up Render Targets
April 21, 2015
YouTube
73
S01E112 Day 105 - Cleaning Up the Renderer API
April 22, 2015
YouTube
79
S01E113 Day 106 - World Scaling
April 23, 2015
YouTube
71
S01E114 Day 107 - Fading Z Layers
April 24, 2015
YouTube
81
S01E115 Day 108 - Perspective Projection
April 25, 2015
YouTube
94
S01E116 Day 109 - Resolution-Independent Rendering
April 28, 2015
YouTube
85
S01E117 Day 110 - Unprojecting Screen Boundaries
April 30, 2015
YouTube
83
S01E118 Day 111 - Resolution-Independent Ground Chunks
May 1, 2015
YouTube
65
S01E119 Day 112 - A Mental Model of CPU Performance
May 5, 2015
YouTube
86
S01E120 Day 113 - Simple Performance Counters
May 6, 2015
YouTube
72
S01E121 Day 114 - Preparing a Function for Optimization
May 7, 2015
YouTube
83
S01E122 Day 115 - SIMD Basics
May 7, 2015
YouTube
97
S01E123 Day 116 - Converting Math Operations to SIMD
May 8, 2015
YouTube
109
S01E124 Day 117 - Packing Pixels for the Framebuffer
May 12, 2015
YouTube
95
S01E125 Day 118 - Wide Unpacking and Masking
May 13, 2015
YouTube
92
S01E126 Day 119 - Counting Intrinsics
May 14, 2015
YouTube
102
S01E127 Day 120 - Measuring Port Usage with IACA
May 15, 2015
YouTube
100
S01E128 Day 121 - Rendering in Tiles (Marathon)
May 17, 2015
YouTube
257
S01E129 Day 122 - Introduction to Multithreading
May 25, 2015
YouTube
79
S01E130 Day 123 - Interlocked Operations
May 27, 2015
YouTube
90
S01E131 Day 124 - Memory Barriers and Semaphores
May 28, 2015
YouTube
85
S01E132 Day 125 - Abstracting the Work Queue
May 29, 2015
YouTube
84
S01E133 Day 126 - Circular FIFO Work Queue
May 30, 2015
YouTube
93
S01E134 Day 127 - Aligning Rendering Memory
June 2, 2015
YouTube
77
S01E135 Day 128 - Push-time Transforms
June 3, 2015
YouTube
86
S01E136 Day 129 - Adding Orthographic Projection
June 4, 2015
YouTube
88
S01E137 Day 130 - Seamless Bilinear Tiling
June 5, 2015
YouTube
74
S01E138 Day 131 - Asynchronous Ground Chunk Composition
June 9, 2015
YouTube
83
S01E139 Day 132 - Asset Streaming
June 10, 2015
YouTube
85
S01E140 Day 133 - Preliminary Asset Structuring
June 11, 2015
YouTube
86
S01E141 Day 134 - Mapping Assets to Bitmaps
June 12, 2015
YouTube
84
S01E142 Day 135 - Typed Asset Arrays
June 13, 2015
YouTube
98
S01E143 Day 136 - Tag-based Asset Retrieval
June 16, 2015
YouTube
69
S01E144 Day 137 - Matching Periodic Tags
June 17, 2015
YouTube
70
S01E145 Day 138 - Loading WAV Files
June 18, 2015
YouTube
81
S01E146 Day 139 - Introduction to Sound Mixing
June 19, 2015
YouTube
78
S01E147 Day 140 - Implementing a Sound Mixer
June 20, 2015
YouTube
88
S01E148 Day 141 - Streaming Large Audio in Chunks
June 23, 2015
YouTube
88
S01E149 Day 142 - Per-sample Volume Interpolation
June 24, 2015
YouTube
78
S01E150 Day 143 - Pitch Shifting in the Mixer
June 25, 2015
YouTube
83
S01E151 Day 144 - SSE Mixer Pre and Post Loops
June 27, 2015
YouTube
97
S01E152 Day 145 - SSE Mixer Main Loop
June 30, 2015
YouTube
78
S01E153 Day 146 - Accumulation vs. Explicit Calculation
July 1, 2015
YouTube
109
S01E154 Day 147 - Defining the Asset File
July 14, 2015
YouTube
78
S01E155 Day 148 - Writing the Asset File Header
July 15, 2015
YouTube
100
S01E156 Day 149 - Writing Assets to the Asset File
July 16, 2015
YouTube
94
S01E157 Day 150 - Loading Assets from the Asset File
July 17, 2015
YouTube
82
S01E158 Day 151 - New Platform File API
series finale
July 18, 2015
YouTube
74

No artwork of this type.

No artwork of this type.

No artwork of this type.

No artwork of this type.