Debugging Asset Tag Hashes
?
?

Keyboard Navigation

Global Keys

[, < / ], > Jump to previous / next episode
W, K, P / S, J, N Jump to previous / next timestamp
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 and Index Controls

a
w
s
d
h j k l


Esc Close menu / unfocus timestamp

Quotes and References Menus and Index

Enter Jump to timestamp

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:02Recap and set the stage for the day
🗩
0:02Recap and set the stage for the day
🗩
0:02Recap and set the stage for the day
🗩
2:06Flexible vs Rigid Asset Lookup
🗩
2:06Flexible vs Rigid Asset Lookup
🗩
2:06Flexible vs Rigid Asset Lookup
🗩
5:55Why Flexi-Rigid Asset Lookup: 1) Straightforward coding
🗩
5:55Why Flexi-Rigid Asset Lookup: 1) Straightforward coding
🗩
5:55Why Flexi-Rigid Asset Lookup: 1) Straightforward coding
🗩
7:16Why Flexi-Rigid Asset Lookup: 2) Performance
🗩
7:16Why Flexi-Rigid Asset Lookup: 2) Performance
🗩
7:16Why Flexi-Rigid Asset Lookup: 2) Performance
🗩
10:32Moving from per-entity to per-piece tags
🗩
10:32Moving from per-entity to per-piece tags
🗩
10:32Moving from per-entity to per-piece tags
🗩
11:29Molly Meow
🗪
11:29Molly Meow
🗪
11:29Molly Meow
🗪
12:24Product request: Task chair (attachment) with a pussy perch
🗹
12:24Product request: Task chair (attachment) with a pussy perch
🗹
12:24Product request: Task chair (attachment) with a pussy perch
🗹
14:06j0has Try a baby pouch
🗪
14:06j0has Try a baby pouch
🗪
14:06j0has Try a baby pouch
🗪
15:03Commit to investing in a Task Cat chair
🗹
15:03Commit to investing in a Task Cat chair
🗹
15:03Commit to investing in a Task Cat chair
🗹
15:28Introduce gen_entity_tag_builder as an asset tag aggregator, for GenerateRoom() to pass to AddTag()
15:28Introduce gen_entity_tag_builder as an asset tag aggregator, for GenerateRoom() to pass to AddTag()
15:28Introduce gen_entity_tag_builder as an asset tag aggregator, for GenerateRoom() to pass to AddTag()
23:45Augment gen_entity with a FacingDirection
23:45Augment gen_entity with a FacingDirection
23:45Augment gen_entity with a FacingDirection
26:23Update everyone to use the new gen_entity_tag_builder and FacingDirection
26:23Update everyone to use the new gen_entity_tag_builder and FacingDirection
26:23Update everyone to use the new gen_entity_tag_builder and FacingDirection
32:55bullseyepie handmade_hero Not GET but GEN
🗪
32:55bullseyepie handmade_hero Not GET but GEN
🗪
32:55bullseyepie handmade_hero Not GET but GEN
🗪
32:59Make GenerateRoom() pass a BaseHash to GenEntityAtTraversable()
32:59Make GenerateRoom() pass a BaseHash to GenEntityAtTraversable()
32:59Make GenerateRoom() pass a BaseHash to GenEntityAtTraversable()
36:14Introduce a version of GetPieceAsset() that takes a gen_entity_tag_builder
36:14Introduce a version of GetPieceAsset() that takes a gen_entity_tag_builder
36:14Introduce a version of GetPieceAsset() that takes a gen_entity_tag_builder
38:51Remove gen_entity_tag and fix compile errors
38:51Remove gen_entity_tag and fix compile errors
38:51Remove gen_entity_tag and fix compile errors
41:37Run the game and hit our TextureIndex == TextureIndex32 assertion in PushQuad()
🏃
41:37Run the game and hit our TextureIndex == TextureIndex32 assertion in PushQuad()
🏃
41:37Run the game and hit our TextureIndex == TextureIndex32 assertion in PushQuad()
🏃
42:46Run the game in -Od and again hit our TextureIndex == TextureIndex32 assertion in PushQuad()
🏃
42:46Run the game in -Od and again hit our TextureIndex == TextureIndex32 assertion in PushQuad()
🏃
42:46Run the game in -Od and again hit our TextureIndex == TextureIndex32 assertion in PushQuad()
🏃
44:39Investigate our 0 ID issue
📖
44:39Investigate our 0 ID issue
📖
44:39Investigate our 0 ID issue
📖
46:11Eliminate the union from asset
46:11Eliminate the union from asset
46:11Eliminate the union from asset
46:29Run the game without asserting
🏃
46:29Run the game without asserting
🏃
46:29Run the game without asserting
🏃
46:35Abandon the union from asset, documenting this
46:35Abandon the union from asset, documenting this
46:35Abandon the union from asset, documenting this
48:09Determine to add assets to the hash table and verify the need to size the table by a prime number
🗩
48:09Determine to add assets to the hash table and verify the need to size the table by a prime number
🗩
48:09Determine to add assets to the hash table and verify the need to size the table by a prime number
🗩
50:25Begin to add assets to the hash table, replacing SetAssetType() with AddAssetToHash() and RemoveAssetFromHash(), and removing FirstAssetOfType from game_assets
50:25Begin to add assets to the hash table, replacing SetAssetType() with AddAssetToHash() and RemoveAssetFromHash(), and removing FirstAssetOfType from game_assets
50:25Begin to add assets to the hash table, replacing SetAssetType() with AddAssetToHash() and RemoveAssetFromHash(), and removing FirstAssetOfType from game_assets
55:18Introduce GetAssetHashSlot() and GetAssetHashSlotFrom(), and implement AddAssetToHash() and RemoveAssetFromHash()
55:18Introduce GetAssetHashSlot() and GetAssetHashSlotFrom(), and implement AddAssetToHash() and RemoveAssetFromHash()
55:18Introduce GetAssetHashSlot() and GetAssetHashSlotFrom(), and implement AddAssetToHash() and RemoveAssetFromHash()
1:04:16Remove MatchAnyFlags from asset
1:04:16Remove MatchAnyFlags from asset
1:04:16Remove MatchAnyFlags from asset
1:07:18yixery What is your vim colorscheme?
🗪
1:07:18yixery What is your vim colorscheme?
🗪
1:07:18yixery What is your vim colorscheme?
🗪
1:07:42Set up to enable AllocateGameAssets() to set the AssetHash, removing GetAssetHashSlotFrom()
1:07:42Set up to enable AllocateGameAssets() to set the AssetHash, removing GetAssetHashSlotFrom()
1:07:42Set up to enable AllocateGameAssets() to set the AssetHash, removing GetAssetHashSlotFrom()
1:11:57Consider removing Tags from the hha_header
📖
1:11:57Consider removing Tags from the hha_header
📖
1:11:57Consider removing Tags from the hha_header
📖
1:13:13Enable AddAssetToHash() to rebuild the asset's TagHash
1:13:13Enable AddAssetToHash() to rebuild the asset's TagHash
1:13:13Enable AddAssetToHash() to rebuild the asset's TagHash
1:22:38Fix compile errors and remove GetVariantCount()
1:22:38Fix compile errors and remove GetVariantCount()
1:22:38Fix compile errors and remove GetVariantCount()
1:23:40Enable UpdateSingleAssetMetadata() to report errors
1:23:40Enable UpdateSingleAssetMetadata() to report errors
1:23:40Enable UpdateSingleAssetMetadata() to report errors
1:24:51Run the game with more success than expected
🏃
1:24:51Run the game with more success than expected
🏃
1:24:51Run the game with more success than expected
🏃
1:25:32Consider this to be an order-dependency problem
📖
1:25:32Consider this to be an order-dependency problem
📖
1:25:32Consider this to be an order-dependency problem
📖
1:28:42Trim down the specificity of the orphanage asset tags in base_game.hht
🗹
1:28:42Trim down the specificity of the orphanage asset tags in base_game.hht
🗹
1:28:42Trim down the specificity of the orphanage asset tags in base_game.hht
🗹
1:29:01Prevent GenerateRoom() from adding the "manmade" tag
1:29:01Prevent GenerateRoom() from adding the "manmade" tag
1:29:01Prevent GenerateRoom() from adding the "manmade" tag
1:29:27Still see no wall textures
🏃
1:29:27Still see no wall textures
🏃
1:29:27Still see no wall textures
🏃
1:30:46Try to Reload HHTs, to no effect
🏃
1:30:46Try to Reload HHTs, to no effect
🏃
1:30:46Try to Reload HHTs, to no effect
🏃
1:32:19Investigate our apparent asset matching error
📖
1:32:19Investigate our apparent asset matching error
📖
1:32:19Investigate our apparent asset matching error
📖
1:34:01Try unsuccessfully to break in to UpdateAndRenderEntities()
🏃
1:34:01Try unsuccessfully to break in to UpdateAndRenderEntities()
🏃
1:34:01Try unsuccessfully to break in to UpdateAndRenderEntities()
🏃
1:36:19x13pixels Did you get a later version of VS? If so, need 0.3.1.3 or later
🗪
1:36:19x13pixels Did you get a later version of VS? If so, need 0.3.1.3 or later
🗪
1:36:19x13pixels Did you get a later version of VS? If so, need 0.3.1.3 or later
🗪
1:36:26Update remedybg to 0.3.1.4
🗹
1:36:26Update remedybg to 0.3.1.4
🗹
1:36:26Update remedybg to 0.3.1.4
🗹
1:38:01Break in to UpdateAndRenderEntities()
🏃
1:38:01Break in to UpdateAndRenderEntities()
🏃
1:38:01Break in to UpdateAndRenderEntities()
🏃
1:39:24Inspect the Asset values for a ground cube
🏃
1:39:24Inspect the Asset values for a ground cube
🏃
1:39:24Inspect the Asset values for a ground cube
🏃
1:41:13remedybg feature request: Get enum name from integer value
🗹
1:41:13remedybg feature request: Get enum name from integer value
🗹
1:41:13remedybg feature request: Get enum name from integer value
🗹
1:41:53Continue to decrypt our cube asset tag hash
🏃
1:41:53Continue to decrypt our cube asset tag hash
🏃
1:41:53Continue to decrypt our cube asset tag hash
🏃
1:43:39Note that our grass assets work
🏃
1:43:39Note that our grass assets work
🏃
1:43:39Note that our grass assets work
🏃
1:44:56Traverse the untextured orphanage in -O2
🏃
1:44:56Traverse the untextured orphanage in -O2
🏃
1:44:56Traverse the untextured orphanage in -O2
🏃
1:45:53Change GenerateRoom() to use the Asset_Block tag for cubes, inspired by GenerateApron()
1:45:53Change GenerateRoom() to use the Asset_Block tag for cubes, inspired by GenerateApron()
1:45:53Change GenerateRoom() to use the Asset_Block tag for cubes, inspired by GenerateApron()
1:46:50See our wall and floor textures, but no bodies and heads or lighting
🏃
1:46:50See our wall and floor textures, but no bodies and heads or lighting
🏃
1:46:50See our wall and floor textures, but no bodies and heads or lighting
🏃
1:47:42Relaunch without triggering the lighting bug
🏃
1:47:42Relaunch without triggering the lighting bug
🏃
1:47:42Relaunch without triggering the lighting bug
🏃
1:48:33Begin to investigate our bodies / heads bug
📖
1:48:33Begin to investigate our bodies / heads bug
📖
1:48:33Begin to investigate our bodies / heads bug
📖
1:51:38Consider removing Tag_BasicCategory
📖
1:51:38Consider removing Tag_BasicCategory
📖
1:51:38Consider removing Tag_BasicCategory
📖
1:53:11Step in to AddPlayer() and inspect the HeroTags
🏃
1:53:11Step in to AddPlayer() and inspect the HeroTags
🏃
1:53:11Step in to AddPlayer() and inspect the HeroTags
🏃
1:56:47See the glove, with facing direction mostly working
🏃
1:56:47See the glove, with facing direction mostly working
🏃
1:56:47See the glove, with facing direction mostly working
🏃
1:57:37Seek the player asset files for clues
🗹
1:57:37Seek the player asset files for clues
🗹
1:57:37Seek the player asset files for clues
🗹
1:58:13Prevent ImportBody() from adding Tag_Idle
1:58:13Prevent ImportBody() from adding Tag_Idle
1:58:13Prevent ImportBody() from adding Tag_Idle
2:00:26See the body
🏃
2:00:26See the body
🏃
2:00:26See the body
🏃
2:00:53Prevent ImportHead() from adding Tag_Idle
2:00:53Prevent ImportHead() from adding Tag_Idle
2:00:53Prevent ImportHead() from adding Tag_Idle
2:01:12See the head
🏃
2:01:12See the head
🏃
2:01:12See the head
🏃
2:01:26Trigger the load-time lighting bug
🏃
2:01:26Trigger the load-time lighting bug
🏃
2:01:26Trigger the load-time lighting bug
🏃
2:02:15Investigate our orphan assets bug
📖
2:02:15Investigate our orphan assets bug
📖
2:02:15Investigate our orphan assets bug
📖
2:05:39Break in to AddOrphan() and inspect the asset tags
🏃
2:05:39Break in to AddOrphan() and inspect the asset tags
🏃
2:05:39Break in to AddOrphan() and inspect the asset tags
🏃
2:08:31Q&A
🗩
2:08:31Q&A
🗩
2:08:31Q&A
🗩
2:08:53nick_19992 Q: Hi, I'm waiting for your Star Code Galaxy1, but meanwhile, reading K&R.2 Do you think I should be able to solve all exercises one by one or I could skip them and continue with the text and get back to them later? For example, before chapter one there's an exercise to remove comments from a C program and I'm having trouble to solve it at this stage. Thank you
🗪
2:08:53nick_19992 Q: Hi, I'm waiting for your Star Code Galaxy1, but meanwhile, reading K&R.2 Do you think I should be able to solve all exercises one by one or I could skip them and continue with the text and get back to them later? For example, before chapter one there's an exercise to remove comments from a C program and I'm having trouble to solve it at this stage. Thank you
🗪
2:08:53nick_19992 Q: Hi, I'm waiting for your Star Code Galaxy1, but meanwhile, reading K&R.2 Do you think I should be able to solve all exercises one by one or I could skip them and continue with the text and get back to them later? For example, before chapter one there's an exercise to remove comments from a C program and I'm having trouble to solve it at this stage. Thank you
🗪
2:10:47vironacorus Q: Do you think that (possibly optional) memory safety features are desirable to have in languages? Or should it be the programmer's job?
🗪
2:10:47vironacorus Q: Do you think that (possibly optional) memory safety features are desirable to have in languages? Or should it be the programmer's job?
🗪
2:10:47vironacorus Q: Do you think that (possibly optional) memory safety features are desirable to have in languages? Or should it be the programmer's job?
🗪
2:14:10iostream21 Would you like to participate in our regular competition for JavaScript and TypeScript developers? Prize fund: $100
🗪
2:14:10iostream21 Would you like to participate in our regular competition for JavaScript and TypeScript developers? Prize fund: $100
🗪
2:14:10iostream21 Would you like to participate in our regular competition for JavaScript and TypeScript developers? Prize fund: $100
🗪
2:15:32exp_ix Q: Do you think that using void * as some blank is data good practice? For example, if you have a somewhat generic struct called item, and then based on what item type it is its void * data points to a different struct that describes that item type
🗪
2:15:32exp_ix Q: Do you think that using void * as some blank is data good practice? For example, if you have a somewhat generic struct called item, and then based on what item type it is its void * data points to a different struct that describes that item type
🗪
2:15:32exp_ix Q: Do you think that using void * as some blank is data good practice? For example, if you have a somewhat generic struct called item, and then based on what item type it is its void * data points to a different struct that describes that item type
🗪
2:19:58recursivechat Q: Do game engines use a common library to import assets from, say, Maya / Blender?3
🗪
2:19:58recursivechat Q: Do game engines use a common library to import assets from, say, Maya / Blender?3
🗪
2:19:58recursivechat Q: Do game engines use a common library to import assets from, say, Maya / Blender?3
🗪
2:21:50gumboatdiplomat Q: Watched your design chat with Jon, which was really cool. Are you moving into designing the gameplay of Handmade Hero?
🗪
2:21:50gumboatdiplomat Q: Watched your design chat with Jon, which was really cool. Are you moving into designing the gameplay of Handmade Hero?
🗪
2:21:50gumboatdiplomat Q: Watched your design chat with Jon, which was really cool. Are you moving into designing the gameplay of Handmade Hero?
🗪
2:22:27vironacorus Q: If I wanted to make a game with a modding interface or a lot of items, how should I go about it? In both cases union-based polymorphism that you just described don't seem the best solution
🗪
2:22:27vironacorus Q: If I wanted to make a game with a modding interface or a lot of items, how should I go about it? In both cases union-based polymorphism that you just described don't seem the best solution
🗪
2:22:27vironacorus Q: If I wanted to make a game with a modding interface or a lot of items, how should I go about it? In both cases union-based polymorphism that you just described don't seem the best solution
🗪
2:24:54nick_19992 Q: Do you recommend reading a book about Win32 API to begin the course (like Petzold's4)?
🗪
2:24:54nick_19992 Q: Do you recommend reading a book about Win32 API to begin the course (like Petzold's4)?
🗪
2:24:54nick_19992 Q: Do you recommend reading a book about Win32 API to begin the course (like Petzold's4)?
🗪
2:25:07svemirkovic Q: Do you already have something on your agenda after you finish Handmade Hero?
🗪
2:25:07svemirkovic Q: Do you already have something on your agenda after you finish Handmade Hero?
🗪
2:25:07svemirkovic Q: Do you already have something on your agenda after you finish Handmade Hero?
🗪
2:25:47That looks like about it, with a glimpse into the future cleaning the asset system
🗩
2:25:47That looks like about it, with a glimpse into the future cleaning the asset system
🗩
2:25:47That looks like about it, with a glimpse into the future cleaning the asset system
🗩
2:26:39Plug the Episode Guide5
📖
2:26:39Plug the Episode Guide5
📖
2:26:39Plug the Episode Guide5
📖