Handmade Hero»Episode Guide
Prefetching Cutscene Layers
?
?

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)
1:24Recap, run the game and point out an objectionable artifact
1:24Recap, run the game and point out an objectionable artifact
1:24Recap, run the game and point out an objectionable artifact
3:14Debugger: Step into RenderCutScene and note the unset State of the Asset
3:14Debugger: Step into RenderCutScene and note the unset State of the Asset
3:14Debugger: Step into RenderCutScene and note the unset State of the Asset
6:12handmade.cpp: Play the cutscene back at an artificially fast rate
6:12handmade.cpp: Play the cutscene back at an artificially fast rate
6:12handmade.cpp: Play the cutscene back at an artificially fast rate
6:49handmade_cutscene.cpp: Introduce RenderCutsceneAtTime
6:49handmade_cutscene.cpp: Introduce RenderCutsceneAtTime
6:49handmade_cutscene.cpp: Introduce RenderCutsceneAtTime
9:25handmade_cutscene.cpp: Do an additional RenderCutsceneAtTime in RenderCutscene, passing 0 as the RenderGroup in order to do a PrefetchBitmap
9:25handmade_cutscene.cpp: Do an additional RenderCutsceneAtTime in RenderCutscene, passing 0 as the RenderGroup in order to do a PrefetchBitmap
9:25handmade_cutscene.cpp: Do an additional RenderCutsceneAtTime in RenderCutscene, passing 0 as the RenderGroup in order to do a PrefetchBitmap
11:49Run the cutscene and see how it works
11:49Run the cutscene and see how it works
11:49Run the cutscene and see how it works
12:24cmuratori Do you guys know why there's [a glitch] on the beginning one?
🗪
12:24cmuratori Do you guys know why there's [a glitch] on the beginning one?
🗪
12:24cmuratori Do you guys know why there's [a glitch] on the beginning one?
🗪
13:23handmade_cutscene.cpp: Create an initial black Shot lasting 20 (artificially accelerated) seconds
13:23handmade_cutscene.cpp: Create an initial black Shot lasting 20 (artificially accelerated) seconds
13:23handmade_cutscene.cpp: Create an initial black Shot lasting 20 (artificially accelerated) seconds
14:20"n{un,one}?"α
14:20"n{un,one}?"α
14:20"n{un,one}?"α
15:28Run the cutscene and see the delay
15:28Run the cutscene and see the delay
15:28Run the cutscene and see the delay
16:17handmade.cpp: Play the cutscene back at the natural rate
16:17handmade.cpp: Play the cutscene back at the natural rate
16:17handmade.cpp: Play the cutscene back at the natural rate
17:20win32_handmade.cpp: ToggleFullscreen on and watch the result
17:20win32_handmade.cpp: ToggleFullscreen on and watch the result
17:20win32_handmade.cpp: ToggleFullscreen on and watch the result
18:24handmade_cutscene.cpp: #define CUTSCENE_WARMUP_SECONDS
18:24handmade_cutscene.cpp: #define CUTSCENE_WARMUP_SECONDS
18:24handmade_cutscene.cpp: #define CUTSCENE_WARMUP_SECONDS
18:55win32_handmade.cpp: Issue a Clear if the LayerCount == 0
18:55win32_handmade.cpp: Issue a Clear if the LayerCount == 0
18:55win32_handmade.cpp: Issue a Clear if the LayerCount == 0
20:11win32_handmade.cpp: Figure out why the flicker is happening
20:11win32_handmade.cpp: Figure out why the flicker is happening
20:11win32_handmade.cpp: Figure out why the flicker is happening
21:25Internet: VirtualAlloc1
21:25Internet: VirtualAlloc1
21:25Internet: VirtualAlloc1
23:12Debugger: Step into Win32ResizeDIBSection and inspect Buffer->Memory
23:12Debugger: Step into Win32ResizeDIBSection and inspect Buffer->Memory
23:12Debugger: Step into Win32ResizeDIBSection and inspect Buffer->Memory
23:50Internet: GetStockObject function2
23:50Internet: GetStockObject function2
23:50Internet: GetStockObject function2
25:57win32_handmade.cpp: Draw the window background with GetStockObject(BLACK_BRUSH)
25:57win32_handmade.cpp: Draw the window background with GetStockObject(BLACK_BRUSH)
25:57win32_handmade.cpp: Draw the window background with GetStockObject(BLACK_BRUSH)
26:12Run the cut scene and see that the startup experience is pretty nice
26:12Run the cut scene and see that the startup experience is pretty nice
26:12Run the cut scene and see that the startup experience is pretty nice
26:43win32_handmade.cpp: Create the window without it being visible
26:43win32_handmade.cpp: Create the window without it being visible
26:43win32_handmade.cpp: Create the window without it being visible
27:39Consider possible directions
27:39Consider possible directions
27:39Consider possible directions
30:08handmade.cpp: Toggle back to the game and illustrate the concept of the game getting started
30:08handmade.cpp: Toggle back to the game and illustrate the concept of the game getting started
30:08handmade.cpp: Toggle back to the game and illustrate the concept of the game getting started
32:21handmade.h: Provide the ability to switch between the cutscene and the game
32:21handmade.h: Provide the ability to switch between the cutscene and the game
32:21handmade.h: Provide the ability to switch between the cutscene and the game
33:29Run the game, join it and note the need to prefetch the game assets
33:29Run the game, join it and note the need to prefetch the game assets
33:29Run the game, join it and note the need to prefetch the game assets
34:34handmade.cpp: Introduce DeleteLowEntity to be called upon pressing Esc
34:34handmade.cpp: Introduce DeleteLowEntity to be called upon pressing Esc
34:34handmade.cpp: Introduce DeleteLowEntity to be called upon pressing Esc
38:08Run the game and try killing the hero
38:08Run the game and try killing the hero
38:08Run the game and try killing the hero
38:46handmade.cpp and handmade_platform.h: Provide the ability to exit the game
38:46handmade.cpp and handmade_platform.h: Provide the ability to exit the game
38:46handmade.cpp and handmade_platform.h: Provide the ability to exit the game
42:18Run the game and try exiting it
42:18Run the game and try exiting it
42:18Run the game and try exiting it
42:35handmade.cpp: Check to see if the Esc key WasPressed
42:35handmade.cpp: Check to see if the Esc key WasPressed
42:35handmade.cpp: Check to see if the Esc key WasPressed
43:44Run the game and test the exiting
43:44Run the game and test the exiting
43:44Run the game and test the exiting
43:59handmade_cutscene.h: Introduce struct playing_cutscene to formalise what the cutscene is doing
43:59handmade_cutscene.h: Introduce struct playing_cutscene to formalise what the cutscene is doing
43:59handmade_cutscene.h: Introduce struct playing_cutscene to formalise what the cutscene is doing
45:42handmade_cutscene.cpp: Introduce MakeIntroCutscene
45:42handmade_cutscene.cpp: Introduce MakeIntroCutscene
45:42handmade_cutscene.cpp: Introduce MakeIntroCutscene
47:17handmade_cutscene.cpp: Pass in the CutScene to RenderCutscene
47:17handmade_cutscene.cpp: Pass in the CutScene to RenderCutscene
47:17handmade_cutscene.cpp: Pass in the CutScene to RenderCutscene
49:21handmade.h: Initialise CurrentCutscene
49:21handmade.h: Initialise CurrentCutscene
49:21handmade.h: Initialise CurrentCutscene
50:56handmade_cutscene.cpp: Note that the cutscene will no longer be hot reloadable
50:56handmade_cutscene.cpp: Note that the cutscene will no longer be hot reloadable
50:56handmade_cutscene.cpp: Note that the cutscene will no longer be hot reloadable
51:59handmade_cutscene.cpp: AdvanceCutscene to allow multiple cutscenes
51:59handmade_cutscene.cpp: AdvanceCutscene to allow multiple cutscenes
51:59handmade_cutscene.cpp: AdvanceCutscene to allow multiple cutscenes
52:29Run the game, test our new functionality and consider making the cutscenes reset
52:29Run the game, test our new functionality and consider making the cutscenes reset
52:29Run the game, test our new functionality and consider making the cutscenes reset
54:40Q&A
🗩
54:40Q&A
🗩
54:40Q&A
🗩
55:17insofaras Would adding a BlockUntilLoaded style function be a good idea to make sure even slower computers have all layers loaded before the scene starts?
🗪
55:17insofaras Would adding a BlockUntilLoaded style function be a good idea to make sure even slower computers have all layers loaded before the scene starts?
🗪
55:17insofaras Would adding a BlockUntilLoaded style function be a good idea to make sure even slower computers have all layers loaded before the scene starts?
🗪
55:54handmade_cutscene.cpp: Turn off the prefetches
55:54handmade_cutscene.cpp: Turn off the prefetches
55:54handmade_cutscene.cpp: Turn off the prefetches
57:07handmade.cpp: Check for AllResourcesPresent before doing TiledRenderGroupToOutput
57:07handmade.cpp: Check for AllResourcesPresent before doing TiledRenderGroupToOutput
57:07handmade.cpp: Check for AllResourcesPresent before doing TiledRenderGroupToOutput
58:48cubercaleb Isn't there a way to clear the back buffer using SIMD?
🗪
58:48cubercaleb Isn't there a way to clear the back buffer using SIMD?
🗪
58:48cubercaleb Isn't there a way to clear the back buffer using SIMD?
🗪
59:21ijustwantfood Will there be any animated cutscenes or just zooming shots?
🗪
59:21ijustwantfood Will there be any animated cutscenes or just zooming shots?
🗪
59:21ijustwantfood Will there be any animated cutscenes or just zooming shots?
🗪
59:39Fyoucon Can you do a cloc?
🗪
59:39Fyoucon Can you do a cloc?
🗪
59:39Fyoucon Can you do a cloc?
🗪
1:00:05Miblo Would it be possible to fade from the desktop to the game's initial black screen? Failing that, I think it'd be cool if we fade into the cut scene from the black, and then back to black when we quit the game
🗪
1:00:05Miblo Would it be possible to fade from the desktop to the game's initial black screen? Failing that, I think it'd be cool if we fade into the cut scene from the black, and then back to black when we quit the game
🗪
1:00:05Miblo Would it be possible to fade from the desktop to the game's initial black screen? Failing that, I think it'd be cool if we fade into the cut scene from the black, and then back to black when we quit the game
🗪
1:01:42win32_handmade.cpp: Introduce FadeOut
1:01:42win32_handmade.cpp: Introduce FadeOut
1:01:42win32_handmade.cpp: Introduce FadeOut
1:04:30Internet: UpdateLayeredWindow3
1:04:30Internet: UpdateLayeredWindow3
1:04:30Internet: UpdateLayeredWindow3
1:16:55Shut it down
🗩
1:16:55Shut it down
🗩
1:16:55Shut it down
🗩