Handmade Hero»Episode Guide
Proper Variant Distributions and Issue Cleanup
?
?

Keyboard Navigation

Global Keys

[, < / ], > Jump to previous / next episode
W, K, P / S, J, N Jump to previous / next marker
t / T Toggle theatre / SUPERtheatre mode
V Revert filter to original state Y Select link (requires manual Ctrl-c)

Menu toggling

q Quotes r References f Filter y Link c Credits

In-Menu Movement

a
w
s
d
h j k l


Quotes and References Menus

Enter Jump to timecode

Quotes, References and Credits Menus

o Open URL (in new tab)

Filter Menu

x, Space Toggle category and focus next
X, ShiftSpace Toggle category and focus previous
v Invert topics / media as per focus

Filter and Link Menus

z Toggle filter / linking mode

Credits Menu

Enter Open URL (in new tab)
0:01Recap and set the stage for the day addressing cvaucher's pre-stream question about Handmade Hero halting under clang's address sanitizer
🗩
0:01Recap and set the stage for the day addressing cvaucher's pre-stream question about Handmade Hero halting under clang's address sanitizer
🗩
0:01Recap and set the stage for the day addressing cvaucher's pre-stream question about Handmade Hero halting under clang's address sanitizer
🗩
0:33Address sanitizer
🗩
0:33Address sanitizer
🗩
0:33Address sanitizer
🗩
2:30cvaucher Q: The equivalent area in the win32 layer would be accessing Info->Platform in PLATFORM_OPEN_FILE
🗪
2:30cvaucher Q: The equivalent area in the win32 layer would be accessing Info->Platform in PLATFORM_OPEN_FILE
🗪
2:30cvaucher Q: The equivalent area in the win32 layer would be accessing Info->Platform in PLATFORM_OPEN_FILE
🗪
2:48Reacquaint ourselves with Win32OpenFile() and related functions with a view to addressing cvaucher's BootstrapPushStruct() issue
📖
2:48Reacquaint ourselves with Win32OpenFile() and related functions with a view to addressing cvaucher's BootstrapPushStruct() issue
📖
2:48Reacquaint ourselves with Win32OpenFile() and related functions with a view to addressing cvaucher's BootstrapPushStruct() issue
📖
8:56cvaucher Q: That helps. I'll check it out again and add some more detail in the forums if I need to
🗪
8:56cvaucher Q: That helps. I'll check it out again and add some more detail in the forums if I need to
🗪
8:56cvaucher Q: That helps. I'll check it out again and add some more detail in the forums if I need to
🗪
10:21Our problem with fair picking of asset variants
🏃
10:21Our problem with fair picking of asset variants
🏃
10:21Our problem with fair picking of asset variants
🏃
15:11Displaying tags in the asset editor UI, and regularising the asset sizing
🏃
15:11Displaying tags in the asset editor UI, and regularising the asset sizing
🏃
15:11Displaying tags in the asset editor UI, and regularising the asset sizing
🏃
16:59Determine to implement fair picking of asset variants
🗩
16:59Determine to implement fair picking of asset variants
🗩
16:59Determine to implement fair picking of asset variants
🗩
18:14Variants
🖌
18:14Variants
🖌
18:14Variants
🖌
22:39Creating the systemic flow to produce fairly picked variants
🖌
22:39Creating the systemic flow to produce fairly picked variants
🖌
22:39Creating the systemic flow to produce fairly picked variants
🖌
23:31Begin to fairly redistribute asset variants, introducing the notion of a VariantGroup in import_grid_tag
23:31Begin to fairly redistribute asset variants, introducing the notion of a VariantGroup in import_grid_tag
23:31Begin to fairly redistribute asset variants, introducing the notion of a VariantGroup in import_grid_tag
31:16Introduce UpdateAssetVariants() to perform the entire fair distribution of asset variants in a group, for UpdateAssetDataFromFile() to call
31:16Introduce UpdateAssetVariants() to perform the entire fair distribution of asset variants in a group, for UpdateAssetDataFromFile() to call
31:16Introduce UpdateAssetVariants() to perform the entire fair distribution of asset variants in a group, for UpdateAssetDataFromFile() to call
45:23Enable AssetEditor() to display asset tags, introducing GetTag()
45:23Enable AssetEditor() to display asset tags, introducing GetTag()
45:23Enable AssetEditor() to display asset tags, introducing GetTag()
51:26View the asset tags in the editor, with UpdateAssetVariants() not happening
🏃
51:26View the asset tags in the editor, with UpdateAssetVariants() not happening
🏃
51:26View the asset tags in the editor, with UpdateAssetVariants() not happening
🏃
53:53Toggle on UpdateAssetVariants()
53:53Toggle on UpdateAssetVariants()
53:53Toggle on UpdateAssetVariants()
54:03View the asset tags, to find that the variant code is working
🏃
54:03View the asset tags, to find that the variant code is working
🏃
54:03View the asset tags, to find that the variant code is working
🏃
56:02Make GenerateRoom() add a Variant tag to trees
56:02Make GenerateRoom() add a Variant tag to trees
56:02Make GenerateRoom() add a Variant tag to trees
57:14Check out our fairly distributed tree variants, and resize the trees
🏃
57:14Check out our fairly distributed tree variants, and resize the trees
🏃
57:14Check out our fairly distributed tree variants, and resize the trees
🏃
1:02:10Close the "Need to automatically assign variant values" issue1 and open the "Pink line in scenery_tree_03.png" issue2
🗹
1:02:10Close the "Need to automatically assign variant values" issue1 and open the "Pink line in scenery_tree_03.png" issue2
🗹
1:02:10Close the "Need to automatically assign variant values" issue1 and open the "Pink line in scenery_tree_03.png" issue2
🗹
1:03:53Consider changing how to the asset editor UI
🏃
1:03:53Consider changing how to the asset editor UI
🏃
1:03:53Consider changing how to the asset editor UI
🏃
1:12:09Address the "Update README to discuss new downloads" issue3
🗩
1:12:09Address the "Update README to discuss new downloads" issue3
🗩
1:12:09Address the "Update README to discuss new downloads" issue3
🗩
1:13:04Hi, Molly
🗩
1:13:04Hi, Molly
🗩
1:13:04Hi, Molly
🗩
1:13:27Update the README to mention tags and asset importing
🗹
1:13:27Update the README to mention tags and asset importing
🗹
1:13:27Update the README to mention tags and asset importing
🗹
1:22:14Test the documentation by building and running afresh
🗹
🏃
1:22:14Test the documentation by building and running afresh
🗹
🏃
1:22:14Test the documentation by building and running afresh
🗹
🏃
1:25:34Close the "Update README to discuss new downloads" issue4
🗹
1:25:34Close the "Update README to discuss new downloads" issue4
🗹
1:25:34Close the "Update README to discuss new downloads" issue4
🗹
1:26:11Fix everything in the "Some minor issues (naming and returns)" issue5
1:26:11Fix everything in the "Some minor issues (naming and returns)" issue5
1:26:11Fix everything in the "Some minor issues (naming and returns)" issue5
1:33:44Close the "Some minor issues (naming and returns)"6 and "Easier asset download so there are less steps to building current source"7 issues
🗹
1:33:44Close the "Some minor issues (naming and returns)"6 and "Easier asset download so there are less steps to building current source"7 issues
🗹
1:33:44Close the "Some minor issues (naming and returns)"6 and "Easier asset download so there are less steps to building current source"7 issues
🗹
1:36:15Let OpenGLGetInfo() enable OpenGL_ARB_framebuffer_object if we're on OpenGL 3 or higher8
1:36:15Let OpenGLGetInfo() enable OpenGL_ARB_framebuffer_object if we're on OpenGL 3 or higher8
1:36:15Let OpenGLGetInfo() enable OpenGL_ARB_framebuffer_object if we're on OpenGL 3 or higher8
1:38:45Close the "Support for ARB_framebuffer_object" issue9
🗹
1:38:45Close the "Support for ARB_framebuffer_object" issue9
🗹
1:38:45Close the "Support for ARB_framebuffer_object" issue9
🗹
1:40:09Change the conditional logic in BeginTextureOp() such that the MemoryAt will not get reset if the buffer is either entirely full or empty10
1:40:09Change the conditional logic in BeginTextureOp() such that the MemoryAt will not get reset if the buffer is either entirely full or empty10
1:40:09Change the conditional logic in BeginTextureOp() such that the MemoryAt will not get reset if the buffer is either entirely full or empty10
1:41:42Hit the Result->TransferMemoryLastUsed <= Queue->TransferMemoryCount assertion in BeginTextureOp()
🏃
1:41:42Hit the Result->TransferMemoryLastUsed <= Queue->TransferMemoryCount assertion in BeginTextureOp()
🏃
1:41:42Hit the Result->TransferMemoryLastUsed <= Queue->TransferMemoryCount assertion in BeginTextureOp()
🏃
1:42:16Investigate that assertion hit in BeginTextureOp()
📖
1:42:16Investigate that assertion hit in BeginTextureOp()
📖
1:42:16Investigate that assertion hit in BeginTextureOp()
📖
1:44:30Fix BeginTextureOp() to reset the MemoryAt if none of the buffer has been used
1:44:30Fix BeginTextureOp() to reset the MemoryAt if none of the buffer has been used
1:44:30Fix BeginTextureOp() to reset the MemoryAt if none of the buffer has been used
1:45:15Find that BeginTextureOp() is now fine
🏃
1:45:15Find that BeginTextureOp() is now fine
🏃
1:45:15Find that BeginTextureOp() is now fine
🏃
1:45:37Close the "SizeAvailable is not optimal in BeginTextureOp when there are no ops" issue11 and address the "win32_renderer_test.exe asserts because it can't create framebuffer" issue12
🗹
1:45:37Close the "SizeAvailable is not optimal in BeginTextureOp when there are no ops" issue11 and address the "win32_renderer_test.exe asserts because it can't create framebuffer" issue12
🗹
1:45:37Close the "SizeAvailable is not optimal in BeginTextureOp when there are no ops" issue11 and address the "win32_renderer_test.exe asserts because it can't create framebuffer" issue12
🗹
1:46:53Assert in CreateFramebuffer() that the Width and Height are > 0
1:46:53Assert in CreateFramebuffer() that the Width and Height are > 0
1:46:53Assert in CreateFramebuffer() that the Width and Height are > 0
1:47:22Try to provoke that assertion
🏃
1:47:22Try to provoke that assertion
🏃
1:47:22Try to provoke that assertion
🏃
1:47:43Successfully provoke the assertion in the Renderer Test
🏃
1:47:43Successfully provoke the assertion in the Renderer Test
🏃
1:47:43Successfully provoke the assertion in the Renderer Test
🏃
1:51:04Make OpenGLBeginFrame() take and set the Commands->RenderDim
1:51:04Make OpenGLBeginFrame() take and set the Commands->RenderDim
1:51:04Make OpenGLBeginFrame() take and set the Commands->RenderDim
1:58:07Hit assertions in the Renderer Test and Handmade Hero, and investigate why
🏃
1:58:07Hit assertions in the Renderer Test and Handmade Hero, and investigate why
🏃
1:58:07Hit assertions in the Renderer Test and Handmade Hero, and investigate why
🏃
2:00:08Fix OpenGLBeginFrame() to set the Commands->Setting.RenderDim
2:00:08Fix OpenGLBeginFrame() to set the Commands->Setting.RenderDim
2:00:08Fix OpenGLBeginFrame() to set the Commands->Setting.RenderDim
2:01:51Find that all is now good with Handmade Hero but not with the Renderer Test
🏃
2:01:51Find that all is now good with Handmade Hero but not with the Renderer Test
🏃
2:01:51Find that all is now good with Handmade Hero but not with the Renderer Test
🏃
2:02:36Close the "win32_renderer_test.exe asserts because it can't create framebuffer" issue13
🗹
2:02:36Close the "win32_renderer_test.exe asserts because it can't create framebuffer" issue13
🗹
2:02:36Close the "win32_renderer_test.exe asserts because it can't create framebuffer" issue13
🗹
2:02:55Copy the renderer_test assets back into place
🗹
2:02:55Copy the renderer_test assets back into place
🗹
2:02:55Copy the renderer_test assets back into place
🗹
2:05:11Find that the Renderer Test is now good
🏃
2:05:11Find that the Renderer Test is now good
🏃
2:05:11Find that the Renderer Test is now good
🏃
2:05:52Assess our issues14
📖
2:05:52Assess our issues14
📖
2:05:52Assess our issues14
📖
2:06:20Q&A
🗩
2:06:20Q&A
🗩
2:06:20Q&A
🗩
2:06:45thestalkingwolf Q: Will you do all the platform layers or leave that to the community support?
🗪
2:06:45thestalkingwolf Q: Will you do all the platform layers or leave that to the community support?
🗪
2:06:45thestalkingwolf Q: Will you do all the platform layers or leave that to the community support?
🗪
2:07:110lpbm Q: Will you add some randomness to the sizes (and maybe shape - skewing, height / width) of the trees?
🗪
2:07:110lpbm Q: Will you add some randomness to the sizes (and maybe shape - skewing, height / width) of the trees?
🗪
2:07:110lpbm Q: Will you add some randomness to the sizes (and maybe shape - skewing, height / width) of the trees?
🗪
2:08:06ormone88 Q: What do you think about using the mouse wheel in order to drag values in the editor? In this way it wouldn't be limited by the screen space. Also, you could use something like Alt + mouse wheel for doubling the increase / decrease rate
🗪
2:08:06ormone88 Q: What do you think about using the mouse wheel in order to drag values in the editor? In this way it wouldn't be limited by the screen space. Also, you could use something like Alt + mouse wheel for doubling the increase / decrease rate
🗪
2:08:06ormone88 Q: What do you think about using the mouse wheel in order to drag values in the editor? In this way it wouldn't be limited by the screen space. Also, you could use something like Alt + mouse wheel for doubling the increase / decrease rate
🗪
2:08:35x13pixels Q: Are you doing more Meow Hash later tonight?
🗪
2:08:35x13pixels Q: Are you doing more Meow Hash later tonight?
🗪
2:08:35x13pixels Q: Are you doing more Meow Hash later tonight?
🗪
2:09:35thestalkingwolf Q: Having just dealt with weighted distributions and cumulative sum draw, will you add weighted selection to the tree selection, i.e. some trees may show up more or less common?
🗪
2:09:35thestalkingwolf Q: Having just dealt with weighted distributions and cumulative sum draw, will you add weighted selection to the tree selection, i.e. some trees may show up more or less common?
🗪
2:09:35thestalkingwolf Q: Having just dealt with weighted distributions and cumulative sum draw, will you add weighted selection to the tree selection, i.e. some trees may show up more or less common?
🗪
2:12:14wolverinegator Q: Left-click normal speed, right-click double speed dragging? Or some modifier key that the pen also has
🗪
2:12:14wolverinegator Q: Left-click normal speed, right-click double speed dragging? Or some modifier key that the pen also has
🗪
2:12:14wolverinegator Q: Left-click normal speed, right-click double speed dragging? Or some modifier key that the pen also has
🗪
2:12:43ormone88 Depression-oriented programming is the future
🗪
2:12:43ormone88 Depression-oriented programming is the future
🗪
2:12:43ormone88 Depression-oriented programming is the future
🗪
2:13:350lpbm Q: I have watched an older episode where you were coding player movement related to a moving translation point. Will there be any in-game elements using this mechanic?
🗪
2:13:350lpbm Q: I have watched an older episode where you were coding player movement related to a moving translation point. Will there be any in-game elements using this mechanic?
🗪
2:13:350lpbm Q: I have watched an older episode where you were coding player movement related to a moving translation point. Will there be any in-game elements using this mechanic?
🗪
2:13:57Brian Q: Is the idea that the monsters from Anna Draws It going to be in Handmade Hero? Or at least potentially?
🗪
2:13:57Brian Q: Is the idea that the monsters from Anna Draws It going to be in Handmade Hero? Or at least potentially?
🗪
2:13:57Brian Q: Is the idea that the monsters from Anna Draws It going to be in Handmade Hero? Or at least potentially?
🗪
2:14:060lpbm Will there be any in-game elements using this mechanic?
🗪
2:14:060lpbm Will there be any in-game elements using this mechanic?
🗪
2:14:060lpbm Will there be any in-game elements using this mechanic?
🗪
2:14:470lpbm Q: Moving translation points (the points where the body moves to)
🗪
2:14:470lpbm Q: Moving translation points (the points where the body moves to)
🗪
2:14:470lpbm Q: Moving translation points (the points where the body moves to)
🗪
2:15:39theflame937 Q: What is your go-to method to hide a string in a project?
🗪
2:15:39theflame937 Q: What is your go-to method to hide a string in a project?
🗪
2:15:39theflame937 Q: What is your go-to method to hide a string in a project?
🗪
2:18:20That's all, folks
🗩
2:18:20That's all, folks
🗩
2:18:20That's all, folks
🗩