Handmade Hero»Episode Guide
Finishing Basic Debug Collation
?
?

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:08Recap and plan for today
0:08Recap and plan for today
0:08Recap and plan for today
1:22We left the code in a non-working state
1:22We left the code in a non-working state
1:22We left the code in a non-working state
2:37Review of code from the previous day
2:37Review of code from the previous day
2:37Review of code from the previous day
3:30Pushing debug frames into the collation memory arena
3:30Pushing debug frames into the collation memory arena
3:30Pushing debug frames into the collation memory arena
4:40By using MAX_DEBUG_FRAME_COUNT as the size of our event arrays, we assume that only one frame end event will be issued per frame. Let's get rid of that restriction
4:40By using MAX_DEBUG_FRAME_COUNT as the size of our event arrays, we assume that only one frame end event will be issued per frame. Let's get rid of that restriction
4:40By using MAX_DEBUG_FRAME_COUNT as the size of our event arrays, we assume that only one frame end event will be issued per frame. Let's get rid of that restriction
5:53Allocating debug_frames
5:53Allocating debug_frames
5:53Allocating debug_frames
6:30Allocating debug_frame_regions
6:30Allocating debug_frame_regions
6:30Allocating debug_frame_regions
7:55Testing. We are running out of debugging memory
7:55Testing. We are running out of debugging memory
7:55Testing. We are running out of debugging memory
9:00What is the cause of that error? Are we processing too many frames?
9:00What is the cause of that error? Are we processing too many frames?
9:00What is the cause of that error? Are we processing too many frames?
9:55We were treating the whole event array as if it was populated with real events!
9:55We were treating the whole event array as if it was populated with real events!
9:55We were treating the whole event array as if it was populated with real events!
10:21The game runs now
10:21The game runs now
10:21The game runs now
10:44(Blackboard) Problems we will face while pairing begin and end events
10:44(Blackboard) Problems we will face while pairing begin and end events
10:44(Blackboard) Problems we will face while pairing begin and end events
15:22We will identify the events with a combination of their thread and counter ids. We will pair them using a stack
15:22We will identify the events with a combination of their thread and counter ids. We will pair them using a stack
15:22We will identify the events with a combination of their thread and counter ids. We will pair them using a stack
17:58Forbidding overlapping begin/end paired blocks
17:58Forbidding overlapping begin/end paired blocks
17:58Forbidding overlapping begin/end paired blocks
20:00Allocating storage for the stack to pair the debug blocks
20:00Allocating storage for the stack to pair the debug blocks
20:00Allocating storage for the stack to pair the debug blocks
22:58Using debug_thread to segregate debug blocks according to the threads that originated them
22:58Using debug_thread to segregate debug blocks according to the threads that originated them
22:58Using debug_thread to segregate debug blocks according to the threads that originated them
27:33Processing DebugEvent_BeginBlocks
27:33Processing DebugEvent_BeginBlocks
27:33Processing DebugEvent_BeginBlocks
29:34Setting the values of debug_blocks
29:34Setting the values of debug_blocks
29:34Setting the values of debug_blocks
30:42In DebugEvent_EndBlock we'll find the matching block, if there is one, and pull it out
30:42In DebugEvent_EndBlock we'll find the matching block, if there is one, and pull it out
30:42In DebugEvent_EndBlock we'll find the matching block, if there is one, and pull it out
33:39Finding the frame index associated to the BeginBlock that matches our EndBlock
33:39Finding the frame index associated to the BeginBlock that matches our EndBlock
33:39Finding the frame index associated to the BeginBlock that matches our EndBlock
36:20Drawing a debug region once we find an EndBlock
36:20Drawing a debug region once we find an EndBlock
36:20Drawing a debug region once we find an EndBlock
37:41Yawnα
37:41Yawnα
37:41Yawnα
37:48On the perils of overeatingβ
37:48On the perils of overeatingβ
37:48On the perils of overeatingβ
38:03We will normalize the size of the bar charts with respect to the beginning and ending clock values of the frame
38:03We will normalize the size of the bar charts with respect to the beginning and ending clock values of the frame
38:03We will normalize the size of the bar charts with respect to the beginning and ending clock values of the frame
41:43We will only draw top-level blocks, for the moment
41:43We will only draw top-level blocks, for the moment
41:43We will only draw top-level blocks, for the moment
44:12Removing matching blocks from the stack
44:12Removing matching blocks from the stack
44:12Removing matching blocks from the stack
45:31Implementing GetDebugThread
45:31Implementing GetDebugThread
45:31Implementing GetDebugThread
47:15Implementing AddRegion
47:15Implementing AddRegion
47:15Implementing AddRegion
49:50Scaling the bars using the frame's clock range
49:50Scaling the bars using the frame's clock range
49:50Scaling the bars using the frame's clock range
50:30Testing. The game seems to loop forever and hang
50:30Testing. The game seems to loop forever and hang
50:30Testing. The game seems to loop forever and hang
51:13The bug was that we were not initializing the thread id
51:13The bug was that we were not initializing the thread id
51:13The bug was that we were not initializing the thread id
52:00Still not running correctly
52:00Still not running correctly
52:00Still not running correctly
53:35After increasing the amount of top-level regions per frame, the program works but runs really slowly and does not show the debug bars
53:35After increasing the amount of top-level regions per frame, the program works but runs really slowly and does not show the debug bars
53:35After increasing the amount of top-level regions per frame, the program works but runs really slowly and does not show the debug bars
54:03Stepping through the code
54:03Stepping through the code
54:03Stepping through the code
54:31Keeping the largest FrameBarScale to scale our debug bars
54:31Keeping the largest FrameBarScale to scale our debug bars
54:31Keeping the largest FrameBarScale to scale our debug bars
57:34The scale for drawing seems wrong
57:34The scale for drawing seems wrong
57:34The scale for drawing seems wrong
59:06Let's hardcode the FrameBarScale for the moment for debugging purposes
59:06Let's hardcode the FrameBarScale for the moment for debugging purposes
59:06Let's hardcode the FrameBarScale for the moment for debugging purposes
1:00:22The debug visualization is still not showing properly
1:00:22The debug visualization is still not showing properly
1:00:22The debug visualization is still not showing properly
1:03:32We were not multiplying the scaling factor by the chart height
1:03:32We were not multiplying the scaling factor by the chart height
1:03:32We were not multiplying the scaling factor by the chart height
1:04:34Q&A
🗩
1:04:34Q&A
🗩
1:04:34Q&A
🗩
1:05:38insofaras Is there still going to be a debug visualization of the asset memory chunks?
🗪
1:05:38insofaras Is there still going to be a debug visualization of the asset memory chunks?
🗪
1:05:38insofaras Is there still going to be a debug visualization of the asset memory chunks?
🗪
1:06:01XEnDash Can you make a mini episode about project management, outsourcing, freelance hiring, etc.? Programming is great but making a game takes more. If not, can you point to good resources on the topic?
🗪
1:06:01XEnDash Can you make a mini episode about project management, outsourcing, freelance hiring, etc.? Programming is great but making a game takes more. If not, can you point to good resources on the topic?
🗪
1:06:01XEnDash Can you make a mini episode about project management, outsourcing, freelance hiring, etc.? Programming is great but making a game takes more. If not, can you point to good resources on the topic?
🗪
1:06:20elxenoaizd Do you use the same memory model as in HMH when writing utilities or meta programs, or do you just malloc and it wouldn't matter because the thing runs once, does its thing and closes?
🗪
1:06:20elxenoaizd Do you use the same memory model as in HMH when writing utilities or meta programs, or do you just malloc and it wouldn't matter because the thing runs once, does its thing and closes?
🗪
1:06:20elxenoaizd Do you use the same memory model as in HMH when writing utilities or meta programs, or do you just malloc and it wouldn't matter because the thing runs once, does its thing and closes?
🗪
1:08:32Culver_Fly What are the pros / cons of viewing debugging information real time vs logging them and viewing them after the fact?
🗪
1:08:32Culver_Fly What are the pros / cons of viewing debugging information real time vs logging them and viewing them after the fact?
🗪
1:08:32Culver_Fly What are the pros / cons of viewing debugging information real time vs logging them and viewing them after the fact?
🗪
1:12:21abnercoimbre Off-topic. People want you to actually drink chocolate wine some time. Are you up for it?
🗪
1:12:21abnercoimbre Off-topic. People want you to actually drink chocolate wine some time. Are you up for it?
🗪
1:12:21abnercoimbre Off-topic. People want you to actually drink chocolate wine some time. Are you up for it?
🗪
1:12:49duel1000 Are you going to IndieCade in Culver City? Would you recommend it?
🗪
1:12:49duel1000 Are you going to IndieCade in Culver City? Would you recommend it?
🗪
1:12:49duel1000 Are you going to IndieCade in Culver City? Would you recommend it?
🗪
1:13:03elxenoaizd Thank you very much for mentioning cmirror. It addresses a lot of my issues directly and is much more human readable. What was the GetToken written for? For config files? Doesn't seem like for C code
🗪
1:13:03elxenoaizd Thank you very much for mentioning cmirror. It addresses a lot of my issues directly and is much more human readable. What was the GetToken written for? For config files? Doesn't seem like for C code
🗪
1:13:03elxenoaizd Thank you very much for mentioning cmirror. It addresses a lot of my issues directly and is much more human readable. What was the GetToken written for? For config files? Doesn't seem like for C code
🗪
1:13:44XEnDash How will you debug the OpenGL / Direct3D stuff when you will ship?
🗪
1:13:44XEnDash How will you debug the OpenGL / Direct3D stuff when you will ship?
🗪
1:13:44XEnDash How will you debug the OpenGL / Direct3D stuff when you will ship?
🗪
1:16:13davidthomas426 Did I misunderstand mollyrocket.com update, or should there be a comic there today having something to do with your project?γ
🗪
1:16:13davidthomas426 Did I misunderstand mollyrocket.com update, or should there be a comic there today having something to do with your project?γ
🗪
1:16:13davidthomas426 Did I misunderstand mollyrocket.com update, or should there be a comic there today having something to do with your project?γ
🗪
1:17:50Wrap up here
🗩
1:17:50Wrap up here
🗩
1:17:50Wrap up here
🗩