Handmade Hero»Episode Guide
Debug UI State Caching
?
?

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:59Recap our current situation
0:59Recap our current situation
0:59Recap our current situation
2:19Blackboard: Breadth-first vs depth-first tree traversal
2:19Blackboard: Breadth-first vs depth-first tree traversal
2:19Blackboard: Breadth-first vs depth-first tree traversal
8:46Debugger: Step into DEBUGDrawMainMenu and hunt for the hierarchy
8:46Debugger: Step into DEBUGDrawMainMenu and hunt for the hierarchy
8:46Debugger: Step into DEBUGDrawMainMenu and hunt for the hierarchy
13:25handmade_debug_variables.h: Make DEBUGAddVariable call the correct Context
13:25handmade_debug_variables.h: Make DEBUGAddVariable call the correct Context
13:25handmade_debug_variables.h: Make DEBUGAddVariable call the correct Context
13:38handmade_config.h: Manually rewrite the config
13:38handmade_config.h: Manually rewrite the config
13:38handmade_config.h: Manually rewrite the config
14:42Debugger: Step through and hit a first-chance exception
14:42Debugger: Step through and hit a first-chance exception
14:42Debugger: Step through and hit a first-chance exception
15:20Debugger: Inspect the DebugState->RootGroup
15:20Debugger: Inspect the DebugState->RootGroup
15:20Debugger: Inspect the DebugState->RootGroup
16:33handmade_debug_variables.h: Set Link->Var in DEBUGAddVariableToGroup
16:33handmade_debug_variables.h: Set Link->Var in DEBUGAddVariableToGroup
16:33handmade_debug_variables.h: Set Link->Var in DEBUGAddVariableToGroup
16:49Run the game and find it's looking a little bit better
16:49Run the game and find it's looking a little bit better
16:49Run the game and find it's looking a little bit better
17:19handmade_config.h: Ensure that the write-out worked correctly
17:19handmade_config.h: Ensure that the write-out worked correctly
17:19handmade_config.h: Ensure that the write-out worked correctly
17:43handmade_debug.cpp: Test for View->Collapsible.ExpandedAlways to be true
17:43handmade_debug.cpp: Test for View->Collapsible.ExpandedAlways to be true
17:43handmade_debug.cpp: Test for View->Collapsible.ExpandedAlways to be true
19:17Run the game and find that everything is collapsed
19:17Run the game and find that everything is collapsed
19:17Run the game and find that everything is collapsed
19:37handmade_debug.h and handmade_debug.cpp: Add debug_view Dummy to debug_state and make GetDebugViewFor return it
19:37handmade_debug.h and handmade_debug.cpp: Add debug_view Dummy to debug_state and make GetDebugViewFor return it
19:37handmade_debug.h and handmade_debug.cpp: Add debug_view Dummy to debug_state and make GetDebugViewFor return it
20:10Run the game and see the debug menu expand briefly
20:10Run the game and see the debug menu expand briefly
20:10Run the game and see the debug menu expand briefly
20:28handmade_debug.cpp: Finish implementing GetDebugViewFor
20:28handmade_debug.cpp: Finish implementing GetDebugViewFor
20:28handmade_debug.cpp: Finish implementing GetDebugViewFor
24:29Run the game and see that it's almost working fine
24:29Run the game and see that it's almost working fine
24:29Run the game and see that it's almost working fine
24:45handmade_debug.h: Consider storing the debug_view in debug_variable_link
24:45handmade_debug.h: Consider storing the debug_view in debug_variable_link
24:45handmade_debug.h: Consider storing the debug_view in debug_variable_link
26:55handmade_debug.h: Introduce debug_id
26:55handmade_debug.h: Introduce debug_id
26:55handmade_debug.h: Introduce debug_id
27:51handmade_debug.cpp: Pass ViewID to GetDebugViewFor
27:51handmade_debug.cpp: Pass ViewID to GetDebugViewFor
27:51handmade_debug.cpp: Pass ViewID to GetDebugViewFor
28:21handmade_debug.cpp: Introduce DebugIDFromLink
28:21handmade_debug.cpp: Introduce DebugIDFromLink
28:21handmade_debug.cpp: Introduce DebugIDFromLink
29:15handmade_debug.h: Add debug_id ID and debug_variable *Var to debug_interaction
29:15handmade_debug.h: Add debug_id ID and debug_variable *Var to debug_interaction
29:15handmade_debug.h: Add debug_id ID and debug_variable *Var to debug_interaction
30:12handmade_debug.cpp: Revert the code in DEBUGEndInteract and DEBUGInteract
30:12handmade_debug.cpp: Revert the code in DEBUGEndInteract and DEBUGInteract
30:12handmade_debug.cpp: Revert the code in DEBUGEndInteract and DEBUGInteract
31:07handmade_debug.cpp: Introduce VarLinkInteraction in order to compress these routines
31:07handmade_debug.cpp: Introduce VarLinkInteraction in order to compress these routines
31:07handmade_debug.cpp: Introduce VarLinkInteraction in order to compress these routines
33:48handmade_debug.h: Add debug_view *ViewHash to debug_state
33:48handmade_debug.h: Add debug_view *ViewHash to debug_state
33:48handmade_debug.h: Add debug_view *ViewHash to debug_state
35:40handmade_debug.cpp: Implement a hash function in GetDebugViewFor
35:40handmade_debug.cpp: Implement a hash function in GetDebugViewFor
35:40handmade_debug.cpp: Implement a hash function in GetDebugViewFor
40:33handmade_debug.cpp: Introduce DebugIDsAreEqual
40:33handmade_debug.cpp: Introduce DebugIDsAreEqual
40:33handmade_debug.cpp: Introduce DebugIDsAreEqual
41:25Run the game and see that our stuff works, except for indentation
41:25Run the game and see that our stuff works, except for indentation
41:25Run the game and see that our stuff works, except for indentation
42:29handmade_debug.cpp: Set the Layout.Depth in order to fix the indentation
42:29handmade_debug.cpp: Set the Layout.Depth in order to fix the indentation
42:29handmade_debug.cpp: Set the Layout.Depth in order to fix the indentation
43:48Run the game and see that the indentation is working pretty well
43:48Run the game and see that the indentation is working pretty well
43:48Run the game and see that the indentation is working pretty well
44:42handmade_debug_variables.h: Investigate why the Real32 isn't working correctly
44:42handmade_debug_variables.h: Investigate why the Real32 isn't working correctly
44:42handmade_debug_variables.h: Investigate why the Real32 isn't working correctly
46:08handmade_config.h: Try manually adding .0f to DebugCameraDistance
46:08handmade_config.h: Try manually adding .0f to DebugCameraDistance
46:08handmade_config.h: Try manually adding .0f to DebugCameraDistance
46:35Run the game and find that DebugCameraDistance is working
46:35Run the game and find that DebugCameraDistance is working
46:35Run the game and find that DebugCameraDistance is working
47:07handmade_debug.cpp: Reimplement tear-offs
47:07handmade_debug.cpp: Reimplement tear-offs
47:07handmade_debug.cpp: Reimplement tear-offs
50:27handmade_debug_variables.h: Introduce DEBUGAddVariableToDefaultGroup
50:27handmade_debug_variables.h: Introduce DEBUGAddVariableToDefaultGroup
50:27handmade_debug_variables.h: Introduce DEBUGAddVariableToDefaultGroup
51:30Run the game and find that the tear-off behaves as it did before
51:30Run the game and find that the tear-off behaves as it did before
51:30Run the game and find that the tear-off behaves as it did before
52:18handmade_debug.cpp: Grab the correct group in DEBUGDrawMainMenu
52:18handmade_debug.cpp: Grab the correct group in DEBUGDrawMainMenu
52:18handmade_debug.cpp: Grab the correct group in DEBUGDrawMainMenu
53:38Run the game and tear off specific values
53:38Run the game and tear off specific values
53:38Run the game and tear off specific values
54:18handmade_debug.h: Make DebugIDFromLink and VarLinkInteraction take the Tree
54:18handmade_debug.h: Make DebugIDFromLink and VarLinkInteraction take the Tree
54:18handmade_debug.h: Make DebugIDFromLink and VarLinkInteraction take the Tree
55:35Run the game and see that the state is isolated
55:35Run the game and see that the state is isolated
55:35Run the game and see that the state is isolated
56:38Recap today's work
56:38Recap today's work
56:38Recap today's work
57:50Q&A
🗩
57:50Q&A
🗩
57:50Q&A
🗩
58:14mykevelli Pure design question. In GetDebugViewFor() your method is named such that it's a query but it appears to be a command in some cases (in that it changes the state of the system). I've heard that you typically want to avoid this. Do you agree? Is there a reason you did this?
🗪
58:14mykevelli Pure design question. In GetDebugViewFor() your method is named such that it's a query but it appears to be a command in some cases (in that it changes the state of the system). I've heard that you typically want to avoid this. Do you agree? Is there a reason you did this?
🗪
58:14mykevelli Pure design question. In GetDebugViewFor() your method is named such that it's a query but it appears to be a command in some cases (in that it changes the state of the system). I've heard that you typically want to avoid this. Do you agree? Is there a reason you did this?
🗪
59:53elxenoaizd Do you think learning all the algorithms and data structures is a must, or is it OK to learn them when the need for one of them rises? Or is it one of those things that you have to learn beforehand in order to know if you need them or not?
🗪
59:53elxenoaizd Do you think learning all the algorithms and data structures is a must, or is it OK to learn them when the need for one of them rises? Or is it one of those things that you have to learn beforehand in order to know if you need them or not?
🗪
59:53elxenoaizd Do you think learning all the algorithms and data structures is a must, or is it OK to learn them when the need for one of them rises? Or is it one of those things that you have to learn beforehand in order to know if you need them or not?
🗪
1:02:01Insobot 4bugger... No libraries. You need a new game maker?
🗪
1:02:01Insobot 4bugger... No libraries. You need a new game maker?
🗪
1:02:01Insobot 4bugger... No libraries. You need a new game maker?
🗪
1:02:16quartertron Q: Binary search tree is a subset of BTree, I think
🗪
1:02:16quartertron Q: Binary search tree is a subset of BTree, I think
🗪
1:02:16quartertron Q: Binary search tree is a subset of BTree, I think
🗪
1:03:07Rfh666 About your memory allocation (way back when): Shouldn't the amount of memory you allocate depend on the size of the world chosen by the user? As it is, it is fixed at compile time (if I understand correctly)
🗪
1:03:07Rfh666 About your memory allocation (way back when): Shouldn't the amount of memory you allocate depend on the size of the world chosen by the user? As it is, it is fixed at compile time (if I understand correctly)
🗪
1:03:07Rfh666 About your memory allocation (way back when): Shouldn't the amount of memory you allocate depend on the size of the world chosen by the user? As it is, it is fixed at compile time (if I understand correctly)
🗪
1:05:29elxenoaizd I would like to be a tools programmer / game tech writer like you, but I'm still learning things so I'm not fully qualified to work as one. I'm thinking of working in a simple game company where the qualifications aren't so hardcore (maybe they use Unity or whatever), and at the same time do my private low-level self-learning. Good idea? Yes / No
🗪
1:05:29elxenoaizd I would like to be a tools programmer / game tech writer like you, but I'm still learning things so I'm not fully qualified to work as one. I'm thinking of working in a simple game company where the qualifications aren't so hardcore (maybe they use Unity or whatever), and at the same time do my private low-level self-learning. Good idea? Yes / No
🗪
1:05:29elxenoaizd I would like to be a tools programmer / game tech writer like you, but I'm still learning things so I'm not fully qualified to work as one. I'm thinking of working in a simple game company where the qualifications aren't so hardcore (maybe they use Unity or whatever), and at the same time do my private low-level self-learning. Good idea? Yes / No
🗪
1:08:35bewbilicious What are your plans for streaming once you complete this game?
🗪
1:08:35bewbilicious What are your plans for streaming once you complete this game?
🗪
1:08:35bewbilicious What are your plans for streaming once you complete this game?
🗪
1:08:46abnercoimbre You've discussed using Blender. Are you a 3D modeller of some sort? More specifically, what operations do you do with that software package?
🗪
1:08:46abnercoimbre You've discussed using Blender. Are you a 3D modeller of some sort? More specifically, what operations do you do with that software package?
🗪
1:08:46abnercoimbre You've discussed using Blender. Are you a 3D modeller of some sort? More specifically, what operations do you do with that software package?
🗪
1:10:09quartertron I'd like to see a Blender pre-stream demo
🗪
1:10:09quartertron I'd like to see a Blender pre-stream demo
🗪
1:10:09quartertron I'd like to see a Blender pre-stream demo
🗪
1:10:30TheSizik Would you consider doing a short off-hours stream to show people how you do things (like metaprogramming) that you won't get to touch on in Handmade Hero?
🗪
1:10:30TheSizik Would you consider doing a short off-hours stream to show people how you do things (like metaprogramming) that you won't get to touch on in Handmade Hero?
🗪
1:10:30TheSizik Would you consider doing a short off-hours stream to show people how you do things (like metaprogramming) that you won't get to touch on in Handmade Hero?
🗪
1:11:08Roots2D Hey, love catching the stream when I can. What language do you recommend as a beginner programmer looking to get into game development?
🗪
1:11:08Roots2D Hey, love catching the stream when I can. What language do you recommend as a beginner programmer looking to get into game development?
🗪
1:11:08Roots2D Hey, love catching the stream when I can. What language do you recommend as a beginner programmer looking to get into game development?
🗪
1:14:51Stream is over
🗩
1:14:51Stream is over
🗩
1:14:51Stream is over
🗩