#
Air Date
Episode Name
Watched?
E1
Nov 18, 2014
Day 001 - Setting Up the Windows Build
E2
Nov 19, 2014
Day 002 - Opening a Win32 Window
E3
Nov 20, 2014
Day 003 - Allocating a Backbuffer
E4
Nov 20, 2014
Day 004 - Animating the Backbuffer
E5
Nov 22, 2014
Day 005 - Windows Graphics Review
E6
Nov 25, 2014
Day 006 - Gamepad and Keyboard Input
E7
Nov 25, 2014
Day 007 - Initializing DirectSound
E8
Nov 26, 2014
Day 008 - Writing a Square Wave to DirectSound
E9
Nov 27, 2014
Day 009 - Variable-Pitch Sine Wave Output
E10
Nov 28, 2014
Day 010 - QueryPerformanceCounter and RDTSC
E11
Dec 02, 2014
Day 011 - The Basics of Platform API Design
E12
Dec 02, 2014
Day 012 - Platform-independent Sound Output
E13
Dec 03, 2014
Day 013 - Platform-independent User Input
E14
Dec 05, 2014
Day 014 - Platform-independent Game Memory
E15
Dec 05, 2014
Day 015 - Platform-independent Debug File I/O
E16
Dec 08, 2014
Day 016 - VisualStudio Compiler Switches
E17
Dec 09, 2014
Day 017 - Unified Keyboard and Gamepad Input
E18
Dec 11, 2014
Day 018 - Enforcing a Video Frame Rate
E19
Dec 11, 2014
Day 019 - Improving Audio Synchronization
E20
Dec 12, 2014
Day 020 - Debugging the Audio Sync
E21
Dec 15, 2014
Day 021 - Loading Game Code Dynamically
E22
Dec 17, 2014
Day 022 - Instantaneous Live Code Editing
E23
Dec 18, 2014
Day 023 - Looped Live Code Editing
E24
Dec 19, 2014
Day 024 - Win32 Platform Layer Cleanup
E25
Dec 19, 2014
Day 025 - Finishing the Win32 Prototyping Layer
E26
Dec 22, 2014
Day 026 - Introduction to Game Architecture
E27
Dec 23, 2014
Day 027 - Exploration-based Architecture
E28
Dec 24, 2014
Day 028 - Drawing a Tile Map
E29
Dec 25, 2014
Day 029 - Basic Tile Map Collision Checking
E30
Dec 26, 2014
Day 030 - Moving Between Tile Maps
E31
Dec 29, 2014
Day 031 - Tilemap Coordinate Systems
E32
Dec 30, 2014
Day 032 - Unified Position Representation
E33
Dec 31, 2014
Day 033 - Virtualized Tile Maps
E34
Jan 01, 2015
Day 034 - Tile Map Memory
E35
Jan 02, 2015
Day 035 - Basic Sparse Tilemap Storage
E36
Jan 05, 2015
Day 036 - Loading BMPs
E37
Jan 06, 2015
Day 037 - Basic Bitmap Rendering
E38
Jan 07, 2015
Day 038 - Basic Linear Bitmap Blending
E39
Jan 08, 2015
Day 039 - Basic Bitmap Rendering Cleanup
E40
Jan 09, 2015
Day 040 - Cursor Hiding and Fullscreen Support
E41
Jan 12, 2015
Day 041 - Overview of the Types of Math Used in Games
E42
Jan 12, 2015
Day 042 - Basic 2D Vectors
E43
Jan 14, 2015
Day 043 - The Equations of Motion
E44
Jan 15, 2015
Day 044 - Reflecting Vectors
E45
Jan 16, 2015
Day 045 - Geometric vs. Temporal Movement Search
E46
Jan 20, 2015
Day 046 - Basic Multiplayer Support
E47
Jan 20, 2015
Day 047 - Vector Lengths
E48
Jan 21, 2015
Day 048 - Line Segment Intersection Collisions
E49
Jan 22, 2015
Day 049 - Debugging Canonical Coordinates
E50
Jan 23, 2015
Day 050 - Basic Minkowski-based Collision Detection
E51
Jan 27, 2015
Day 051 - Separating Entities By Update Frequency
E52
Jan 27, 2015
Day 052 - Entity Movement in Camera Space
E53
Jan 28, 2015
Day 053 - Environment Elements as Entities
E54
Jan 29, 2015
Day 054 - Removing the Dormant Entity Concept
E55
Jan 30, 2015
Day 055 - Hash-based World Storage
E56
Feb 02, 2015
Day 056 - Switching from Tiles to Entities
E57
Feb 03, 2015
Day 057 - Spatially Partitioning Entities
E58
Feb 04, 2015
Day 058 - Using the Spatial Partition
E59
Feb 06, 2015
Day 059 - Adding a Basic Familiar Entity
E60
Feb 06, 2015
Day 060 - Adding Hitpoints
E61
Feb 10, 2015
Day 061 - Adding a Simple Attack
E62
Feb 11, 2015
Day 062 - Basic Moving Projectiles
E63
Feb 12, 2015
Day 063 - Simulation Regions
E64
Feb 13, 2015
Day 064 - Mapping Entity Indexes to Pointers
E65
Feb 13, 2015
Day 065 - Finishing the Simulation Region Change
E66
Feb 16, 2015
Day 066 - Adding Support for Non-spatial Entities
E67
Feb 18, 2015
Day 067 - Making Updates Conditional
E68
Feb 19, 2015
Day 068 - Exact Enforcement of Maximum Movement Distances
E69
Feb 19, 2015
Day 069 - Pairwise Collision Rules
E70
Feb 20, 2015
Day 070 - Exploration To-do List
E71
Feb 24, 2015
Day 071 - Converting to Full 3D Positioning
E72
Feb 25, 2015
Day 072 - Proper 3D Inclusion Tests
E73
Feb 26, 2015
Day 073 - Temporarily Overlapping Entities
E74
Feb 27, 2015
Day 074 - Moving Entities Up and Down Stairwells
E75
Feb 27, 2015
Day 075 - Conditional Movement Based on Step Heights
E76
Mar 10, 2015
Day 076 - Entity Heights and Collision Detection
E77
Mar 11, 2015
Day 077 - Entity Ground Points
E78
Mar 12, 2015
Day 078 - Multiple Collision Volumes Per Entity
E79
Mar 13, 2015
Day 079 - Defining the Ground
E80
Mar 14, 2015
Day 080 - Handling Traversables in the Collision Loop
E81
Mar 19, 2015
Day 081 - Creating Ground with Overlapping Bitmaps
E82
Mar 20, 2015
Day 082 - Caching Composited Bitmaps
E83
Mar 20, 2015
Day 083 - Premultiplied Alpha
E84
Mar 24, 2015
Day 084 - Scrolling Ground Buffer
E85
Mar 25, 2015
Day 085 - Transient Ground Buffers
E86
Mar 26, 2015
Day 086 - Aligning Ground Buffers to World Chunks
E87
Mar 27, 2015
Day 087 - Seamless Ground Textures
E88
Mar 28, 2015
Day 088 - Push Buffer Rendering
E89
Mar 31, 2015
Day 089 - Renderer Push Buffer Entry Types
E90
Apr 01, 2015
Day 090 - Bases Part I
E91
Apr 02, 2015
Day 091 - Bases Part II
E92
Apr 03, 2015
Day 092 - Filling Rotated and Scaled Rectangles
E93
Apr 04, 2015
Day 093 - Textured Quadrilaterals
E94
Apr 07, 2015
Day 094 - Converting sRGB to Light-linear Space
E95
Apr 08, 2015
Day 095 - Gamma-correct Premultiplied Alpha
E96
Apr 09, 2015
Day 096 - Introduction to Lighting
E97
Apr 10, 2015
Day 097 - Adding Normal Maps to the Pipeline
E98
Apr 11, 2015
Day 098 - Normal Map Code Cleanup
E99
Apr 14, 2015
Day 099 - Test Environment Maps
E100
Apr 15, 2015
Day 100 - Reflection Vectors
E101
Apr 16, 2015
Day 101 - The Inverse and the Transpose
E102
Apr 17, 2015
Day 102 - Transforming Normals Properly
E103
Apr 18, 2015
Day 103 - Card-like Normal Map Reflections
E104
Apr 21, 2015
Day 104 - Switching to Y-is-up Render Targets
E105
Apr 22, 2015
Day 105 - Cleaning Up the Renderer API
E106
Apr 23, 2015
Day 106 - World Scaling
E107
Apr 24, 2015
Day 107 - Fading Z Layers
E108
Apr 25, 2015
Day 108 - Perspective Projection
E109
Apr 28, 2015
Day 109 - Resolution-Independent Rendering
E110
Apr 30, 2015
Day 110 - Unprojecting Screen Boundaries
E111
May 01, 2015
Day 111 - Resolution-Independent Ground Chunks
E112
May 05, 2015
Day 112 - A Mental Model of CPU Performance
E113
May 06, 2015
Day 113 - Simple Performance Counters
E114
May 07, 2015
Day 114 - Preparing a Function for Optimization
E115
May 07, 2015
Day 115 - SIMD Basics
E116
May 08, 2015
Day 116 - Converting Math Operations to SIMD
E117
May 12, 2015
Day 117 - Packing Pixels for the Framebuffer
E118
May 13, 2015
Day 118 - Wide Unpacking and Masking
E119
May 14, 2015
Day 119 - Counting Intrinsics
E120
May 15, 2015
Day 120 - Measuring Port Usage with IACA
E121
May 17, 2015
Day 121 - Rendering in Tiles (Marathon)
E122
May 25, 2015
Day 122 - Introduction to Multithreading
E123
May 27, 2015
Day 123 - Interlocked Operations
E124
May 28, 2015
Day 124 - Memory Barriers and Semaphores
E125
May 29, 2015
Day 125 - Abstracting the Work Queue
E126
May 30, 2015
Day 126 - Circular FIFO Work Queue
E127
Jun 02, 2015
Day 127 - Aligning Rendering Memory
E128
Jun 03, 2015
Day 128 - Push-time Transforms
E129
Jun 04, 2015
Day 129 - Adding Orthographic Projection
E130
Jun 05, 2015
Day 130 - Seamless Bilinear Tiling
E131
Jun 09, 2015
Day 131 - Asynchronous Ground Chunk Composition
E132
Jun 10, 2015
Day 132 - Asset Streaming
E133
Jun 11, 2015
Day 133 - Preliminary Asset Structuring
E134
Jun 12, 2015
Day 134 - Mapping Assets to Bitmaps
E135
Jun 13, 2015
Day 135 - Typed Asset Arrays
E136
Jun 16, 2015
Day 136 - Tag-based Asset Retrieval
E137
Jun 17, 2015
Day 137 - Matching Periodic Tags
E138
Jun 18, 2015
Day 138 - Loading WAV Files
E139
Jun 19, 2015
Day 139 - Introduction to Sound Mixing
E140
Jun 20, 2015
Day 140 - Implementing a Sound Mixer
E141
Jun 23, 2015
Day 141 - Streaming Large Audio in Chunks
E142
Jun 24, 2015
Day 142 - Per-sample Volume Interpolation
E143
Jun 25, 2015
Day 143 - Pitch Shifting in the Mixer
E144
Jun 27, 2015
Day 144 - SSE Mixer Pre and Post Loops
E145
Jun 30, 2015
Day 145 - SSE Mixer Main Loop
E146
Jul 01, 2015
Day 146 - Accumulation vs. Explicit Calculation
E147
Jul 14, 2015
Day 147 - Defining the Asset File
E148
Jul 15, 2015
Day 148 - Writing the Asset File Header
E149
Jul 16, 2015
Day 149 - Writing Assets to the Asset File
E150
Jul 17, 2015
Day 150 - Loading Assets from the Asset File
E151
Jul 18, 2015
Day 151 - New Platform File API