Handmade Hero»Episode Guide
Per-element Debug Event Storage
?
?

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)
2:34Run the game and hit our assertion in FreeVariableGroup
2:34Run the game and hit our assertion in FreeVariableGroup
2:34Run the game and hit our assertion in FreeVariableGroup
3:49handmade_debug.h: Consider cleaning this stuff up as we do it
3:49handmade_debug.h: Consider cleaning this stuff up as we do it
3:49handmade_debug.h: Consider cleaning this stuff up as we do it
5:22handmade_debug.h: Move RootGroup from debug_frame to debug_state
5:22handmade_debug.h: Move RootGroup from debug_frame to debug_state
5:22handmade_debug.h: Move RootGroup from debug_frame to debug_state
7:08handmade_debug.h: Introduce debug_element to store a chain of Events
7:08handmade_debug.h: Introduce debug_element to store a chain of Events
7:08handmade_debug.h: Introduce debug_element to store a chain of Events
9:54handmade_debug.h: Introduce debug_stored_event
9:54handmade_debug.h: Introduce debug_stored_event
9:54handmade_debug.h: Introduce debug_stored_event
11:21handmade_debug.h: Provide a way to walk the existing debug elements and free them
11:21handmade_debug.h: Provide a way to walk the existing debug elements and free them
11:21handmade_debug.h: Provide a way to walk the existing debug elements and free them
15:42handmade_debug.h: Add TotalFrameCount and calculate how long the debug system will then be able to run before the TotalFrameCount wraps around
15:42handmade_debug.h: Add TotalFrameCount and calculate how long the debug system will then be able to run before the TotalFrameCount wraps around
15:42handmade_debug.h: Add TotalFrameCount and calculate how long the debug system will then be able to run before the TotalFrameCount wraps around
18:42handmade_debug.cpp: #if 0 RegionIndex and work on VarLinkInteraction
18:42handmade_debug.cpp: #if 0 RegionIndex and work on VarLinkInteraction
18:42handmade_debug.cpp: #if 0 RegionIndex and work on VarLinkInteraction
22:51handmade_debug.cpp: Introduce GetEventFromLinkα
22:51handmade_debug.cpp: Introduce GetEventFromLinkα
22:51handmade_debug.cpp: Introduce GetEventFromLinkα
27:23handmade_debug_interface.h: Refresh our memory of DEBUGInitializeValue and RecordDebugEvent
27:23handmade_debug_interface.h: Refresh our memory of DEBUGInitializeValue and RecordDebugEvent
27:23handmade_debug_interface.h: Refresh our memory of DEBUGInitializeValue and RecordDebugEvent
31:35"Riddle me this, Batman"β
31:35"Riddle me this, Batman"β
31:35"Riddle me this, Batman"β
35:29handmade_debug.h: Add ElementHash to debug_state and talk through the system
35:29handmade_debug.h: Add ElementHash to debug_state and talk through the system
35:29handmade_debug.h: Add ElementHash to debug_state and talk through the system
39:07handmade_debug.h: Add debug_tree *RootTree to debug_state
39:07handmade_debug.h: Add debug_tree *RootTree to debug_state
39:07handmade_debug.h: Add debug_tree *RootTree to debug_state
39:54handmade_debug.h: Reduce the size of the ElementHash array
39:54handmade_debug.h: Reduce the size of the ElementHash array
39:54handmade_debug.h: Reduce the size of the ElementHash array
41:19handmade_debug.cpp: Rewrite FreeFrame
41:19handmade_debug.cpp: Rewrite FreeFrame
41:19handmade_debug.cpp: Rewrite FreeFrame
46:28handmade_debug.h: Add debug_stored_event *FirstFreeStoredEvent to debug_state
46:28handmade_debug.h: Add debug_stored_event *FirstFreeStoredEvent to debug_state
46:28handmade_debug.h: Add debug_stored_event *FirstFreeStoredEvent to debug_state
47:04handmade_debug.cpp: Remove HackyGroup
47:04handmade_debug.cpp: Remove HackyGroup
47:04handmade_debug.cpp: Remove HackyGroup
49:43handmade_debug.cpp: Considering removing the concept of Region and sending all the BeginBlock and EndBlock into the ElementHash
49:43handmade_debug.cpp: Considering removing the concept of Region and sending all the BeginBlock and EndBlock into the ElementHash
49:43handmade_debug.cpp: Considering removing the concept of Region and sending all the BeginBlock and EndBlock into the ElementHash
50:48On coming towards a coherent architecture
50:48On coming towards a coherent architecture
50:48On coming towards a coherent architecture
52:46handmade_debug_interface.h: Figure out how to uniquely identify events
52:46handmade_debug_interface.h: Figure out how to uniquely identify events
52:46handmade_debug_interface.h: Figure out how to uniquely identify events
57:50handmade_debug_interface.h: Add GUID to RecordDebugEvent
57:50handmade_debug_interface.h: Add GUID to RecordDebugEvent
57:50handmade_debug_interface.h: Add GUID to RecordDebugEvent
59:16handmade_debug_interface.h: #define UniqueFileCounterString
59:16handmade_debug_interface.h: #define UniqueFileCounterString
59:16handmade_debug_interface.h: #define UniqueFileCounterString
1:01:22handmade_debug_interface.h: Remove FileName and LineNumber
1:01:22handmade_debug_interface.h: Remove FileName and LineNumber
1:01:22handmade_debug_interface.h: Remove FileName and LineNumber
1:01:54handmade_debug.cpp: Introduce HashThisEvent but turn off HANDMADE_INTERNAL
1:01:54handmade_debug.cpp: Introduce HashThisEvent but turn off HANDMADE_INTERNAL
1:01:54handmade_debug.cpp: Introduce HashThisEvent but turn off HANDMADE_INTERNAL
1:02:22Q&A
🗩
1:02:22Q&A
🗩
1:02:22Q&A
🗩
1:03:53elxenoaizd For UI programming, what do you think of the MVC (Model View Controller) pattern? Is it of any practical use?
🗪
1:03:53elxenoaizd For UI programming, what do you think of the MVC (Model View Controller) pattern? Is it of any practical use?
🗪
1:03:53elxenoaizd For UI programming, what do you think of the MVC (Model View Controller) pattern? Is it of any practical use?
🗪
1:06:47sssmcgrath Could you talk a bit about other debug system-y stuff you've done before? I've done all sorts of debug systems, not much like what you're doing now, and I'm curious what other stuff you may have done (just high level description, one-sentence descriptions are fine). Thanks!
🗪
1:06:47sssmcgrath Could you talk a bit about other debug system-y stuff you've done before? I've done all sorts of debug systems, not much like what you're doing now, and I'm curious what other stuff you may have done (just high level description, one-sentence descriptions are fine). Thanks!
🗪
1:06:47sssmcgrath Could you talk a bit about other debug system-y stuff you've done before? I've done all sorts of debug systems, not much like what you're doing now, and I'm curious what other stuff you may have done (just high level description, one-sentence descriptions are fine). Thanks!
🗪
1:11:13Kr1zz0 Can you explain what the macro-nastiness exactly does? Why do you have two underscore "levels"?
🗪
1:11:13Kr1zz0 Can you explain what the macro-nastiness exactly does? Why do you have two underscore "levels"?
🗪
1:11:13Kr1zz0 Can you explain what the macro-nastiness exactly does? Why do you have two underscore "levels"?
🗪
1:13:12sizzle182 Would you say that your engine makes it easy for a new programmer to come in and add functionality?
🗪
1:13:12sizzle182 Would you say that your engine makes it easy for a new programmer to come in and add functionality?
🗪
1:13:12sizzle182 Would you say that your engine makes it easy for a new programmer to come in and add functionality?
🗪
1:13:48elxenoaizd I was implementing Shadow mapping in OpenGL. It seems that there's a lot of issues and artifacts: Shadow Acne, Peter Panning etc., and to work around those you end up with something more complex and expensive. I kind of find it hard to believe that games with decent graphics use this technique. Do you know of any other good way to implement shadows, or do we just have to work around its limitations?
🗪
1:13:48elxenoaizd I was implementing Shadow mapping in OpenGL. It seems that there's a lot of issues and artifacts: Shadow Acne, Peter Panning etc., and to work around those you end up with something more complex and expensive. I kind of find it hard to believe that games with decent graphics use this technique. Do you know of any other good way to implement shadows, or do we just have to work around its limitations?
🗪
1:13:48elxenoaizd I was implementing Shadow mapping in OpenGL. It seems that there's a lot of issues and artifacts: Shadow Acne, Peter Panning etc., and to work around those you end up with something more complex and expensive. I kind of find it hard to believe that games with decent graphics use this technique. Do you know of any other good way to implement shadows, or do we just have to work around its limitations?
🗪
1:19:05brutalexcess Is the mobile platform limit to Android-only (excluding iOS) for any particular reason?
🗪
1:19:05brutalexcess Is the mobile platform limit to Android-only (excluding iOS) for any particular reason?
🗪
1:19:05brutalexcess Is the mobile platform limit to Android-only (excluding iOS) for any particular reason?
🗪
1:20:21elxenoaizd What if we just blur the edges of the shadows? (Gaussian blur)
🗪
1:20:21elxenoaizd What if we just blur the edges of the shadows? (Gaussian blur)
🗪
1:20:21elxenoaizd What if we just blur the edges of the shadows? (Gaussian blur)
🗪
1:21:03elxenoaizd Do you think namespaces actually solve the problem of naming collisions? Or there's no need for them and the usual C-style 'SystemName_Function' suffices?
🗪
1:21:03elxenoaizd Do you think namespaces actually solve the problem of naming collisions? Or there's no need for them and the usual C-style 'SystemName_Function' suffices?
🗪
1:21:03elxenoaizd Do you think namespaces actually solve the problem of naming collisions? Or there's no need for them and the usual C-style 'SystemName_Function' suffices?
🗪
1:21:32cubercaleb Yes, but how is Windows any different, don't you need to compile Windows programs on Windows?
🗪
1:21:32cubercaleb Yes, but how is Windows any different, don't you need to compile Windows programs on Windows?
🗪
1:21:32cubercaleb Yes, but how is Windows any different, don't you need to compile Windows programs on Windows?
🗪
1:26:10On overcoming world hungerγ
🗩
1:26:10On overcoming world hungerγ
🗩
1:26:10On overcoming world hungerγ
🗩
1:27:02Close it down
🗩
1:27:02Close it down
🗩
1:27:02Close it down
🗩