Stacking Rooms for Z Layer Debugging ⚠ Click here to regain focus ⚠
?
?

## Global Keys

W, K, P / S, J, N Jump to previous / next marker
t / T Toggle theatre / SUPERtheatre mode
z Toggle filter mode V Revert filter to original state

q Quotes r References f Filter c Credits

a
w
s
d
h j k l

## Quotes, References and Credits Menus

o Open URL (in new tab)

x, Space Toggle category and focus next
X, ShiftSpace Toggle category and focus previous
v Invert topics / media as per focus

Enter Open URL (in new tab)
0:11On determining which systems impact many other systems, and solidifying them early on
0:11On determining which systems impact many other systems, and solidifying them early on
0:11On determining which systems impact many other systems, and solidifying them early on
2:45What Mike Acton had to say about the potential costliness of some game design decisions1
2:45What Mike Acton had to say about the potential costliness of some game design decisions1
2:45What Mike Acton had to say about the potential costliness of some game design decisions1
7:43Recap our current situation and set the stage for solidifying Z
7:43Recap our current situation and set the stage for solidifying Z
7:43Recap our current situation and set the stage for solidifying Z
15:59Run the game and traverse the offset stairs
15:59Run the game and traverse the offset stairs
15:59Run the game and traverse the offset stairs
16:31handmade_world_mode.cpp: Make PlayWorld generate more layers of rooms
16:31handmade_world_mode.cpp: Make PlayWorld generate more layers of rooms
16:31handmade_world_mode.cpp: Make PlayWorld generate more layers of rooms
17:18Run the game and see the multiple layers
17:18Run the game and see the multiple layers
17:18Run the game and see the multiple layers
18:14handmade_world_mode.cpp: Expand the TraversablePoint rectangles to fill the tiles and give them outlines
18:14handmade_world_mode.cpp: Expand the TraversablePoint rectangles to fill the tiles and give them outlines
18:14handmade_world_mode.cpp: Expand the TraversablePoint rectangles to fill the tiles and give them outlines
22:30handmade_render_group.cpp: Make PushRect multiply the Color by GlobalAlpha
22:30handmade_render_group.cpp: Make PushRect multiply the Color by GlobalAlpha
22:30handmade_render_group.cpp: Make PushRect multiply the Color by GlobalAlpha
22:51Run the game and see that we're already in pretty good shape, but need to more clearly specify Z
22:51Run the game and see that we're already in pretty good shape, but need to more clearly specify Z
22:51Run the game and see that we're already in pretty good shape, but need to more clearly specify Z
29:15Run the game and look down through the hole
29:15Run the game and look down through the hole
29:15Run the game and look down through the hole
30:01The snake just went up the stairsα
30:01The snake just went up the stairsα
30:01The snake just went up the stairsα
30:24handmade_world_mode.cpp: Make UpdateAndRenderWorld draw the tiles green
30:24handmade_world_mode.cpp: Make UpdateAndRenderWorld draw the tiles green
30:24handmade_world_mode.cpp: Make UpdateAndRenderWorld draw the tiles green
31:37Run the game and consider the problem with drawing down so far
31:37Run the game and consider the problem with drawing down so far
31:37Run the game and consider the problem with drawing down so far
34:21Profiler: Note that BeginSim and UpdateAndRenderWorld are slow
34:21Profiler: Note that BeginSim and UpdateAndRenderWorld are slow
34:21Profiler: Note that BeginSim and UpdateAndRenderWorld are slow
38:28build.bat: Switch to -O2 find that we're now running at 60 FPS
38:28build.bat: Switch to -O2 find that we're now running at 60 FPS
38:28build.bat: Switch to -O2 find that we're now running at 60 FPS
39:59Profiler: Switch to the software renderer
39:59Profiler: Switch to the software renderer
39:59Profiler: Switch to the software renderer
44:12Run the game, view those timings and find that brains are not taking much time
44:12Run the game, view those timings and find that brains are not taking much time
44:12Run the game, view those timings and find that brains are not taking much time
45:04handmade_debug.cpp: Make DrawTopClocksList calculate and display a cumulative percentage
45:04handmade_debug.cpp: Make DrawTopClocksList calculate and display a cumulative percentage
45:04handmade_debug.cpp: Make DrawTopClocksList calculate and display a cumulative percentage
52:06Debugger: Step into DrawTopClocksList and find and investigate why our TextRect is not valid
52:06Debugger: Step into DrawTopClocksList and find and investigate why our TextRect is not valid
52:06Debugger: Step into DrawTopClocksList and find and investigate why our TextRect is not valid
54:56handmade_debug.cpp: Make DrawTopClocksList set TextRect off GetTextSize
54:56handmade_debug.cpp: Make DrawTopClocksList set TextRect off GetTextSize
54:56handmade_debug.cpp: Make DrawTopClocksList set TextRect off GetTextSize
55:59handmade_debug_ui.cpp: Introduce a version of GetTextSize that takes a v2 At
55:59handmade_debug_ui.cpp: Introduce a version of GetTextSize that takes a v2 At
55:59handmade_debug_ui.cpp: Introduce a version of GetTextSize that takes a v2 At
58:40handmade_debug.cpp: Make ToolTipTransform appear above everything
58:40handmade_debug.cpp: Make ToolTipTransform appear above everything
58:40handmade_debug.cpp: Make ToolTipTransform appear above everything
1:00:28Run the game and view our tooltip
1:00:28Run the game and view our tooltip
1:00:28Run the game and view our tooltip
1:03:17handmade_sim_region.cpp: Make the PushArray calls in BeginSim do NoClear, and check that all of the necessary data is initialised
1:03:17handmade_sim_region.cpp: Make the PushArray calls in BeginSim do NoClear, and check that all of the necessary data is initialised
1:03:17handmade_sim_region.cpp: Make the PushArray calls in BeginSim do NoClear, and check that all of the necessary data is initialised
1:05:42Profiler: Find that BeginSim no longer takes so much time
1:05:42Profiler: Find that BeginSim no longer takes so much time
1:05:42Profiler: Find that BeginSim no longer takes so much time
1:06:52handmade_world_mode.cpp: Add BEGIN_BLOCK and END_BLOCK pairs for EntityRendering and EntityPhysics in UpdateAndRenderWorld
1:06:52handmade_world_mode.cpp: Add BEGIN_BLOCK and END_BLOCK pairs for EntityRendering and EntityPhysics in UpdateAndRenderWorld
1:06:52handmade_world_mode.cpp: Add BEGIN_BLOCK and END_BLOCK pairs for EntityRendering and EntityPhysics in UpdateAndRenderWorld
1:08:18Profiler: Find that EntityRendering is taking up the lion's share of the time
1:08:18Profiler: Find that EntityRendering is taking up the lion's share of the time
1:08:18Profiler: Find that EntityRendering is taking up the lion's share of the time
1:11:07handmade_world_mode.cpp: Move the EntityRendering block down to look only at the Piece list
1:11:07handmade_world_mode.cpp: Move the EntityRendering block down to look only at the Piece list
1:11:07handmade_world_mode.cpp: Move the EntityRendering block down to look only at the Piece list
1:11:36handmade_world_mode.cpp: Add BEGIN_BLOCK and END_BLOCK pairs for CollisionRendering, VectorClear, and HitpointRendering in UpdateAndRenderWorld
1:11:36handmade_world_mode.cpp: Add BEGIN_BLOCK and END_BLOCK pairs for CollisionRendering, VectorClear, and HitpointRendering in UpdateAndRenderWorld
1:11:36handmade_world_mode.cpp: Add BEGIN_BLOCK and END_BLOCK pairs for CollisionRendering, VectorClear, and HitpointRendering in UpdateAndRenderWorld
1:12:33Profiler: Find that CollisionRendering is the hog
1:12:33Profiler: Find that CollisionRendering is the hog
1:12:33Profiler: Find that CollisionRendering is the hog
1:12:47handmade_world_mode.cpp: Add BEGIN_BLOCK and END_BLOCK pairs for VolumeRendering and TraversableRendering in UpdateAndRenderWorld
1:12:47handmade_world_mode.cpp: Add BEGIN_BLOCK and END_BLOCK pairs for VolumeRendering and TraversableRendering in UpdateAndRenderWorld
1:12:47handmade_world_mode.cpp: Add BEGIN_BLOCK and END_BLOCK pairs for VolumeRendering and TraversableRendering in UpdateAndRenderWorld
1:13:34Profiler: Find that TraversableRendering is the most expensive
1:13:34Profiler: Find that TraversableRendering is the most expensive
1:13:34Profiler: Find that TraversableRendering is the most expensive
1:14:33handmade_world_mode.cpp: #if 0 the PushRectOutline calls for the traversables
1:14:33handmade_world_mode.cpp: #if 0 the PushRectOutline calls for the traversables
1:14:33handmade_world_mode.cpp: #if 0 the PushRectOutline calls for the traversables
1:15:35Consider turning on the optimiser just for these traversable drawing routines or blowing out the PushRect functions to be more explicit
1:15:35Consider turning on the optimiser just for these traversable drawing routines or blowing out the PushRect functions to be more explicit
1:15:35Consider turning on the optimiser just for these traversable drawing routines or blowing out the PushRect functions to be more explicit
1:16:19Q&A
🗩
1:16:19Q&A
🗩
1:16:19Q&A
🗩
1:17:21 insobot Do you have a question for me?
🗪
1:17:21 insobot Do you have a question for me?
🗪
1:17:21 insobot Do you have a question for me?
🗪
1:17:28 cmuratori: Duuuuude
🗪
1:17:28 cmuratori: Duuuuude
🗪
1:17:28 cmuratori: Duuuuude
🗪
1:17:34 How much longer does it take to build Handmade Hero with release optimizations?
🗪
1:17:34 How much longer does it take to build Handmade Hero with release optimizations?
🗪
1:17:34 How much longer does it take to build Handmade Hero with release optimizations?
🗪
1:18:24Debugger: Demo the insufficiency of MSVC's debug information in optimised builds
1:18:24Debugger: Demo the insufficiency of MSVC's debug information in optimised builds
1:18:24Debugger: Demo the insufficiency of MSVC's debug information in optimised builds
1:22:59 The switch is -Zo
🗪
1:22:59 The switch is -Zo
🗪
1:22:59 The switch is -Zo
🗪
1:23:46 I missed the optimization due to buffering but I caught some stuff about the clear being bloated, but didn't catch what the fix was?
🗪
1:23:46 I missed the optimization due to buffering but I caught some stuff about the clear being bloated, but didn't catch what the fix was?
🗪
1:23:46 I missed the optimization due to buffering but I caught some stuff about the clear being bloated, but didn't catch what the fix was?
🗪
1:24:13 Far-away floors turning transparent don't look quite right since you can see through them
🗪
1:24:13 Far-away floors turning transparent don't look quite right since you can see through them
🗪
1:24:13 Far-away floors turning transparent don't look quite right since you can see through them
🗪
1:24:43 When peering down the hole at the more transparent layers, you can see characters through those ground layers. My guess is you would want to mix with a "fog color" instead of just making the tiles transparent?
🗪
1:24:43 When peering down the hole at the more transparent layers, you can see characters through those ground layers. My guess is you would want to mix with a "fog color" instead of just making the tiles transparent?
🗪
1:24:43 When peering down the hole at the more transparent layers, you can see characters through those ground layers. My guess is you would want to mix with a "fog color" instead of just making the tiles transparent?
🗪
1:25:24 Would LLVM work on Windows / Handmade Hero?
🗪
1:25:24 Would LLVM work on Windows / Handmade Hero?
🗪
1:25:24 Would LLVM work on Windows / Handmade Hero?
🗪
1:27:18 What editor is most similar to 4coder, and how long did it take to pick it up?
🗪
1:27:18 What editor is most similar to 4coder, and how long did it take to pick it up?
🗪
1:27:18 What editor is most similar to 4coder, and how long did it take to pick it up?
🗪
1:28:22 Having many levels of rooms and having entities in each level actively executing, wouldn't that be heavy / expensive? Or have you think in a performance solution or a level limitation?
🗪
1:28:22 Having many levels of rooms and having entities in each level actively executing, wouldn't that be heavy / expensive? Or have you think in a performance solution or a level limitation?
🗪
1:28:22 Having many levels of rooms and having entities in each level actively executing, wouldn't that be heavy / expensive? Or have you think in a performance solution or a level limitation?
🗪
1:29:17 Is there a way to tell the compiler to optimize just a particular section of the code? If not, how would you work around that?
🗪
1:29:17 Is there a way to tell the compiler to optimize just a particular section of the code? If not, how would you work around that?
🗪
1:29:17 Is there a way to tell the compiler to optimize just a particular section of the code? If not, how would you work around that?
🗪
1:31:07 Clang++ is worse. Honestly, why can't the PDB just say "Hey, you are at this instruction? Okay, the value is in this register / address or whatever"?
🗪
1:31:07 Clang++ is worse. Honestly, why can't the PDB just say "Hey, you are at this instruction? Okay, the value is in this register / address or whatever"?
🗪
1:31:07 Clang++ is worse. Honestly, why can't the PDB just say "Hey, you are at this instruction? Okay, the value is in this register / address or whatever"?
🗪
1:33:46Wind it down
🗩
1:33:46Wind it down
🗩
1:33:46Wind it down
🗩