Handmade Hero»Episode Guide
Isolating the Debug Code
?
?

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:47Recap and hit a first-chance exception
1:47Recap and hit a first-chance exception
1:47Recap and hit a first-chance exception
2:38Investigate this exception
2:38Investigate this exception
2:38Investigate this exception
6:02win32_handmade.cpp: Move DebugCollation above FramerateWait and pass NewInput and &Buffer to DEBUGFrameEnd
6:02win32_handmade.cpp: Move DebugCollation above FramerateWait and pass NewInput and &Buffer to DEBUGFrameEnd
6:02win32_handmade.cpp: Move DebugCollation above FramerateWait and pass NewInput and &Buffer to DEBUGFrameEnd
7:30handmade.cpp: Remove DEBUGStart and DEBUGEnd
7:30handmade.cpp: Remove DEBUGStart and DEBUGEnd
7:30handmade.cpp: Remove DEBUGStart and DEBUGEnd
7:54handmade_debug.cpp: Call DEBUGStart and DEBUGEnd in DEBUGGameFrameEnd
7:54handmade_debug.cpp: Call DEBUGStart and DEBUGEnd in DEBUGGameFrameEnd
7:54handmade_debug.cpp: Call DEBUGStart and DEBUGEnd in DEBUGGameFrameEnd
11:06handmade.cpp: Introduce DEBUGGetGameAssets to enable the debug system to get the TranState->Assets out
11:06handmade.cpp: Introduce DEBUGGetGameAssets to enable the debug system to get the TranState->Assets out
11:06handmade.cpp: Introduce DEBUGGetGameAssets to enable the debug system to get the TranState->Assets out
12:37handmade_platform.h: Give DEBUG_GAME_FRAME_END the same call structure as GAME_UPDATE_AND_RENDER
12:37handmade_platform.h: Give DEBUG_GAME_FRAME_END the same call structure as GAME_UPDATE_AND_RENDER
12:37handmade_platform.h: Give DEBUG_GAME_FRAME_END the same call structure as GAME_UPDATE_AND_RENDER
13:23handmade_debug.cpp: Create a DrawBuffer for the debug system
13:23handmade_debug.cpp: Create a DrawBuffer for the debug system
13:23handmade_debug.cpp: Create a DrawBuffer for the debug system
15:00Debugger: Step into DEBUGGetState
15:00Debugger: Step into DEBUGGetState
15:00Debugger: Step into DEBUGGetState
15:32handmade_debug.cpp: Paste DEBUGGetState into DEBUGGameFrameEnd
15:32handmade_debug.cpp: Paste DEBUGGetState into DEBUGGameFrameEnd
15:32handmade_debug.cpp: Paste DEBUGGetState into DEBUGGameFrameEnd
16:50Run the game and find that we're in better shape
16:50Run the game and find that we're in better shape
16:50Run the game and find that we're in better shape
18:31handmade.debug.h: Consider getting rid of this header file entirely
18:31handmade.debug.h: Consider getting rid of this header file entirely
18:31handmade.debug.h: Consider getting rid of this header file entirely
19:52handmade.cpp: Add conditional on HANDMADE_INTERNAL to enable us to toggle the debug system
19:52handmade.cpp: Add conditional on HANDMADE_INTERNAL to enable us to toggle the debug system
19:52handmade.cpp: Add conditional on HANDMADE_INTERNAL to enable us to toggle the debug system
21:12build.bat: Turn off HANDMADE_INTERNAL
21:12build.bat: Turn off HANDMADE_INTERNAL
21:12build.bat: Turn off HANDMADE_INTERNAL
21:27handmade_platform.h and win32_handmade.cpp: Add conditionals on HANDMADE_INTERNAL
21:27handmade_platform.h and win32_handmade.cpp: Add conditionals on HANDMADE_INTERNAL
21:27handmade_platform.h and win32_handmade.cpp: Add conditionals on HANDMADE_INTERNAL
22:47handmade_platform: Remove HANDMADE_PROFILE in favour of HANDMADE_INTERNAL
22:47handmade_platform: Remove HANDMADE_PROFILE in favour of HANDMADE_INTERNAL
22:47handmade_platform: Remove HANDMADE_PROFILE in favour of HANDMADE_INTERNAL
25:05Run the game successfully
25:05Run the game successfully
25:05Run the game successfully
25:17build.bat: Toggle HANDMADE_INTERNAL and still run successfully
25:17build.bat: Toggle HANDMADE_INTERNAL and still run successfully
25:17build.bat: Toggle HANDMADE_INTERNAL and still run successfully
26:46Think about how to proceed
26:46Think about how to proceed
26:46Think about how to proceed
29:00handmade_debug.h: Move the contents of debug_variable_group into debug_variable_reference
29:00handmade_debug.h: Move the contents of debug_variable_group into debug_variable_reference
29:00handmade_debug.h: Move the contents of debug_variable_group into debug_variable_reference
30:52handmade_debug.h: Consider splitting the variables up
30:52handmade_debug.h: Consider splitting the variables up
30:52handmade_debug.h: Consider splitting the variables up
33:03handmade_debug.h: Rename debug_variable_ structs to debug_tree and debug_tree_entry
33:03handmade_debug.h: Rename debug_variable_ structs to debug_tree and debug_tree_entry
33:03handmade_debug.h: Rename debug_variable_ structs to debug_tree and debug_tree_entry
33:53handmade_debug.h: Introduce debug_tree_entry_group
33:53handmade_debug.h: Introduce debug_tree_entry_group
33:53handmade_debug.h: Introduce debug_tree_entry_group
34:41handmade_debug.h: Rewrite debug_tree
34:41handmade_debug.h: Rewrite debug_tree
34:41handmade_debug.h: Rewrite debug_tree
36:44handmade_debug.h: Introduce debug_tree_entry_window
36:44handmade_debug.h: Introduce debug_tree_entry_window
36:44handmade_debug.h: Introduce debug_tree_entry_window
37:58handmade_debug.h: Introduce debug_tree_entry_type
37:58handmade_debug.h: Introduce debug_tree_entry_type
37:58handmade_debug.h: Introduce debug_tree_entry_type
38:45Recap these changes
38:45Recap these changes
38:45Recap these changes
39:52handmade_debug.h and handmade_debug_variables.h: Clean up the compile errors
39:52handmade_debug.h and handmade_debug_variables.h: Clean up the compile errors
39:52handmade_debug.h and handmade_debug_variables.h: Clean up the compile errors
41:51Consider using a caching-centric system
41:51Consider using a caching-centric system
41:51Consider using a caching-centric system
44:41handmade_debug.h and handmade_debug_variables.h: Start to implement a caching-centric system
44:41handmade_debug.h and handmade_debug_variables.h: Start to implement a caching-centric system
44:41handmade_debug.h and handmade_debug_variables.h: Start to implement a caching-centric system
1:04:17Pause this temporarily and turn off HANDMADE_INTERNAL
1:04:17Pause this temporarily and turn off HANDMADE_INTERNAL
1:04:17Pause this temporarily and turn off HANDMADE_INTERNAL
1:04:57Q&A
🗩
1:04:57Q&A
🗩
1:04:57Q&A
🗩
1:05:25insofaras Now that the amount of debug code is getting larger, will you create a debug debug system to debug the debug code?
🗪
1:05:25insofaras Now that the amount of debug code is getting larger, will you create a debug debug system to debug the debug code?
🗪
1:05:25insofaras Now that the amount of debug code is getting larger, will you create a debug debug system to debug the debug code?
🗪
1:06:04Manicthenobody Is this the link you were looking for earlier for MartinCohen?1
🗪
1:06:04Manicthenobody Is this the link you were looking for earlier for MartinCohen?1
🗪
1:06:04Manicthenobody Is this the link you were looking for earlier for MartinCohen?1
🗪
1:07:07garryjohanson What do you think about the use of pre-fetch cache instructions? Are they a viable option for general purpose programming to get maximum performance?
🗪
1:07:07garryjohanson What do you think about the use of pre-fetch cache instructions? Are they a viable option for general purpose programming to get maximum performance?
🗪
1:07:07garryjohanson What do you think about the use of pre-fetch cache instructions? Are they a viable option for general purpose programming to get maximum performance?
🗪
1:08:28Connor_Rentz After the two year period, will we be able to mod the game?
🗪
1:08:28Connor_Rentz After the two year period, will we be able to mod the game?
🗪
1:08:28Connor_Rentz After the two year period, will we be able to mod the game?
🗪
1:08:37CaptainKraft Does the architecture of your target system have a big effect on how you design your debug system?
🗪
1:08:37CaptainKraft Does the architecture of your target system have a big effect on how you design your debug system?
🗪
1:08:37CaptainKraft Does the architecture of your target system have a big effect on how you design your debug system?
🗪
1:09:51Kelimion Would be it an idea to pass build.bat a parameter which you would use to switch optimisation on and off on the different build units? Like IF %1 == opt, do this, otherwise do that
🗪
1:09:51Kelimion Would be it an idea to pass build.bat a parameter which you would use to switch optimisation on and off on the different build units? Like IF %1 == opt, do this, otherwise do that
🗪
1:09:51Kelimion Would be it an idea to pass build.bat a parameter which you would use to switch optimisation on and off on the different build units? Like IF %1 == opt, do this, otherwise do that
🗪
1:10:29vivek12895 What do you think about "No Man's Sky"? I can't even think about how it works now. Will I get some idea after learning from you?
🗪
1:10:29vivek12895 What do you think about "No Man's Sky"? I can't even think about how it works now. Will I get some idea after learning from you?
🗪
1:10:29vivek12895 What do you think about "No Man's Sky"? I can't even think about how it works now. Will I get some idea after learning from you?
🗪
1:11:28Connor_Rentz I mean, after you release the source code. Will we be able to create our own bosses, worlds, etc.?
🗪
1:11:28Connor_Rentz I mean, after you release the source code. Will we be able to create our own bosses, worlds, etc.?
🗪
1:11:28Connor_Rentz I mean, after you release the source code. Will we be able to create our own bosses, worlds, etc.?
🗪
1:11:48Stiegosaurus Will you be returning to game specific coding soon?
🗪
1:11:48Stiegosaurus Will you be returning to game specific coding soon?
🗪
1:11:48Stiegosaurus Will you be returning to game specific coding soon?
🗪
1:13:41CaptainKraft Could something like a Raspberry Pi or other ARM desktop PC run Handmade Hero well enough, and is that the kind of system where you would want to do the debugging on a separate machine?
🗪
1:13:41CaptainKraft Could something like a Raspberry Pi or other ARM desktop PC run Handmade Hero well enough, and is that the kind of system where you would want to do the debugging on a separate machine?
🗪
1:13:41CaptainKraft Could something like a Raspberry Pi or other ARM desktop PC run Handmade Hero well enough, and is that the kind of system where you would want to do the debugging on a separate machine?
🗪
1:14:47Kelimion I meant for usage inside the game, so you could switch optimisation on and off from the debug menu
🗪
1:14:47Kelimion I meant for usage inside the game, so you could switch optimisation on and off from the debug menu
🗪
1:14:47Kelimion I meant for usage inside the game, so you could switch optimisation on and off from the debug menu
🗪
1:15:26garryjohanson Do you think it would be totz baller to make a GUI visual language for game scripting like what Unreal has?
🗪
1:15:26garryjohanson Do you think it would be totz baller to make a GUI visual language for game scripting like what Unreal has?
🗪
1:15:26garryjohanson Do you think it would be totz baller to make a GUI visual language for game scripting like what Unreal has?
🗪
1:16:14Blackboard: Visual Scripting
1:16:14Blackboard: Visual Scripting
1:16:14Blackboard: Visual Scripting
1:18:35quartertron Couldn't you collate just the last frame every frame instead of doing all of them in chunks?
🗪
1:18:35quartertron Couldn't you collate just the last frame every frame instead of doing all of them in chunks?
🗪
1:18:35quartertron Couldn't you collate just the last frame every frame instead of doing all of them in chunks?
🗪
1:20:22Close this down
🗩
1:20:22Close this down
🗩
1:20:22Close this down
🗩