Handmade Hero»Episode Guide
Writing Assets to the Asset File
?
?

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)
00:00:12Recap and plan for the day
00:00:12Recap and plan for the day
00:00:12Recap and plan for the day
00:03:00A file is a permanently stored version of memory
00:03:00A file is a permanently stored version of memory
00:03:00A file is a permanently stored version of memory
00:04:20Two ways of storing the asset array and the assets:
00:04:20Two ways of storing the asset array and the assets:
00:04:20Two ways of storing the asset array and the assets:
00:04:591) Going back and forth after writing each asset
00:04:591) Going back and forth after writing each asset
00:04:591) Going back and forth after writing each asset
00:06:092) Writing all the assets, going back and writing the whole asset array
00:06:092) Writing all the assets, going back and writing the whole asset array
00:06:092) Writing all the assets, going back and writing the whole asset array
00:07:33C Run-Time library function: fseek
00:07:33C Run-Time library function: fseek
00:07:33C Run-Time library function: fseek
00:09:47The CRT's fseek does not support 64-bit offsets
00:09:47The CRT's fseek does not support 64-bit offsets
00:09:47The CRT's fseek does not support 64-bit offsets
00:19:15Moving the BMP code into the test asset builder
00:19:15Moving the BMP code into the test asset builder
00:19:15Moving the BMP code into the test asset builder
00:23:07Including the math header file, after all
00:23:07Including the math header file, after all
00:23:07Including the math header file, after all
00:23:54Moving the sound code into the test asset builder
00:23:54Moving the sound code into the test asset builder
00:23:54Moving the sound code into the test asset builder
00:30:35The CRT's ftell does not support 64-bit offsets
00:30:35The CRT's ftell does not support 64-bit offsets
00:30:35The CRT's ftell does not support 64-bit offsets
00:34:54Guarding against multiple bitmap pitches
00:34:54Guarding against multiple bitmap pitches
00:34:54Guarding against multiple bitmap pitches
00:37:13Loading asset data into freeable memory
00:37:13Loading asset data into freeable memory
00:37:13Loading asset data into freeable memory
00:39:30C Run-Time library version of ReadEntireFile
00:39:30C Run-Time library version of ReadEntireFile
00:39:30C Run-Time library version of ReadEntireFile
00:41:15Figuring out the size of a file using fseek
00:41:15Figuring out the size of a file using fseek
00:41:15Figuring out the size of a file using fseek
00:42:45Skipping the first, intentionally blank, asset
00:42:45Skipping the first, intentionally blank, asset
00:42:45Skipping the first, intentionally blank, asset
00:43:14Debugging ReadEntireFile
00:43:14Debugging ReadEntireFile
00:43:14Debugging ReadEntireFile
00:48:19Switching to loading all assets from the pack file
00:48:19Switching to loading all assets from the pack file
00:48:19Switching to loading all assets from the pack file
00:50:35Approaching expansive code changes. One step at a time
00:50:35Approaching expansive code changes. One step at a time
00:50:35Approaching expansive code changes. One step at a time
00:54:00Referencing the asset file loaded into memory
00:54:00Referencing the asset file loaded into memory
00:54:00Referencing the asset file loaded into memory
00:56:56Straight casting of the header file as an hha header struct, and checking the magic value and version
00:56:56Straight casting of the header file as an hha header struct, and checking the magic value and version
00:56:56Straight casting of the header file as an hha header struct, and checking the magic value and version
00:59:19Stepping through the code
00:59:19Stepping through the code
00:59:19Stepping through the code
01:00:17Q&A
🗩
01:00:17Q&A
🗩
01:00:17Q&A
🗩
01:00:56pra_nda How long has this been going for?
🗪
01:00:56pra_nda How long has this been going for?
🗪
01:00:56pra_nda How long has this been going for?
🗪
01:01:20gasto5 What does flat-loaded mean?
🗪
01:01:20gasto5 What does flat-loaded mean?
🗪
01:01:20gasto5 What does flat-loaded mean?
🗪
01:03:49ciastek3214 What is the benefit of keeping all assets in one file as opposed to making different asset files dedicated to each type of asset? (answered at 1:05:42)
🗪
01:03:49ciastek3214 What is the benefit of keeping all assets in one file as opposed to making different asset files dedicated to each type of asset? (answered at 1:05:42)
🗪
01:03:49ciastek3214 What is the benefit of keeping all assets in one file as opposed to making different asset files dedicated to each type of asset? (answered at 1:05:42)
🗪
01:04:46ttbjm Should there be error asserts if there are no assets that match a query?
🗪
01:04:46ttbjm Should there be error asserts if there are no assets that match a query?
🗪
01:04:46ttbjm Should there be error asserts if there are no assets that match a query?
🗪
01:05:20pra_nda Will you ever make games to make profit off?
🗪
01:05:20pra_nda Will you ever make games to make profit off?
🗪
01:05:20pra_nda Will you ever make games to make profit off?
🗪
01:05:42ciastek3214 The latter (about the assets)
🗪
01:05:42ciastek3214 The latter (about the assets)
🗪
01:05:42ciastek3214 The latter (about the assets)
🗪
01:05:48Our single-file HHA file format
🖌
01:05:48Our single-file HHA file format
🖌
01:05:48Our single-file HHA file format
🖌
01:07:22Why split our HHA file?
🖌
01:07:22Why split our HHA file?
🖌
01:07:22Why split our HHA file?
🖌
01:09:32Off-topic Q&A
01:09:32Off-topic Q&A
01:09:32Off-topic Q&A
01:09:43oreopanda22 Where did you learn to code?
🗪
01:09:43oreopanda22 Where did you learn to code?
🗪
01:09:43oreopanda22 Where did you learn to code?
🗪
01:09:55gxc_ How long have you been coding?
🗪
01:09:55gxc_ How long have you been coding?
🗪
01:09:55gxc_ How long have you been coding?
🗪
01:09:59killatank54 Is this what you do full-time? Or do you work for a company?
🗪
01:09:59killatank54 Is this what you do full-time? Or do you work for a company?
🗪
01:09:59killatank54 Is this what you do full-time? Or do you work for a company?
🗪
01:10:33bfisher277 Will the game be multi-player or single-player? And will you be able to code your character, kind of like CodeSpells, like the name "handmade hero" would suggest?
🗪
01:10:33bfisher277 Will the game be multi-player or single-player? And will you be able to code your character, kind of like CodeSpells, like the name "handmade hero" would suggest?
🗪
01:10:33bfisher277 Will the game be multi-player or single-player? And will you be able to code your character, kind of like CodeSpells, like the name "handmade hero" would suggest?
🗪
01:11:46dr_kegel Why is your bio webpage not viewable without javascript?α
🗪
01:11:46dr_kegel Why is your bio webpage not viewable without javascript?α
🗪
01:11:46dr_kegel Why is your bio webpage not viewable without javascript?α
🗪
01:13:03chronicsquid What is a bit map?
🗪
01:13:03chronicsquid What is a bit map?
🗪
01:13:03chronicsquid What is a bit map?
🗪
01:15:49pra_nda Have you been doing this all your life?
🗪
01:15:49pra_nda Have you been doing this all your life?
🗪
01:15:49pra_nda Have you been doing this all your life?
🗪
01:15:52aceflameseer What is the Windows 10 release date?
🗪
01:15:52aceflameseer What is the Windows 10 release date?
🗪
01:15:52aceflameseer What is the Windows 10 release date?
🗪
01:15:59killatank54 What is your day job? And do you enjoy it?
🗪
01:15:59killatank54 What is your day job? And do you enjoy it?
🗪
01:15:59killatank54 What is your day job? And do you enjoy it?
🗪
01:16:13davechat What is Overlapped IO?
🗪
01:16:13davechat What is Overlapped IO?
🗪
01:16:13davechat What is Overlapped IO?
🗪
01:16:33ciastek3214 In that case (referring to question at 1:03:49), why do other developers break up their assets in separate files?
🗪
01:16:33ciastek3214 In that case (referring to question at 1:03:49), why do other developers break up their assets in separate files?
🗪
01:16:33ciastek3214 In that case (referring to question at 1:03:49), why do other developers break up their assets in separate files?
🗪
01:17:27daelus Would having separate files assist with modding or patching?
🗪
01:17:27daelus Would having separate files assist with modding or patching?
🗪
01:17:27daelus Would having separate files assist with modding or patching?
🗪
01:18:16gasto5 Is Mike Acton's Data Oriented Design any different than Compression Oriented Programming?
🗪
01:18:16gasto5 Is Mike Acton's Data Oriented Design any different than Compression Oriented Programming?
🗪
01:18:16gasto5 Is Mike Acton's Data Oriented Design any different than Compression Oriented Programming?
🗪
01:20:06masterevilace One reason to split files is to get around the FAT32 4GB limit. Another reason might be if your pipeline allows audio devs to update their pack file for the game w/o needing or messing with other parts of the game (models, textures)
🗪
01:20:06masterevilace One reason to split files is to get around the FAT32 4GB limit. Another reason might be if your pipeline allows audio devs to update their pack file for the game w/o needing or messing with other parts of the game (models, textures)
🗪
01:20:06masterevilace One reason to split files is to get around the FAT32 4GB limit. Another reason might be if your pipeline allows audio devs to update their pack file for the game w/o needing or messing with other parts of the game (models, textures)
🗪
01:21:00diojr1 Where can we read about the actual plan for the game? (gameplay)
🗪
01:21:00diojr1 Where can we read about the actual plan for the game? (gameplay)
🗪
01:21:00diojr1 Where can we read about the actual plan for the game? (gameplay)
🗪
01:21:06impl33t Are you using any C++ plugins for Emacs?
🗪
01:21:06impl33t Are you using any C++ plugins for Emacs?
🗪
01:21:06impl33t Are you using any C++ plugins for Emacs?
🗪
01:21:19snubbykins Won't the game have to wait until all the assets have been decompressed before the game can start?
🗪
01:21:19snubbykins Won't the game have to wait until all the assets have been decompressed before the game can start?
🗪
01:21:19snubbykins Won't the game have to wait until all the assets have been decompressed before the game can start?
🗪
01:22:07impl33t Why are you using Windows instead of Linux?
🗪
01:22:07impl33t Why are you using Windows instead of Linux?
🗪
01:22:07impl33t Why are you using Windows instead of Linux?
🗪
01:30:58aceflameseer Can you say something on stream to get reddit angry; they're already complaining about your OOP statement
🗪
01:30:58aceflameseer Can you say something on stream to get reddit angry; they're already complaining about your OOP statement
🗪
01:30:58aceflameseer Can you say something on stream to get reddit angry; they're already complaining about your OOP statement
🗪
01:31:23impl33t But you can code on Linux for Windows very easily, right?
🗪
01:31:23impl33t But you can code on Linux for Windows very easily, right?
🗪
01:31:23impl33t But you can code on Linux for Windows very easily, right?
🗪
01:32:41We are about done for the day
🗩
01:32:41We are about done for the day
🗩
01:32:41We are about done for the day
🗩