Handmade Hero»Episode Guide
Starting on Asset System 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 cleaning up the asset system
🗩
0:01Recap and set the stage for the day cleaning up the asset system
🗩
0:01Recap and set the stage for the day cleaning up the asset system
🗩
0:58Showcase our asset editing UI with snapping functionality, setting up to implement scaling and saving
🏃
0:58Showcase our asset editing UI with snapping functionality, setting up to implement scaling and saving
🏃
0:58Showcase our asset editing UI with snapping functionality, setting up to implement scaling and saving
🏃
5:22Plans for after the asset system, making the game look more professional
🏃
5:22Plans for after the asset system, making the game look more professional
🏃
5:22Plans for after the asset system, making the game look more professional
🏃
7:14Hunt the orphanage for more cats and set Fred's alignment points
🏃
7:14Hunt the orphanage for more cats and set Fred's alignment points
🏃
7:14Hunt the orphanage for more cats and set Fred's alignment points
🏃
10:36Asset editor: Scaling
🗩
10:36Asset editor: Scaling
🗩
10:36Asset editor: Scaling
🗩
15:25Specify that entities contain their real-world size, and that the scaling information is used to adjust that size, augmenting hha_bitmap with an OrigDim
15:25Specify that entities contain their real-world size, and that the scaling information is used to adjust that size, augmenting hha_bitmap with an OrigDim
15:25Specify that entities contain their real-world size, and that the scaling information is used to adjust that size, augmenting hha_bitmap with an OrigDim
27:26Make UpdateAndRenderEntities() scale sprites using our OrigDim
27:26Make UpdateAndRenderEntities() scale sprites using our OrigDim
27:26Make UpdateAndRenderEntities() scale sprites using our OrigDim
29:03See nothing in-game, because our imported bitmaps all have OrigDim set to 0
🏃
29:03See nothing in-game, because our imported bitmaps all have OrigDim set to 0
🏃
29:03See nothing in-game, because our imported bitmaps all have OrigDim set to 0
🏃
30:02Reimport our assets
🗹
30:02Reimport our assets
🗹
30:02Reimport our assets
🗹
30:50See that our fist is now smaller, and the same size in all orientations
🏃
30:50See that our fist is now smaller, and the same size in all orientations
🏃
30:50See that our fist is now smaller, and the same size in all orientations
🏃
32:51Make UpdateAndRenderEntities() scale our sprites relative to the world dimensions
32:51Make UpdateAndRenderEntities() scale our sprites relative to the world dimensions
32:51Make UpdateAndRenderEntities() scale our sprites relative to the world dimensions
35:12Find that our cat is larger than hoped
🏃
35:12Find that our cat is larger than hoped
🏃
35:12Find that our cat is larger than hoped
🏃
35:28Fix UpdateAndRenderEntities() to unpack the sprite piece sizes
35:28Fix UpdateAndRenderEntities() to unpack the sprite piece sizes
35:28Fix UpdateAndRenderEntities() to unpack the sprite piece sizes
35:49Try out asset piece scaling
🏃
35:49Try out asset piece scaling
🏃
35:49Try out asset piece scaling
🏃
38:43Cascading scaling down to children?
🗩
38:43Cascading scaling down to children?
🗩
38:43Cascading scaling down to children?
🗩
40:42Storing Z-bias in the asset piece information?
🗩
40:42Storing Z-bias in the asset piece information?
🗩
40:42Storing Z-bias in the asset piece information?
🗩
43:50Asset editor: Save
🗩
43:50Asset editor: Save
🗩
43:50Asset editor: Save
🗩
47:37Saving scheme: "Save" and "Import & Save"
🗩
47:37Saving scheme: "Save" and "Import & Save"
🗩
47:37Saving scheme: "Save" and "Import & Save"
🗩
50:53Add an "Import & Save" button to our asset editor
50:53Add an "Import & Save" button to our asset editor
50:53Add an "Import & Save" button to our asset editor
53:52Test out our new "Import & Save" button, finding that we don't flush our textures
🏃
53:52Test out our new "Import & Save" button, finding that we don't flush our textures
🏃
53:52Test out our new "Import & Save" button, finding that we don't flush our textures
🏃
57:03Force-flushing textures on import, and generating their mipmaps in temporary buffers before uploading to the GPU
🗩
57:03Force-flushing textures on import, and generating their mipmaps in temporary buffers before uploading to the GPU
🗩
57:03Force-flushing textures on import, and generating their mipmaps in temporary buffers before uploading to the GPU
🗩
1:06:16Improving our texture loading
🗩
1:06:16Improving our texture loading
🗩
1:06:16Improving our texture loading
🗩
1:11:28Prevent LoadBitmap() from taking "Immediate" calls
1:11:28Prevent LoadBitmap() from taking "Immediate" calls
1:11:28Prevent LoadBitmap() from taking "Immediate" calls
1:13:18Continued thoughts on texture load improvements
🗩
1:13:18Continued thoughts on texture load improvements
🗩
1:13:18Continued thoughts on texture load improvements
🗩
1:14:51Make LoadBitmap() early-out if it cannot get a texture_op handle from the GPU, and allocate no memory itself
1:14:51Make LoadBitmap() early-out if it cannot get a texture_op handle from the GPU, and allocate no memory itself
1:14:51Make LoadBitmap() early-out if it cannot get a texture_op handle from the GPU, and allocate no memory itself
1:25:40Improving our texture eviction
🗩
1:25:40Improving our texture eviction
🗩
1:25:40Improving our texture eviction
🗩
1:30:35Introduce the notion of a dirtiness level (UsedGeneration) and consider purging stale textures in bulk
1:30:35Introduce the notion of a dirtiness level (UsedGeneration) and consider purging stale textures in bulk
1:30:35Introduce the notion of a dirtiness level (UsedGeneration) and consider purging stale textures in bulk
1:36:57Improving asset handles, keeping font glyphs loaded, and putting audio in its own pool
🗩
1:36:57Improving asset handles, keeping font glyphs loaded, and putting audio in its own pool
🗩
1:36:57Improving asset handles, keeping font glyphs loaded, and putting audio in its own pool
🗩
1:41:16Delete asset_memory_header and introduce an asset_audio_buffer
1:41:16Delete asset_memory_header and introduce an asset_audio_buffer
1:41:16Delete asset_memory_header and introduce an asset_audio_buffer
1:45:03Round-robin, continuous audio streaming
🗩
1:45:03Round-robin, continuous audio streaming
🗩
1:45:03Round-robin, continuous audio streaming
🗩
1:46:36Round-robin audio streaming, overwriting and marking assets as unloaded
🗩
1:46:36Round-robin audio streaming, overwriting and marking assets as unloaded
🗩
1:46:36Round-robin audio streaming, overwriting and marking assets as unloaded
🗩
1:48:18Removing asset_audio_buffer in favour of a LoadedAtSampleIndex in asset
1:48:18Removing asset_audio_buffer in favour of a LoadedAtSampleIndex in asset
1:48:18Removing asset_audio_buffer in favour of a LoadedAtSampleIndex in asset
1:48:57Streaming audio from a sliding window of an imaginary infinite buffer
🗩
1:48:57Streaming audio from a sliding window of an imaginary infinite buffer
🗩
1:48:57Streaming audio from a sliding window of an imaginary infinite buffer
🗩
1:52:12Augment game_assets with a SampleBuffer and sample indices, in preparation for our sliding window audio streaming scheme
1:52:12Augment game_assets with a SampleBuffer and sample indices, in preparation for our sliding window audio streaming scheme
1:52:12Augment game_assets with a SampleBuffer and sample indices, in preparation for our sliding window audio streaming scheme
1:53:52Make LoadFont() load the font glyphs directly, for permanent residence
1:53:52Make LoadFont() load the font glyphs directly, for permanent residence
1:53:52Make LoadFont() load the font glyphs directly, for permanent residence
2:06:36Replace LoadAssetWorkDirectly() with LoadAssetWork(), remove the asset_memory_header from asset, and make the bitmap functions use renderer_texture handles
2:06:36Replace LoadAssetWorkDirectly() with LoadAssetWork(), remove the asset_memory_header from asset, and make the bitmap functions use renderer_texture handles
2:06:36Replace LoadAssetWorkDirectly() with LoadAssetWork(), remove the asset_memory_header from asset, and make the bitmap functions use renderer_texture handles
2:15:44Q&A
🗩
2:15:44Q&A
🗩
2:15:44Q&A
🗩
2:16:12Make the bitmap functions in the entity system, asset editing UI and debug system use renderer_texture handles
2:16:12Make the bitmap functions in the entity system, asset editing UI and debug system use renderer_texture handles
2:16:12Make the bitmap functions in the entity system, asset editing UI and debug system use renderer_texture handles
2:18:59mattiamanzati Q: Sooo maybe extra stream today? And by today you mean in approximately 20h?
🗪
2:18:59mattiamanzati Q: Sooo maybe extra stream today? And by today you mean in approximately 20h?
🗪
2:18:59mattiamanzati Q: Sooo maybe extra stream today? And by today you mean in approximately 20h?
🗪
2:19:03b3zman41 Q: Could you elaborate more on what you were talking about with more intermediate data structures in object-orientation
🗪
2:19:03b3zman41 Q: Could you elaborate more on what you were talking about with more intermediate data structures in object-orientation
🗪
2:19:03b3zman41 Q: Could you elaborate more on what you were talking about with more intermediate data structures in object-orientation
🗪
2:20:30philliptrudeau Q: Near the start of the stream, I think you mentioned focusing on making the game "look more professional". Can you recap what that entails? And does that mean making some artistic decisions on-stream?
🗪
2:20:30philliptrudeau Q: Near the start of the stream, I think you mentioned focusing on making the game "look more professional". Can you recap what that entails? And does that mean making some artistic decisions on-stream?
🗪
2:20:30philliptrudeau Q: Near the start of the stream, I think you mentioned focusing on making the game "look more professional". Can you recap what that entails? And does that mean making some artistic decisions on-stream?
🗪
2:22:29ivereadthesequel Q: Oh, and Happy Krampuslauf, Casey! So, is it a specific day or ongoing? How do we celebrate it, besides trying to catch the next episode of Handmade Hero?
🗪
2:22:29ivereadthesequel Q: Oh, and Happy Krampuslauf, Casey! So, is it a specific day or ongoing? How do we celebrate it, besides trying to catch the next episode of Handmade Hero?
🗪
2:22:29ivereadthesequel Q: Oh, and Happy Krampuslauf, Casey! So, is it a specific day or ongoing? How do we celebrate it, besides trying to catch the next episode of Handmade Hero?
🗪
2:22:47longboolean Q: (A bit off-topic) If I recall correctly, you said that during the Krampuslauf streams you may do some other things like Handmade Ray. What would be the next thing to do with Handmade Ray?
🗪
2:22:47longboolean Q: (A bit off-topic) If I recall correctly, you said that during the Krampuslauf streams you may do some other things like Handmade Ray. What would be the next thing to do with Handmade Ray?
🗪
2:22:47longboolean Q: (A bit off-topic) If I recall correctly, you said that during the Krampuslauf streams you may do some other things like Handmade Ray. What would be the next thing to do with Handmade Ray?
🗪
2:23:24Wrap it up
🗩
2:23:24Wrap it up
🗩
2:23:24Wrap it up
🗩