Cinera 0.7.0 Update

Add output parameter to all of hero/code, hero/intro-to-c and hero/misc,
preserving the current URLs while allowing different .hmml filenames,
notably for hero/misc which now gets sorted chronologically.

Update the cinera__*.css files
This commit is contained in:
Matt Mascarenhas 2020-05-09 21:59:36 +01:00
parent 78755dbcae
commit c1e5607e7b
616 changed files with 711 additions and 649 deletions

View File

@ -12,11 +12,15 @@
*
* .faded
* background-color: #68311F;
*
*
*/
#cineraIndexControl.hero .cineraQueryContainer .inputContainer #query,
#cineraIndexControl.hero .cineraFilterProject,
#cineraResults .dayContainer.hero,
#cineraIndex.hero #cineraIndexEntries div,
#cineraIndex .cineraIndexProject.hero .cineraIndexEntries div,
.cineraMenus.hero,
.cineraMenus.hero > .menu > div,
@ -39,14 +43,17 @@
}
#cineraIndexControl.hero .cineraQueryContainer .inputContainer #query:focus,
#cineraResults .dayContainer:nth-child(2n).hero,
#cineraIndexControl.hero #cineraIndexSort,
#cineraIndex.hero #cineraIndexEntries div:nth-child(2n) {
.cineraIndexProject.hero .cineraProjectTitle,
#cineraResults .dayContainer:nth-child(2n).hero,
#cineraIndex .cineraIndexProject.hero .cineraIndexEntries div:nth-child(2n) {
background-color: #303030;
}
#cineraResults .markerList.hero > .marker,
#cineraIndexControl.hero .cineraIndexFilter .filter_container,
.cineraMenus.hero,
.cineraMenus.hero > .menu > div,
.cineraMenus.hero > .menu > .quotes_container .ref,
@ -63,10 +70,13 @@
/* Default Text */
#cineraIndexControl.hero .cineraQueryContainer .inputContainer #query,
#cineraIndexControl.hero #cineraIndexSort,
#cineraIndexControl.hero .cineraFilterProject,
#cineraResults .dayContainer.hero > .dayName,
#cineraResults .markerList.hero > .marker,
#cineraIndexControl.hero #cineraIndexSort,
#cineraIndex.hero #cineraIndexEntries div a,
.cineraIndexProject.hero .cineraProjectTitle,
#cineraIndex .cineraIndexProject.hero .cineraIndexEntries div a,
.cineraMenus.hero,
.cineraMenus.hero > .menu > .quotes_container .ref,
@ -82,21 +92,22 @@
}
/* Visited Indicator */
#cineraIndex.hero #cineraIndexEntries div a::before {
#cineraIndex .cineraIndexProject.hero .cineraIndexEntries div a::before {
color: #161616;
}
#cineraIndex.hero #cineraIndexEntries div:nth-child(2n) a::before {
#cineraIndex .cineraIndexProject.hero .cineraIndexEntries div:nth-child(2n) a::before {
color: #303030;
}
#cineraIndex.hero #cineraIndexEntries div a:visited::before {
#cineraIndex .cineraIndexProject.hero .cineraIndexEntries div a:visited::before {
color: #33FF33;
}
/**/
/* NOTE(matt): Somehow use this to colour the "Default Medium" when .off */
.cineraMenus.hero > .menu > .filter_container .filter_content.off .cineraText {
color: #3A3936;
}
@ -118,9 +129,12 @@
color: #FFF;
}
#cineraResults .markerList.hero > .marker:hover,
#cineraIndexControl.hero #cineraIndexSort:hover,
#cineraIndex.hero #cineraIndexEntries div:hover,
#cineraIndexControl.hero .cineraFilterProject.focused,
#cineraIndexControl.hero .cineraFilterProject.focused *,
#cineraResults .markerList.hero > .marker:hover,
#cineraIndex .cineraIndexProject.hero .cineraIndexEntries div:hover,
.cineraMenus.hero > .menu.visible,
.cineraMenus.hero > .menu > .quotes_container .ref.focused,
@ -155,6 +169,8 @@
background-color: #68311F;
}
#cineraIndexControl.hero .cineraFilterProject.off,
.cineraMenus.hero > .menu > .refs .ref .source,
.cineraMenus.hero > .menu > .refs .ref .quote_byline,
.cineraMenus.hero > .menu > .credits_container .credit .role {

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Setting Up the Windows Build" vod_platform=youtube id=Ee3EtYb8d1o annotator=jacebennett annotator=Miblo annotator=Mannilie annotator=theinternetftw annotator=wheatdog]
[video output=day001 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Setting Up the Windows Build" vod_platform=youtube id=Ee3EtYb8d1o annotator=jacebennett annotator=Miblo annotator=Mannilie annotator=theinternetftw annotator=wheatdog]
[0:46][Course of the Handmade Hero series]
[3:04][Start the project]
[5:06][Command line in Windows]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Setting Up the Windows Build - Q&A" vod_platform=youtube id=uxbJo5DDpWY annotator=jacebennett annotator=Miblo]
[video output=day001qa member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Setting Up the Windows Build - Q&A" vod_platform=youtube id=uxbJo5DDpWY annotator=jacebennett annotator=Miblo]
[0:35][Could you show how you added the Handmade Hero directory to the path?]
[3:44][Do all Windows programs written in C/C++ use WinMain? Does The Witness have the same started code?]
[4:48][What is the difference between Microsoft's compiler and gcc?]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Opening a Win32 Window" vod_platform=youtube id=4ROiWonnWGk annotator=jacebennett annotator=dspecht annotator=Miblo annotator=Mannilie annotator=theinternetftw]
[video output=day002 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Opening a Win32 Window" vod_platform=youtube id=4ROiWonnWGk annotator=jacebennett annotator=dspecht annotator=Miblo annotator=Mannilie annotator=theinternetftw]
[3:20][WNDCLASS Implementation start]
[4:40][Struct explanation of why Windows Documentation is the way it is]
[9:38][Initialization of WNDCLASS]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Opening a Win32 Window - Q&A" vod_platform=youtube id=d003_D-9EnY annotator=jacebennett annotator=Miblo]
[video output=day002qa member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Opening a Win32 Window - Q&A" vod_platform=youtube id=d003_D-9EnY annotator=jacebennett annotator=Miblo]
[1:32][Question about Atoms in Windows API]
[2:17][Can you go fullscreen?]
[2:40][Improving the way things are shown on stream]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Allocating a Back Buffer" vod_platform=youtube id=GAi_nTx1zG8 annotator=jacebennett annotator=Miblo annotator=Mannilie annotator=theinternetftw]
[video output=day003 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Allocating a Back Buffer" vod_platform=youtube id=GAi_nTx1zG8 annotator=jacebennett annotator=Miblo annotator=Mannilie annotator=theinternetftw]
[0:50][Short overview about a backbuffer]
[2:56][Windows message callback]
[4:43][Closing the window (PostQuitMessage function)]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Animating the Back Buffer" vod_platform=youtube id=hNKU8Jiza2g annotator=jacebennett annotator=Miblo]
[video output=day004 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Animating the Back Buffer" vod_platform=youtube id=hNKU8Jiza2g annotator=jacebennett annotator=Miblo]
[0:30][Correction about StretchDIBits()/BitBlt()]
[5:20][Writing our custom BitmapMemory allocator. (Note about aligned/unaligned byte access)]
[7:13][Basic math to determine the bytes needed for BitmapMemorySize. 'Width * Height * BytesPerPixel']

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Windows Graphics Review" vod_platform=youtube id=w7ay7QXmo_o annotator=jacebennett annotator=Miblo]
[video output=day005 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Windows Graphics Review" vod_platform=youtube id=w7ay7QXmo_o annotator=jacebennett annotator=Miblo]
[1:09][Brief overview of the week's work.]
[2:13][Capture card considered unneccesary?]
[3:07][Value of HREDRAW and VREDRAW]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code template=code006_template.html title="Gamepad and Keyboard Input" vod_platform=youtube id=J3y1x54vyIQ annotator=jacebennett annotator=Miblo annotator=garlandobloom]
[video output=day006 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code template=code006_template.html title="Gamepad and Keyboard Input" vod_platform=youtube id=J3y1x54vyIQ annotator=jacebennett annotator=Miblo annotator=garlandobloom]
[0:51][Getting input from a gamepad: XInput]
[3:20][Using XInput in the codebase]
[6:26][A look at the XInput API more in depth.]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code template=code007_template.html title="Initializing DirectSound" vod_platform=youtube id=qGC3xiliJW8 annotator=jacebennett annotator=Miblo annotator=theinternetftw]
[video output=day007 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code template=code007_template.html title="Initializing DirectSound" vod_platform=youtube id=qGC3xiliJW8 annotator=jacebennett annotator=Miblo annotator=theinternetftw]
[0:53][Fix: Windows API return values and stubs]
[2:29][Fix: XInput on Windows 8]
[3:48][Fix: Restore Alt-F4 functionality]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code template=code008_template.html title="Writing a Square Wave to DirectSound" vod_platform=youtube id=uiW1D1Vc7IQ annotator=jacebennett annotator=Miblo annotator=theinternetftw]
[video output=day008 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code template=code008_template.html title="Writing a Square Wave to DirectSound" vod_platform=youtube id=uiW1D1Vc7IQ annotator=jacebennett annotator=Miblo annotator=theinternetftw]
[1:04][Review of DirectSound init]
[2:16][Tangent: methods and vtables]
[8:52][Resume review of DirectSound init]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code template=code009_template.html title="Variable-Pitch Sine Wave Output" vod_platform=youtube id=8y9nPk1c45c annotator=jacebennett annotator=Miblo annotator=schme annotator=theinternetftw]
[video output=day009 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code template=code009_template.html title="Variable-Pitch Sine Wave Output" vod_platform=youtube id=8y9nPk1c45c annotator=jacebennett annotator=Miblo annotator=schme annotator=theinternetftw]
[1:14][Review DirectSound init and square wave]
[2:28][Story Time: The First Game Jam]
[8:56][The moral of the story]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code template=code010_template.html title="QueryPerformanceCounter and RDTSC" vod_platform=youtube id=tAcUIEoy2Yk annotator=jacebennett annotator=Miblo annotator=theinternetftw]
[video output=day010 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code template=code010_template.html title="QueryPerformanceCounter and RDTSC" vod_platform=youtube id=tAcUIEoy2Yk annotator=jacebennett annotator=Miblo annotator=theinternetftw]
[1:19][The Intel Architecture Reference Manual]
[3:49][RDTSC- Read Time-Stamp Counter, measures clock cycles]
[7:40][QueryPerformanceCounter(), measures wall clock time]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="The Basics of Platform API Design" vod_platform=youtube id=_4vnV2Eng7M annotator=schme]
[video output=day011 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="The Basics of Platform API Design" vod_platform=youtube id=_4vnV2Eng7M annotator=schme]
[3:35][About platform specific code]
[7:56][What is left to be done on the platform layer]
[11:23][Topic of the day revealed!]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code template=code012_template.html title="Platform-independent Sound Output" vod_platform=youtube id=5YhR2zAkQmo annotator=jacebennett annotator=Miblo annotator=theinternetftw]
[video output=day012 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code template=code012_template.html title="Platform-independent Sound Output" vod_platform=youtube id=5YhR2zAkQmo annotator=jacebennett annotator=Miblo annotator=theinternetftw]
[0:57][Review basics of platform API design]
[3:54][What the API needs to support]
[4:53][Starting with moving sound across the API boundary]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Platform-independent User Input" vod_platform=youtube id=Lt9DfMzZ9sI annotator=jacebennett annotator=Miblo]
[video output=day013 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Platform-independent User Input" vod_platform=youtube id=Lt9DfMzZ9sI annotator=jacebennett annotator=Miblo]
[0:40][Overview of the day's goals]
[2:35][Function Overloading (accidental and intentional)]
[7:29][Extending GameUpdateAndRender() to take input]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Platform-independent Game Memory" vod_platform=youtube id=tcENxzeTjbI annotator=jacebennett annotator=Miblo]
[video output=day014 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Platform-independent Game Memory" vod_platform=youtube id=tcENxzeTjbI annotator=jacebennett annotator=Miblo]
[0:58][Intro to memory management.]
[4:07][We won't be allocating.]
[5:17]['Allocation Festivals']

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Platform-independent Debug File I/O" vod_platform=youtube id=kdAte9pdLv8 annotator=garlandobloom annotator=jacebennett annotator=schme annotator=Miblo]
[video output=day015 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Platform-independent Debug File I/O" vod_platform=youtube id=kdAte9pdLv8 annotator=garlandobloom annotator=jacebennett annotator=schme annotator=Miblo]
[01:26][Overview of the two classes of game file I/O]
[05:30][Today's goals (building a minimal set of I/O functions)]
[06:48][A brief lesson on the sad history of file I/O]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="VisualStudio Compiler Switches" vod_platform=youtube id=zN7llTrMMBU annotator=dspecht annotator=schme annotator=garlandobloom]
[video output=day016 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="VisualStudio Compiler Switches" vod_platform=youtube id=zN7llTrMMBU annotator=dspecht annotator=schme annotator=garlandobloom]
[2:32][Explanation of Warning and the Warning levels]
[5:20][Fixing warnings, and disabling warnings we don't want]
[14:10][Other command line switches that Casey normally uses]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Unified Keyboard and Gamepad Input" vod_platform=youtube id=WDB718JId4M annotator=garlandobloom]
[video output=day017 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Unified Keyboard and Gamepad Input" vod_platform=youtube id=WDB718JId4M annotator=garlandobloom]
[2:19][Overview of the previous day's work]
[5:11][An introduction to functional programming]
[10:44][Methods for making our programs more functional]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Enforcing a Video Frame Rate" vod_platform=youtube id=TPpn2fee77M annotator=AndrewJDR annotator=dspecht annotator=jacebennett annotator=schme]
[video output=day018 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Enforcing a Video Frame Rate" vod_platform=youtube id=TPpn2fee77M annotator=AndrewJDR annotator=dspecht annotator=jacebennett annotator=schme]
[1:40][Discussion: Why we need to have an enforced video frame rate]
[5:27][Drawing and explaining the frame computation and displaying timeline]
[10:35][Explaining Variable Frame Rate Monitors]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Improving Audio Synchronization" vod_platform=youtube id=qFl62ka51Mc annotator=jacebennett annotator=garlandobloom annotator=Miblo]
[video output=day019 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Improving Audio Synchronization" vod_platform=youtube id=qFl62ka51Mc annotator=jacebennett annotator=garlandobloom annotator=Miblo]
[2:13][Intro]
[3:31][Audio Sync Conversation Begins (Summary)]
[4:19][#milkhit]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Debugging the Audio Sync" vod_platform=youtube id=hELF8KRqSIs annotator=jacebennett annotator=Miblo annotator=garlandobloom]
[video output=day020 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Debugging the Audio Sync" vod_platform=youtube id=hELF8KRqSIs annotator=jacebennett annotator=Miblo annotator=garlandobloom]
[2:44][Fixing an off by one error]
[5:12][Explanation of off by one errors]
[7:13][Overview of the state of our audio code]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code template=code021_template.html title="Loading Game Code Dynamically" vod_platform=youtube id=WMSBRk5WG58 annotator=schme annotator=Kelimion]
[video output=day021 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code template=code021_template.html title="Loading Game Code Dynamically" vod_platform=youtube id=WMSBRk5WG58 annotator=schme annotator=Kelimion]
[1:29][Intro to the episode]
[3:06][About implementing and using a scripting languages]
[6:15][Benefits of loading game code dynamically]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Instantaneous Live Code Editing" vod_platform=youtube id=oijEnriqqcs annotator=dspecht annotator=jacebennett annotator=Miblo annotator=theinternetftw]
[video output=day022 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Instantaneous Live Code Editing" vod_platform=youtube id=oijEnriqqcs annotator=dspecht annotator=jacebennett annotator=Miblo annotator=theinternetftw]
[0:02][Recap and set the stage for the day][:speech]
[2:22][Remove DllMain() and successfully recompile][:"hot reloading"]
[3:28][Demo :"hot reloading", and determine to reduce the update lag and enable debugging of it][:run]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Looped Live Code Editing" vod_platform=youtube id=xrUSrVvB21c annotator=schme annotator=garlandobloom]
[video output=day023 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Looped Live Code Editing" vod_platform=youtube id=xrUSrVvB21c annotator=schme annotator=garlandobloom]
[2:45][Review of the live code editing feature]
[4:13][Building a demo to show gameplay tuning workflow]
[9:00][Testing the demo]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Win32 Platform Layer Cleanup" vod_platform=youtube id=nBBTPRO8AMI annotator=garlandobloom annotator=theinternetftw]
[video output=day024 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Win32 Platform Layer Cleanup" vod_platform=youtube id=nBBTPRO8AMI annotator=garlandobloom annotator=theinternetftw]
[1:05][Goals for the day]
[2:50][Fixing a dumb audio bug]
[8:18][Failing to find a supposed SUCCEEDED related bug]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Finishing the Win32 Prototyping Layer" vod_platform=youtube id=es-Bou2dIdY annotator=schme annotator=garlandobloom]
[video output=day025 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Finishing the Win32 Prototyping Layer" vod_platform=youtube id=es-Bou2dIdY annotator=schme annotator=garlandobloom]
[1:47][Plans for today]
[4:20][Getting the actual monitor refresh rate with GetDeviceCaps()]
[10:27][Testing monitor refresh rate getting]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Introduction to Game Architecture" vod_platform=youtube id=rPJfadFSCyQ annotator=theinternetftw]
[video output=day026 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Introduction to Game Architecture" vod_platform=youtube id=rPJfadFSCyQ annotator=theinternetftw]
[0:00][First day of Programming the Actual Game]
[2:56][We'll know how everything happens above the platform layer]
[6:05][Software Architecture]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Exploration-based Architecture" vod_platform=youtube id=Mi98zVBb6Wk annotator=theinternetftw]
[video output=day027 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Exploration-based Architecture" vod_platform=youtube id=Mi98zVBb6Wk annotator=theinternetftw]
[0:00][Welcome]
[2:22][Evolution of a Project]
[6:43][How to drive towards an unknown destination]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Drawing a Tile Map" vod_platform=youtube id=QGmQ714rlAc annotator=powerc9000 annotator=dspecht annotator=schme annotator=theinternetftw]
[video output=day028 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Drawing a Tile Map" vod_platform=youtube id=QGmQ714rlAc annotator=powerc9000 annotator=dspecht annotator=schme annotator=theinternetftw]
[0:54][Overview of the day]
[3:30][Floating point color discussion]
[16:50][Actually doing the color in floating point]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Basic Tile Map Collision Checking" vod_platform=youtube id=EwhVulgF16g annotator=schme annotator=theinternetftw]
[video output=day029 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Basic Tile Map Collision Checking" vod_platform=youtube id=EwhVulgF16g annotator=schme annotator=theinternetftw]
[2:30][Review of what's currently been done]
[3:17][Clearing the screen to black and offsetting the drawable area]
[6:49][Player collision with the tilemap]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Moving Between Tile Maps" vod_platform=youtube id=J7suWih0ITQ annotator=schme annotator=theinternetftw]
[video output=day030 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Moving Between Tile Maps" vod_platform=youtube id=J7suWih0ITQ annotator=schme annotator=theinternetftw]
[3:10][Recap]
[6:36][About the process of writing code; Messy first, clean after]
[7:58][Passing information about tilemap]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Tilemap Coordinate Systems" vod_platform=youtube id=lDp4rqcigZs annotator=theinternetftw]
[video output=day031 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Tilemap Coordinate Systems" vod_platform=youtube id=lDp4rqcigZs annotator=theinternetftw]
[0:00][Welcome / Recap]
[3:46][On Scrolling]
[4:54][Scrolling for Free]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Unified Position Representation" vod_platform=youtube id=vI39C4iR8P0 annotator=schme annotator=theinternetftw]
[video output=day032 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Unified Position Representation" vod_platform=youtube id=vI39C4iR8P0 annotator=schme annotator=theinternetftw]
[1:37][Recap on what we're set out to do]
[6:15][About canonical position and using it for the player position]
[13:07][GetCanonicalPosition() to RecanonicalPosition()]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Virtualized Tile Maps" vod_platform=youtube id=iHSAOSYOt9E annotator=jacebennett annotator=theinternetftw]
[video output=day033 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Virtualized Tile Maps" vod_platform=youtube id=iHSAOSYOt9E annotator=jacebennett annotator=theinternetftw]
[2:03][Review of position representation]
[2:35][Today's agenda]
[3:55][world_position and changing y-axis]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Tile Map Memory" vod_platform=youtube id=IJYTwhqfKLg annotator=abnercoimbre annotator=Miblo annotator=theinternetftw]
[video output=day034 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Tile Map Memory" vod_platform=youtube id=IJYTwhqfKLg annotator=abnercoimbre annotator=Miblo annotator=theinternetftw]
[0:00][Intro]
[4:38][The more you know]
[8:25][Time to program]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Basic Sparse Tilemap Storage" vod_platform=youtube id=i5-oY8EHkzw annotator=abnercoimbre annotator=Miblo annotator=theinternetftw]
[video output=day035 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Basic Sparse Tilemap Storage" vod_platform=youtube id=i5-oY8EHkzw annotator=abnercoimbre annotator=Miblo annotator=theinternetftw]
[0:00][Intro]
[2:10][Making some rooms]
[3:30][Making some doors]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Loading BMPs" vod_platform=youtube id=USFTH9mcaKw annotator=schme annotator=abnercoimbre annotator=theinternetftw]
[video output=day036 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Loading BMPs" vod_platform=youtube id=USFTH9mcaKw annotator=schme annotator=abnercoimbre annotator=theinternetftw]
[00:00][A recap of previous stream]
[2:05][New test assets for Handmade Hero project]
[4:46][Introduction to loading BMP files]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Basic Bitmap Rendering" vod_platform=youtube id=ofMJUSchXwo annotator=schme annotator=Miblo annotator=theinternetftw]
[video output=day037 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Basic Bitmap Rendering" vod_platform=youtube id=ofMJUSchXwo annotator=schme annotator=Miblo annotator=theinternetftw]
[0:19][We're goin' in][quote 164]
[2:10][Recap on where we are]
[4:12][Debugging image file formats 101, creating structured art]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Basic Linear Bitmap Blending" vod_platform=youtube id=ydiHNs1YQoI annotator=schme annotator=effect0r annotator=theinternetftw]
[video output=day038 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Basic Linear Bitmap Blending" vod_platform=youtube id=ydiHNs1YQoI annotator=schme annotator=effect0r annotator=theinternetftw]
[0:00:00][Prestream stuff]
[0:09:18][Intro and welcome]
[0:10:52][Where we left of from last time]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Basic Bitmap Rendering Cleanup" vod_platform=youtube id=R8BiV_uYT6E annotator=effect0r annotator=theinternetftw]
[video output=day039 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Basic Bitmap Rendering Cleanup" vod_platform=youtube id=R8BiV_uYT6E annotator=effect0r annotator=theinternetftw]
[0:00:00][Intro and Welcome]
[0:04:55][HeroBitmaps structure]
[0:05:38][Loading all hero bitmaps]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Cursor Hiding and Fullscreen Support" vod_platform=youtube id=YBCOijN2fNA annotator=Miblo annotator=schme annotator=effect0r annotator=theinternetftw]
[video output=day040 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Cursor Hiding and Fullscreen Support" vod_platform=youtube id=YBCOijN2fNA annotator=Miblo annotator=schme annotator=effect0r annotator=theinternetftw]
[0:00:03][Intro and welcome]
[0:02:10][What we're going to do today]
[0:03:30][Cleaning up tSine]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Overview of the Types of Math Used in Games" vod_platform=youtube id=WN3_d_QcJZE annotator=abnercoimbre annotator=schme annotator=theinternetftw]
[video output=day041 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Overview of the Types of Math Used in Games" vod_platform=youtube id=WN3_d_QcJZE annotator=abnercoimbre annotator=schme annotator=theinternetftw]
[00:00][Intro]
[1:58][Discussing the reason for a math discussion.]
[3:58][Overview of math in programming]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Basic 2D Vectors" vod_platform=youtube id=eE-D_wSUd0g annotator=abnercoimbre annotator=schme annotator=theinternetftw]
[video output=day042 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Basic 2D Vectors" vod_platform=youtube id=eE-D_wSUd0g annotator=abnercoimbre annotator=schme annotator=theinternetftw]
[00:00][Intro]
[00:22][Character movement code.]
[01:45][Recap]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="The Equations of Motion" vod_platform=youtube id=LoTRzRFEk5I annotator=abnercoimbre annotator=schme annotator=theinternetftw]
[video output=day043 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="The Equations of Motion" vod_platform=youtube id=LoTRzRFEk5I annotator=abnercoimbre annotator=schme annotator=theinternetftw]
[01:02][Intro to equations of motion.]
[2:53][Recap of yesterday's stream.]
[5:08][Motion in-depth: rigid body dynamics.]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Reflecting Vectors" vod_platform=youtube id=2nyNOJoVC8M annotator=schme annotator=debiatan annotator=theinternetftw]
[video output=day044 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Reflecting Vectors" vod_platform=youtube id=2nyNOJoVC8M annotator=schme annotator=debiatan annotator=theinternetftw]
[00:33][Importance of vector math]
[02:09][Recap of last episode]
[03:36][On the homogeneity of scalar and vector math notation]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Geometric vs. Temporal Movement Search" vod_platform=youtube id=bERy-zhosqY annotator=csnover annotator=schme annotator=theinternetftw]
[video output=day045 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Geometric vs. Temporal Movement Search" vod_platform=youtube id=bERy-zhosqY annotator=csnover annotator=schme annotator=theinternetftw]
[0:00][Intro]
[1:28][Recap]
[2:30][Sticking problem recap]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Basic Multiplayer Support" vod_platform=youtube id=BU5xBpUMdPA annotator=schme annotator=Miblo annotator=effect0r annotator=theinternetftw]
[video output=day046 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Basic Multiplayer Support" vod_platform=youtube id=BU5xBpUMdPA annotator=schme annotator=Miblo annotator=effect0r annotator=theinternetftw]
[0:00:00][Intro and welcome]
[0:01:25][Where we were..]
[0:01:50][Addressing a bug that was found by the forums]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Vector Lengths" vod_platform=youtube id=5KzJ0TDeLxQ annotator=csnover annotator=schme annotator=theinternetftw]
[video output=day047 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Vector Lengths" vod_platform=youtube id=5KzJ0TDeLxQ annotator=csnover annotator=schme annotator=theinternetftw]
[0:00][Intro]
[1:33][Recap]
[2:50][Diagonal move recap]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Line Segment Intersection Collisions" vod_platform=youtube id=rWpZLvbT02o annotator=csnover annotator=schme annotator=debiatan annotator=theinternetftw]
[video output=day048 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Line Segment Intersection Collisions" vod_platform=youtube id=rWpZLvbT02o annotator=csnover annotator=schme annotator=debiatan annotator=theinternetftw]
[0:00][Intro]
[1:23][Recap]
[2:55][Continuing yesterday's work on collision detection]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Debugging Canonical Coordinates" vod_platform=youtube id=CIe8J9ScmRo annotator=csnover annotator=schme annotator=theinternetftw]
[video output=day049 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Debugging Canonical Coordinates" vod_platform=youtube id=CIe8J9ScmRo annotator=csnover annotator=schme annotator=theinternetftw]
[0:00][Intro]
[1:20][Recap]
[2:05][Wraparound problem]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Basic Minkowski-based Collision Detection" vod_platform=youtube id=_g8DLrNyVsQ annotator=csnover annotator=schme annotator=theinternetftw]
[video output=day050 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Basic Minkowski-based Collision Detection" vod_platform=youtube id=_g8DLrNyVsQ annotator=csnover annotator=schme annotator=theinternetftw]
[0:00][Intro]
[0:33][Recap]
[2:39][To do today: Gliding/skating and area-based collision detection]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Separating Entities By Update Frequency" vod_platform=youtube id=RQUP4ql86k0 annotator=csnover annotator=schme annotator=debiatan annotator=theinternetftw]
[video output=day051 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Separating Entities By Update Frequency" vod_platform=youtube id=RQUP4ql86k0 annotator=csnover annotator=schme annotator=debiatan annotator=theinternetftw]
[0:00][Intro]
[2:00][Recap]
[5:18][What we're doing and why]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Entity Movement in Camera Space" vod_platform=youtube id=TfZUAFh-WJg annotator=csnover annotator=debiatan annotator=theinternetftw]
[video output=day052 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Entity Movement in Camera Space" vod_platform=youtube id=TfZUAFh-WJg annotator=csnover annotator=debiatan annotator=theinternetftw]
[0:00][Intro]
[1:40][Recap]
[3:12][Thinking about removing the tile map and making tiles entities]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Environment Elements as Entities" vod_platform=youtube id=KAZrNrcgrRc annotator=csnover annotator=debiatan annotator=theinternetftw]
[video output=day053 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Environment Elements as Entities" vod_platform=youtube id=KAZrNrcgrRc annotator=csnover annotator=debiatan annotator=theinternetftw]
[0:00][Intro]
[1:22][Recap]
[2:42][Fixing a crash reading off the end of a buffer]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Removing the Dormant Entity Concept" vod_platform=youtube id=yqM04duWiiU annotator=csnover annotator=debiatan annotator=theinternetftw]
[video output=day054 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Removing the Dormant Entity Concept" vod_platform=youtube id=yqM04duWiiU annotator=csnover annotator=debiatan annotator=theinternetftw]
[0:00][Intro]
[1:17][Recap]
[3:15][Rationale for removing dormant entities]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Hash-based World Storage" vod_platform=youtube id=WyXBawK1jpE annotator=csnover annotator=debiatan annotator=theinternetftw]
[video output=day055 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Hash-based World Storage" vod_platform=youtube id=WyXBawK1jpE annotator=csnover annotator=debiatan annotator=theinternetftw]
[0:00][Intro]
[2:05][Fix typo in SetCamera]
[3:00][Recap of world coordinate wrapping problem & sparse world storage design]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Switch from Tiles to Entities" vod_platform=youtube id=NMfx9eVrNmQ annotator=csnover annotator=schme annotator=debiatan]
[video output=day056 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Switch from Tiles to Entities" vod_platform=youtube id=NMfx9eVrNmQ annotator=csnover annotator=schme annotator=debiatan]
[0:00][Intro]
[1:44][Recap]
[5:18][Scaling low-frequency entity updates]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Spatially Partitioning Entities" vod_platform=youtube id=nAFuhA8xqTk annotator=schme annotator=Miblo]
[video output=day057 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Spatially Partitioning Entities" vod_platform=youtube id=nAFuhA8xqTk annotator=schme annotator=Miblo]
[1:15][Recap]
[3:11][handmade.cpp: Create more rooms]
[4:22][Debugger: Inspect GameState while traversing the world]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Using the Spatial Partition" vod_platform=youtube id=W_z9VN1m2Oo annotator=schme annotator=Miblo]
[video output=day058 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Using the Spatial Partition" vod_platform=youtube id=W_z9VN1m2Oo annotator=schme annotator=Miblo]
[0:28][Assets: handmade_hero_test_assets_002.zip is released]
[2:01][Recap]
[3:28][handmade.cpp: Pull in entities by chunk, rather than tile]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding a Basic Familiar Entity" vod_platform=youtube id=KBCNjjeXezM annotator=schme annotator=Miblo]
[video output=day059 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding a Basic Familiar Entity" vod_platform=youtube id=KBCNjjeXezM annotator=schme annotator=Miblo]
[2:29][Recap and plan for the day ahead]
[5:34][handmade.h: Add EntityType_Familiar and EntityType_Monster]
[6:21][handmade.cpp: Introduce AddMonster and update AddLowEntity]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding Hitpoints" vod_platform=youtube id=0_xzS8zxuq4 annotator=Miblo annotator=schme annotator=wheatdog]
[video output=day060 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding Hitpoints" vod_platform=youtube id=0_xzS8zxuq4 annotator=Miblo annotator=schme annotator=wheatdog]
[1:55][Recap and plan for the day ahead]
[3:46][Describe the "sumo mandarin" still being eaten]
[4:46][Fix jump shadow]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding a Simple Attack" vod_platform=youtube id=bHGLcGgwpWg annotator=Miblo annotator=schme annotator=wheatdog]
[video output=day061 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding a Simple Attack" vod_platform=youtube id=bHGLcGgwpWg annotator=Miblo annotator=schme annotator=wheatdog]
[1:56][Recap and plan for the day ahead]
[6:07][handmade.cpp: Pull out the code draws hitpoints]
[8:04][handmade.cpp: InitHitPoints]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Basic Moving Projectiles" vod_platform=youtube id=F7feQINaRnk annotator=Miblo annotator=schme annotator=wheatdog]
[video output=day062 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Basic Moving Projectiles" vod_platform=youtube id=F7feQINaRnk annotator=Miblo annotator=schme annotator=wheatdog]
[0:32][Announce that we will save blackboard.art into handmade/misc/]
[2:41][Recap]
[4:10][handmade.cpp: Make the sword actually be thrown]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Simulation Regions" vod_platform=youtube id=a7_vSEEgArQ annotator=schme annotator=jpike]
[video output=day063 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Simulation Regions" vod_platform=youtube id=a7_vSEEgArQ annotator=schme annotator=jpike]
[0:25][Recap on getting initial usage code down to avoid bad design]
[2:03][Design constraints for high/low frequency entities]
[4:46][Float precision problem for large worlds]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Mapping Entity Indexes to Pointers" vod_platform=youtube id=lHKso30LdU8 annotator=schme annotator=jpike]
[video output=day064 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Mapping Entity Indexes to Pointers" vod_platform=youtube id=lHKso30LdU8 annotator=schme annotator=jpike]
[1:33][Recap of where we are with simulation regions]
[1:58][Reorganizing the entity structs]
[5:05][Updating code for sim_entity within low_entity]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Finishing the Simulation Region Change" vod_platform=youtube id=XfBTNH0nL4I annotator=schme annotator=jpike]
[video output=day065 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Finishing the Simulation Region Change" vod_platform=youtube id=XfBTNH0nL4I annotator=schme annotator=jpike]
[0:36][Recap on where we are with simulation region change]
[3:55][Creating a separate file for entity behavior code]
[6:20][Changing DrawHitpoints to operate on sim_entity instead of low_entity]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding Support for Non-spatial Entities" vod_platform=youtube id=vXPAE5UfcbA annotator=schme annotator=jpike]
[video output=day066 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding Support for Non-spatial Entities" vod_platform=youtube id=vXPAE5UfcbA annotator=schme annotator=jpike]
[2:06][Where we left off with simulation regions]
[2:52][Overview of limitation of simulation region - entities currently must have position]
[4:40][Adding sim_entity_flags]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Making Updates Conditional" vod_platform=youtube id=lnnb49-FYqU annotator=schme annotator=jpike]
[video output=day067 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Making Updates Conditional" vod_platform=youtube id=lnnb49-FYqU annotator=schme annotator=jpike]
[1:30][Reviewing the 'apron' idea for update regions]
[11:04][Adding Updatable bool to sim_entity]
[12:38][Setting Updatable bool in AddEntity]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Exact Enforcement of Maximum Movement Distances" vod_platform=youtube id=0ZjYHfYAjQg annotator=schme annotator=jpike]
[video output=day068 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Exact Enforcement of Maximum Movement Distances" vod_platform=youtube id=0ZjYHfYAjQg annotator=schme annotator=jpike]
[0:28][Recap of where we are with collisions and interactions]
[1:07][Bug fix from forums - Typo in MoveEntity for testing entity flag]
[3:44][Overview for today - max movement distances]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Pairwise Collision Rules" vod_platform=youtube id=YrqQLA9SOEc annotator=schme annotator=jpike]
[video output=day069 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Pairwise Collision Rules" vod_platform=youtube id=YrqQLA9SOEc annotator=schme annotator=jpike]
[1:35][Recap of where we left off with collision responses]
[4:44][Changing things so that stopping on collision is part of collision handling]
[6:25][Overview of ignoring certain collisions]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Exploration To-do List" vod_platform=youtube id=afWxzIHB5Ss annotator=schme annotator=jpike]
[video output=day070 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Exploration To-do List" vod_platform=youtube id=afWxzIHB5Ss annotator=schme annotator=jpike]
[0:29][Overview of the development process]
[4:03][Recap of collision rule hash table]
[5:53][Problem with removing collision rules from hash table]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Converting to Full 3D Positioning" vod_platform=youtube id=FVPxhovGsuE annotator=schme annotator=Miblo annotator=wheatdog]
[video output=day071 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Converting to Full 3D Positioning" vod_platform=youtube id=FVPxhovGsuE annotator=schme annotator=Miblo annotator=wheatdog]
[0:15][Recap]
[1:07][Casey talk about "The coincidence of how people use their TODO notebook"]
[2:52][Bug fix: Remove the code we left when we were playing around with familiars]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Proper 3D Inclusion Tests" vod_platform=youtube id=tcirDivLd8A annotator=csnover annotator=schme annotator=Miblo]
[video output=day072 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Proper 3D Inclusion Tests" vod_platform=youtube id=tcirDivLd8A annotator=csnover annotator=schme annotator=Miblo]
[0:48][Coding from scratch, "just like mommy used to code"][quote 26]
[0:57][Recap]
[1:51][Fix IsInRectangle cut/paste bug]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Temporarily Overlapping Entities" vod_platform=youtube id=e0yjNipizK0 annotator=schme annotator=Miblo]
[video output=day073 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Temporarily Overlapping Entities" vod_platform=youtube id=e0yjNipizK0 annotator=schme annotator=Miblo]
[0:57]["Little tiny baby zipfiles"][quote 30]
[2:06][Recap and plan for the day]
[4:09][handmade.cpp: Load rock02.bmp into the set]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Moving Entities Up and Down Stairwells" vod_platform=youtube id=Hm_CTQwV13U annotator=Miblo annotator=schme]
[video output=day074 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Moving Entities Up and Down Stairwells" vod_platform=youtube id=Hm_CTQwV13U annotator=Miblo annotator=schme]
[1:31][Blackboard: Processing entities in pairs]
[4:23][Blackboard: Using that table to process stairwell overlapping]
[6:57][Blackboard: Travelling inside the stairwell]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Conditional Movement Based on Step Heights" vod_platform=youtube id=bZxa4fdtI2Y annotator=Miblo annotator=schme]
[video output=day075 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Conditional Movement Based on Step Heights" vod_platform=youtube id=bZxa4fdtI2Y annotator=Miblo annotator=schme]
[3:58][Blackboard: Handling stairwell traversal]
[7:45][Blackboard: Collision Detection in Z]
[8:21][Blackboard: Draw reasonably]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Entity Heights and Collision Detection" vod_platform=youtube id=0mGWYcE6yG8 annotator=dspecht annotator=Miblo]
[video output=day076 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Entity Heights and Collision Detection" vod_platform=youtube id=0mGWYcE6yG8 annotator=dspecht annotator=Miblo]
[2:34][Start everything up, make sure it's all still working and plan for the day]
[6:21][handmade_sim_region.cpp: Consider confining collision detection to the entities' Z neighbourhood]
[9:41][Blackboard: Extending Minkowsi collision into the third dimension]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Entity Ground Points" vod_platform=youtube id=9IGZGfVvc0s annotator=dspecht annotator=Miblo]
[video output=day077 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Entity Ground Points" vod_platform=youtube id=9IGZGfVvc0s annotator=dspecht annotator=Miblo]
[2:00][Recap the bug from yesterday]
[4:02][Blackboard: The discrepancy between the Entities' base points and the Ground position]
[5:30][Look at how these concepts are currently specified]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Multiple Collision Volumes Per Entity" vod_platform=youtube id=o1DO5sjUhi0 annotator=Miblo annotator=dspecht]
[video output=day078 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Multiple Collision Volumes Per Entity" vod_platform=youtube id=o1DO5sjUhi0 annotator=Miblo annotator=dspecht]
[1:37][Blackboard: Position != Collision "Mesh"]
[9:13][handmade_sim_region.h: Introduce sim_entity_collision_volume]
[10:54][Blackboard: Two ways of storing this collision volume data]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Defining the Ground" vod_platform=youtube id=HMW1fsXzW-o annotator=Miblo annotator=dspecht annotator=Kelimion]
[video output=day079 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Defining the Ground" vod_platform=youtube id=HMW1fsXzW-o annotator=Miblo annotator=dspecht annotator=Kelimion]
[3:56][handmade.h: Check the TODO list]
[4:51][Blackboard: The Ground]
[5:45][Blackboard: Quake vs. Unreal]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Handling Traversables in the Collision Loop" vod_platform=youtube id=QxxVwnE8V1c annotator=Miblo annotator=dspecht]
[video output=day080 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Handling Traversables in the Collision Loop" vod_platform=youtube id=QxxVwnE8V1c annotator=Miblo annotator=dspecht]
[4:29][Blackboard: Augmenting the collision loop to loop over two types of t value]
[5:10][handmade_sim_region.cpp: Introduce tMax]
[5:58][handmade_sim_region.cpp: Consider how best to modify this routine]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Creating Ground with Overlapping Bitmaps" vod_platform=youtube id=EGOrMZwQVEk annotator=Miblo]
[video output=day081 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Creating Ground with Overlapping Bitmaps" vod_platform=youtube id=EGOrMZwQVEk annotator=Miblo]
[0:19][A regrettable incident...]
[6:07][Maybe we should try to add some sort of drawing to the ground]
[7:13][Viewing the art assets in GIMP]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Caching Composited Bitmaps" vod_platform=youtube id=09bUpNbRzzc annotator=Miblo]
[video output=day082 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Caching Composited Bitmaps" vod_platform=youtube id=09bUpNbRzzc annotator=Miblo]
[0:41][Let's take a look at where things were]
[2:12][Toggle off the debug boundaries]
[2:49][Two things to look at: 1) Speeding up the texture splats and 2) Multiple layers]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Premultiplied Alpha" vod_platform=youtube id=bidrZj1YosA annotator=Miblo]
[video output=day083 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Premultiplied Alpha" vod_platform=youtube id=bidrZj1YosA annotator=Miblo]
[1:44][Recap yesterday's work]
[4:20][Investigate peripheral problem]
[6:01][Blackboard: Alpha channel in the intermediate buffer]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Scrolling Ground Buffer" vod_platform=youtube id=U5AAAaiMlYQ annotator=dspecht annotator=Miblo]
[video output=day084 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Scrolling Ground Buffer" vod_platform=youtube id=U5AAAaiMlYQ annotator=dspecht annotator=Miblo]
[1:36][Damage Assessment]
[2:37][We are trying to figure out how to finish off our world construction]
[4:23][Think about how to handle the ground]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Transient Ground Buffers" vod_platform=youtube id=QhjuxnQyBwk annotator=Miblo annotator=dspecht]
[video output=day085 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Transient Ground Buffers" vod_platform=youtube id=QhjuxnQyBwk annotator=Miblo annotator=dspecht]
[1:18][Recap of yesterday's repeating ground texture work]
[2:18][Blackboard: A smarter way to do things]
[5:19][Blackboard: Why don't we just make an array of tiles...?]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Aligning Ground Buffers to World Chunks" vod_platform=youtube id=TxowSnU2_cQ annotator=dspecht annotator=Miblo]
[video output=day086 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Aligning Ground Buffers to World Chunks" vod_platform=youtube id=TxowSnU2_cQ annotator=dspecht annotator=Miblo]
[3:50][Recap]
[4:14][The Proposal: First, just produce tiles that cover things... but they won't be seamless]
[5:58][Address specifying which ground_buffer we need]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Seamless Ground Textures" vod_platform=youtube id=YAaqiKuSmsk annotator=Miblo annotator=dspecht annotator=ZedZull]
[video output=day087 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Seamless Ground Textures" vod_platform=youtube id=YAaqiKuSmsk annotator=Miblo annotator=dspecht annotator=ZedZull]
[1:48][Take a look at the state of things, but actually address a typo]
[2:46][Weird stuff can happen when you're using memory directly]
[7:31][Get back to what we were doing, i.e. making seamless ground tiles]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Push Buffer Rendering" vod_platform=youtube id=zbufcZ_JBbU annotator=Miblo annotator=dspecht annotator=ZedZull]
[video output=day088 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Push Buffer Rendering" vod_platform=youtube id=zbufcZ_JBbU annotator=Miblo annotator=dspecht annotator=ZedZull]
[0:37][Investigate possible bug in the collision detector]
[3:02][Pass TestP to SpeculativeCollide and also base MoverGroundPoint off TestP]
[3:27][Make a version of GetEntityGroundPoint that takes ForEntityP]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Renderer Push Buffer Entry Types" vod_platform=youtube id=lllby5vrEes annotator=dspecht annotator=ZedZull annotator=Miblo]
[video output=day089 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Renderer Push Buffer Entry Types" vod_platform=youtube id=lllby5vrEes annotator=dspecht annotator=ZedZull annotator=Miblo]
[1:34][Take a look at what happened on Friday]
[3:56][Blackboard: Rendering]
[5:25][Blackboard: Reasons for using a PushBuffer]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Bases Part I" vod_platform=youtube id=lcmjmOfWPNU annotator=Miblo annotator=dspecht annotator=ZedZull]
[video output=day090 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Bases Part I" vod_platform=youtube id=lcmjmOfWPNU annotator=Miblo annotator=dspecht annotator=ZedZull]
[1:45][Take a look at where we're at]
[2:05][Make lowercase the accessors for the vectors]
[6:20][Casey doesn't have enough Emacs-fu to bust that out][quote 45]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Bases Part II" vod_platform=youtube id=2yKKcjBIaL0 annotator=Miblo annotator=dspecht annotator=ZedZull]
[video output=day091 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Bases Part II" vod_platform=youtube id=2yKKcjBIaL0 annotator=Miblo annotator=dspecht annotator=ZedZull]
[0:54][Blackboard: Clarify linear independence]
[2:18][Blackboard: Bases]
[6:16][Blackboard: What does it mean to say we have an origin?]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Filling Rotated and Scaled Rectangles" vod_platform=youtube id=kVU_QIxm3AA annotator=Miblo annotator=dspecht annotator=ZedZull]
[video output=day092 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Filling Rotated and Scaled Rectangles" vod_platform=youtube id=kVU_QIxm3AA annotator=Miblo annotator=dspecht annotator=ZedZull]
[0:23][Recap of people egging Casey on to do some weird sine-cosine-theta stuff][quote 50]
[1:36][Blackboard: Introduce effects]
[4:39][Blackboard: How do we do this rotation and scaling?]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Textured Quadrilaterals" vod_platform=youtube id=k5wzQeWRokA annotator=Miblo annotator=dspecht]
[video output=day093 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Textured Quadrilaterals" vod_platform=youtube id=k5wzQeWRokA annotator=Miblo annotator=dspecht]
[0:44][Recap and push forwards]
[2:46][Expand the notion of CoordinateSystem to allow passing a Texture]
[4:36][Review how our Edge equations work]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Converting sRGB to Light-linear Space" vod_platform=youtube id=GKVMOmEGVoQ annotator=dspecht annotator=Miblo]
[video output=day094 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Converting sRGB to Light-linear Space" vod_platform=youtube id=GKVMOmEGVoQ annotator=dspecht annotator=Miblo]
[1:07][Recap last week's work on the renderer]
[1:38][Won Chun's request: Correct gamma correction]
[4:08][Chart: Gamma curve of Casey's monitor]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Gamma-correct Premultiplied Alpha" vod_platform=youtube id=JTIzGsGqQaA annotator=dspecht annotator=Miblo]
[video output=day095 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Gamma-correct Premultiplied Alpha" vod_platform=youtube id=JTIzGsGqQaA annotator=dspecht annotator=Miblo]
[1:20][Recap yesterday's work]
[2:40][When do you premultiply the alpha?]
[4:58][This bilinear blend might want to be in premultiplied alpha]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Introduction to Lighting" vod_platform=youtube id=QtepVbq6_pw annotator=Miblo annotator=dspecht]
[video output=day096 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Introduction to Lighting" vod_platform=youtube id=QtepVbq6_pw annotator=Miblo annotator=dspecht]
[1:59][Consider addressing the problem of speed and optimisation in order to ease debugging]
[4:02][Two possible directions: Renderer Features...]
[5:11][...or Lighting Control]

View File

@ -1,4 +1,4 @@
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding Normal Maps to the Pipeline" vod_platform=youtube id=oww19zUryVg annotator=dspecht annotator=Miblo]
[video output=day097 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding Normal Maps to the Pipeline" vod_platform=youtube id=oww19zUryVg annotator=dspecht annotator=Miblo]
[2:17][Recap yesterday and plan for today]
[2:55][Blackboard: Normal maps]
[5:28][Blackboard: The importance of Normal]

Some files were not shown because too many files have changed in this diff Show More