| # |
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 |
|