Removing the Transient State Concept
?
?

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:01Recap and set the stage for the day continuing our renderer API cleanup, with a few general words on API design
🗩
0:01Recap and set the stage for the day continuing our renderer API cleanup, with a few general words on API design
🗩
0:01Recap and set the stage for the day continuing our renderer API cleanup, with a few general words on API design
🗩
3:03Walk through RenderLoop()
📖
3:03Walk through RenderLoop()
📖
3:03Walk through RenderLoop()
📖
5:07On offering user-controllable granularity in an API, including both low-level control of data and high-level utility functions
🗩
5:07On offering user-controllable granularity in an API, including both low-level control of data and high-level utility functions
🗩
5:07On offering user-controllable granularity in an API, including both low-level control of data and high-level utility functions
🗩
7:22Consider enforcing a maximum of one depth peel per render group, and making depth peeling a toggle
🗩
7:22Consider enforcing a maximum of one depth peel per render group, and making depth peeling a toggle
🗩
7:22Consider enforcing a maximum of one depth peel per render group, and making depth peeling a toggle
🗩
9:21Set up to make depth peeling a toggle, and consider removing the redundant notion of GenerationID which was previously used to prevent asset eviction during a frame they're being used
🗩
9:21Set up to make depth peeling a toggle, and consider removing the redundant notion of GenerationID which was previously used to prevent asset eviction during a frame they're being used
🗩
9:21Set up to make depth peeling a toggle, and consider removing the redundant notion of GenerationID which was previously used to prevent asset eviction during a frame they're being used
🗩
12:30Change OpenGLRenderCommands() to call OpenGLManageTextures() at its end, and remove GenerationID from asset_memory_header and DEBUGGetMainGenerationID()
12:30Change OpenGLRenderCommands() to call OpenGLManageTextures() at its end, and remove GenerationID from asset_memory_header and DEBUGGetMainGenerationID()
12:30Change OpenGLRenderCommands() to call OpenGLManageTextures() at its end, and remove GenerationID from asset_memory_header and DEBUGGetMainGenerationID()
20:08Run the Renderer Test and the game successfully
🏃
20:08Run the Renderer Test and the game successfully
🏃
20:08Run the Renderer Test and the game successfully
🏃
20:53A few words on multithreaded texture transfer in OpenGL
🗩
20:53A few words on multithreaded texture transfer in OpenGL
🗩
20:53A few words on multithreaded texture transfer in OpenGL
🗩
21:38Make BeginRenderGroup() and EndRenderGroup() directly call BeginDepthPeel() and EndDepthPeel() respectively, introducing render_group_flags and eliminating DrawBuffer entirely
21:38Make BeginRenderGroup() and EndRenderGroup() directly call BeginDepthPeel() and EndDepthPeel() respectively, introducing render_group_flags and eliminating DrawBuffer entirely
21:38Make BeginRenderGroup() and EndRenderGroup() directly call BeginDepthPeel() and EndDepthPeel() respectively, introducing render_group_flags and eliminating DrawBuffer entirely
41:29Change the UpdateAndRender*() functions to take RenderCommands rather than RenderGroup and themselves open a RenderGroup using the passed RenderCommands
41:29Change the UpdateAndRender*() functions to take RenderCommands rather than RenderGroup and themselves open a RenderGroup using the passed RenderCommands
41:29Change the UpdateAndRender*() functions to take RenderCommands rather than RenderGroup and themselves open a RenderGroup using the passed RenderCommands
48:54Run the Renderer Test successfully, and the game unsuccessfully, crashing in BuildSpatialPartitionForLighting()
🏃
48:54Run the Renderer Test successfully, and the game unsuccessfully, crashing in BuildSpatialPartitionForLighting()
🏃
48:54Run the Renderer Test successfully, and the game unsuccessfully, crashing in BuildSpatialPartitionForLighting()
🏃
50:29Fix UpdateAndRenderWorld() to call LightingTest() before EndRenderGroup()
50:29Fix UpdateAndRenderWorld() to call LightingTest() before EndRenderGroup()
50:29Fix UpdateAndRenderWorld() to call LightingTest() before EndRenderGroup()
52:43Run the game successfully, but crash somewhere after OpenGLRenderCommands()
🏃
52:43Run the game successfully, but crash somewhere after OpenGLRenderCommands()
🏃
52:43Run the game successfully, but crash somewhere after OpenGLRenderCommands()
🏃
53:29Subsume transient_state into game_state, cleaning out the MainGenerationID and TranArena in favour of a general FrameArena
53:29Subsume transient_state into game_state, cleaning out the MainGenerationID and TranArena in favour of a general FrameArena
53:29Subsume transient_state into game_state, cleaning out the MainGenerationID and TranArena in favour of a general FrameArena
1:21:38Run the game successfully with the transient arena merged into the frame
🏃
1:21:38Run the game successfully with the transient arena merged into the frame
🏃
1:21:38Run the game successfully with the transient arena merged into the frame
🏃
1:24:24Run the game and successfully perform hot reloading
🏃
1:24:24Run the game and successfully perform hot reloading
🏃
1:24:24Run the game and successfully perform hot reloading
🏃
1:25:46Crash in StringLength() upon trying to open the profiler, and consider not unloading DLLs
🏃
1:25:46Crash in StringLength() upon trying to open the profiler, and consider not unloading DLLs
🏃
1:25:46Crash in StringLength() upon trying to open the profiler, and consider not unloading DLLs
🏃
1:26:34Return to debugging the cutscene rendering
🏃
1:26:34Return to debugging the cutscene rendering
🏃
1:26:34Return to debugging the cutscene rendering
🏃
1:28:59Remove lighting_textures TestTextures from game_mode_world in favour of making PushLighting() allocate and return lighting_textures
1:28:59Remove lighting_textures TestTextures from game_mode_world in favour of making PushLighting() allocate and return lighting_textures
1:28:59Remove lighting_textures TestTextures from game_mode_world in favour of making PushLighting() allocate and return lighting_textures
1:32:27Run the game, crash with the lighting_textures having been freed before the renderer is invoked
🏃
1:32:27Run the game, crash with the lighting_textures having been freed before the renderer is invoked
🏃
1:32:27Run the game, crash with the lighting_textures having been freed before the renderer is invoked
🏃
1:33:20Change GameUpdateAndRender() to clear the FrameArenaTemp only right before using it
1:33:20Change GameUpdateAndRender() to clear the FrameArenaTemp only right before using it
1:33:20Change GameUpdateAndRender() to clear the FrameArenaTemp only right before using it
1:34:56Continue to debug our cutscene
🏃
1:34:56Continue to debug our cutscene
🏃
1:34:56Continue to debug our cutscene
🏃
1:36:16Change UpdateAndRenderTitleScreen() and UpdateAndRenderCutScene() to instantiate a Render_Default RenderGroup
1:36:16Change UpdateAndRenderTitleScreen() and UpdateAndRenderCutScene() to instantiate a Render_Default RenderGroup
1:36:16Change UpdateAndRenderTitleScreen() and UpdateAndRenderCutScene() to instantiate a Render_Default RenderGroup
1:36:36Run our cutscene successfully, deducing that we do not currently support a lack of depth peels
🏃
1:36:36Run our cutscene successfully, deducing that we do not currently support a lack of depth peels
🏃
1:36:36Run our cutscene successfully, deducing that we do not currently support a lack of depth peels
🏃
1:38:03Q&A
🗩
1:38:03Q&A
🗩
1:38:03Q&A
🗩
1:38:17agendoo7 handmade_hero Hi, do you use some wrist support while typing and using mouse? Does it help?
🗪
1:38:17agendoo7 handmade_hero Hi, do you use some wrist support while typing and using mouse? Does it help?
🗪
1:38:17agendoo7 handmade_hero Hi, do you use some wrist support while typing and using mouse? Does it help?
🗪
1:38:50pythno Q: Can you go through the rendering pipeline briefly, again? What are the RenderCommands and RenderGroups are used for and where do they get initialized? Then, what exactly is OpenGL doing with them?
🗪
1:38:50pythno Q: Can you go through the rendering pipeline briefly, again? What are the RenderCommands and RenderGroups are used for and where do they get initialized? Then, what exactly is OpenGL doing with them?
🗪
1:38:50pythno Q: Can you go through the rendering pipeline briefly, again? What are the RenderCommands and RenderGroups are used for and where do they get initialized? Then, what exactly is OpenGL doing with them?
🗪
1:41:49nxsy Q: Hidden triforces on the orphanage still the best
🗪
1:41:49nxsy Q: Hidden triforces on the orphanage still the best
🗪
1:41:49nxsy Q: Hidden triforces on the orphanage still the best
🗪
1:42:11nordicplayer Q: How can I start in game development, without knowing much about C++? How did you do it?
🗪
1:42:11nordicplayer Q: How can I start in game development, without knowing much about C++? How did you do it?
🗪
1:42:11nordicplayer Q: How can I start in game development, without knowing much about C++? How did you do it?
🗪
1:48:28rale_2 Q: Can you recommend any game / engine source code that would be helpful to look over for general architecture, e.g. the Doom engine, etc?
🗪
1:48:28rale_2 Q: Can you recommend any game / engine source code that would be helpful to look over for general architecture, e.g. the Doom engine, etc?
🗪
1:48:28rale_2 Q: Can you recommend any game / engine source code that would be helpful to look over for general architecture, e.g. the Doom engine, etc?
🗪
1:49:32chainelove Q: As a reference, can you disclose how much you paid the artist for Handmade Hero (a general idea of it)?
🗪
1:49:32chainelove Q: As a reference, can you disclose how much you paid the artist for Handmade Hero (a general idea of it)?
🗪
1:49:32chainelove Q: As a reference, can you disclose how much you paid the artist for Handmade Hero (a general idea of it)?
🗪
1:52:45pythno Q: Quake 2 is pretty interesting to go through. Does it matter that much that it is not multithreaded, because at least it is only around 120k lines of code and with Fabien's overview it is a good starting point, I guess?
🗪
1:52:45pythno Q: Quake 2 is pretty interesting to go through. Does it matter that much that it is not multithreaded, because at least it is only around 120k lines of code and with Fabien's overview it is a good starting point, I guess?
🗪
1:52:45pythno Q: Quake 2 is pretty interesting to go through. Does it matter that much that it is not multithreaded, because at least it is only around 120k lines of code and with Fabien's overview it is a good starting point, I guess?
🗪
1:54:31ivereadthesequel Q: Super off-topic, but as someone who is older and perhaps a lot more experienced than someone like me who is younger: do you have anything to say regarding interpersonal issues? Ever encounter people giving you issues, being rude? Even absolute bullies? Do you have any advice for that if one encounters that even as an adult in university or at their job?
🗪
1:54:31ivereadthesequel Q: Super off-topic, but as someone who is older and perhaps a lot more experienced than someone like me who is younger: do you have anything to say regarding interpersonal issues? Ever encounter people giving you issues, being rude? Even absolute bullies? Do you have any advice for that if one encounters that even as an adult in university or at their job?
🗪
1:54:31ivereadthesequel Q: Super off-topic, but as someone who is older and perhaps a lot more experienced than someone like me who is younger: do you have anything to say regarding interpersonal issues? Ever encounter people giving you issues, being rude? Even absolute bullies? Do you have any advice for that if one encounters that even as an adult in university or at their job?
🗪
1:56:57garryjohanson Q: I'll go ahead and recommend Doom 3 as a learning engine since, from what I can tell, it meets all the criteria you just suggested: on a modern API, has multithreading
🗪
1:56:57garryjohanson Q: I'll go ahead and recommend Doom 3 as a learning engine since, from what I can tell, it meets all the criteria you just suggested: on a modern API, has multithreading
🗪
1:56:57garryjohanson Q: I'll go ahead and recommend Doom 3 as a learning engine since, from what I can tell, it meets all the criteria you just suggested: on a modern API, has multithreading
🗪
1:58:36centhusiast Q: Do you think the performance of the game would be fine on the Intel iGPU or in general the integrated GPU?
🗪
🏃
1:58:36centhusiast Q: Do you think the performance of the game would be fine on the Intel iGPU or in general the integrated GPU?
🗪
🏃
1:58:36centhusiast Q: Do you think the performance of the game would be fine on the Intel iGPU or in general the integrated GPU?
🗪
🏃
2:02:09Shut it down1,2
🗩
2:02:09Shut it down1,2
🗩
2:02:09Shut it down1,2
🗩