Handmade Hero»Episode Guide
Hashing Debug Elements
?
?

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:20All You Can Eatα
1:20All You Can Eatα
1:20All You Can Eatα
1:50"We don't know which kind of a lunch buffet our debug system will be yet..."β
1:50"We don't know which kind of a lunch buffet our debug system will be yet..."β
1:50"We don't know which kind of a lunch buffet our debug system will be yet..."β
2:58Build and run and note how fast the guy zips around, before turning the debug system back on
2:58Build and run and note how fast the guy zips around, before turning the debug system back on
2:58Build and run and note how fast the guy zips around, before turning the debug system back on
3:34"There will always a better lunch tomorrow"γ
3:34"There will always a better lunch tomorrow"γ
3:34"There will always a better lunch tomorrow"γ
3:47handmade_debug_interface.h: Recap the GUID concept
3:47handmade_debug_interface.h: Recap the GUID concept
3:47handmade_debug_interface.h: Recap the GUID concept
5:23On shifting the place settings when serving lunchδ
5:23On shifting the place settings when serving lunchδ
5:23On shifting the place settings when serving lunchδ
5:53handmade_debug_interface.h: Pass in the GUID and make it work
5:53handmade_debug_interface.h: Pass in the GUID and make it work
5:53handmade_debug_interface.h: Pass in the GUID and make it work
7:15Thoughts on the macro processorε
7:15Thoughts on the macro processorε
7:15Thoughts on the macro processorε
8:22On thinking about memory allocation over lunchζ
8:22On thinking about memory allocation over lunchζ
8:22On thinking about memory allocation over lunchζ
9:40"It's more of a lunch thing"η
9:40"It's more of a lunch thing"η
9:40"It's more of a lunch thing"η
10:01handmade_debug.cpp: Make CollateDebugRecords put Elements into locations based on where they came from
10:01handmade_debug.cpp: Make CollateDebugRecords put Elements into locations based on where they came from
10:01handmade_debug.cpp: Make CollateDebugRecords put Elements into locations based on where they came from
12:13handmade_debug.cpp: Introduce GetElementFromEvent
12:13handmade_debug.cpp: Introduce GetElementFromEvent
12:13handmade_debug.cpp: Introduce GetElementFromEvent
16:04First Rule of Programming: "You don't eat lunch if you're already full"θ
16:04First Rule of Programming: "You don't eat lunch if you're already full"θ
16:04First Rule of Programming: "You don't eat lunch if you're already full"θ
16:21handmade_debug.cpp: Continue implementing GetElementFromEvent
16:21handmade_debug.cpp: Continue implementing GetElementFromEvent
16:21handmade_debug.cpp: Continue implementing GetElementFromEvent
19:50"That's like getting lunch delivered..."ι
19:50"That's like getting lunch delivered..."ι
19:50"That's like getting lunch delivered..."ι
20:46handmade_debug.cpp: #if 0 CreateVariable, AddVariableToGroup, CreateVariableGroup and FreeVariableGroup
20:46handmade_debug.cpp: #if 0 CreateVariable, AddVariableToGroup, CreateVariableGroup and FreeVariableGroup
20:46handmade_debug.cpp: #if 0 CreateVariable, AddVariableToGroup, CreateVariableGroup and FreeVariableGroup
21:11handmade_debug.cpp: Introduce StoreEvent
21:11handmade_debug.cpp: Introduce StoreEvent
21:11handmade_debug.cpp: Introduce StoreEvent
23:54"Easy peasy lemon squeezy"κ
23:54"Easy peasy lemon squeezy"κ
23:54"Easy peasy lemon squeezy"κ
24:31handmade_debug.cpp: Continue working with the StoreEvent
24:31handmade_debug.cpp: Continue working with the StoreEvent
24:31handmade_debug.cpp: Continue working with the StoreEvent
25:58Thoughts on lunch despotismλ
25:58Thoughts on lunch despotismλ
25:58Thoughts on lunch despotismλ
26:24handmade_debug.cpp: Remove all of the Region stuff and #if 0 AddVariableToGroup
26:24handmade_debug.cpp: Remove all of the Region stuff and #if 0 AddVariableToGroup
26:24handmade_debug.cpp: Remove all of the Region stuff and #if 0 AddVariableToGroup
27:32handmade_debug.cpp: Implement StoreEvent
27:32handmade_debug.cpp: Implement StoreEvent
27:32handmade_debug.cpp: Implement StoreEvent
29:07handmade_debug.cpp: Fix compile errors
29:07handmade_debug.cpp: Fix compile errors
29:07handmade_debug.cpp: Fix compile errors
30:51Apologise for making a faux pasμ
30:51Apologise for making a faux pasμ
30:51Apologise for making a faux pasμ
31:00On the programming equivalent of sitting at the wrong seat at lunchν
31:00On the programming equivalent of sitting at the wrong seat at lunchν
31:00On the programming equivalent of sitting at the wrong seat at lunchν
31:18handmade_debug.cpp: Vaporise PushSizeWithDeallocation
31:18handmade_debug.cpp: Vaporise PushSizeWithDeallocation
31:18handmade_debug.cpp: Vaporise PushSizeWithDeallocation
32:01"Don't let your whole life be defined by the one bad lunch you ate"ξ
32:01"Don't let your whole life be defined by the one bad lunch you ate"ξ
32:01"Don't let your whole life be defined by the one bad lunch you ate"ξ
32:32handmade_debug.cpp: Make the StoredEvents be freed as necessary
32:32handmade_debug.cpp: Make the StoredEvents be freed as necessary
32:32handmade_debug.cpp: Make the StoredEvents be freed as necessary
36:58handmade_debug.cpp: Introduce FreeOldestFrame
36:58handmade_debug.cpp: Introduce FreeOldestFrame
36:58handmade_debug.cpp: Introduce FreeOldestFrame
39:36Compile, fix compile error and ensure everything else is doing something reasonable
39:36Compile, fix compile error and ensure everything else is doing something reasonable
39:36Compile, fix compile error and ensure everything else is doing something reasonable
40:14handmade_debug.cpp: Add if(ArenaHasRoomFor) to NewFrame
40:14handmade_debug.cpp: Add if(ArenaHasRoomFor) to NewFrame
40:14handmade_debug.cpp: Add if(ArenaHasRoomFor) to NewFrame
42:40handmade_debug.cpp: Make a PerFrameArena SubArena
42:40handmade_debug.cpp: Make a PerFrameArena SubArena
42:40handmade_debug.cpp: Make a PerFrameArena SubArena
44:44Debugger: Step into PushSize and discover that we didn't have enough debug memory
44:44Debugger: Step into PushSize and discover that we didn't have enough debug memory
44:44Debugger: Step into PushSize and discover that we didn't have enough debug memory
45:33Run the game and note that we're storing all of our debug data
45:33Run the game and note that we're storing all of our debug data
45:33Run the game and note that we're storing all of our debug data
46:25handmade_debug.cpp: Investigate why our Last frame time is wrong
46:25handmade_debug.cpp: Investigate why our Last frame time is wrong
46:25handmade_debug.cpp: Investigate why our Last frame time is wrong
48:10Debugger: Hit a FrameMarker and inspect values
48:10Debugger: Hit a FrameMarker and inspect values
48:10Debugger: Hit a FrameMarker and inspect values
50:06handmade_debug.cpp: Correctly set the MostRecentFrame
50:06handmade_debug.cpp: Correctly set the MostRecentFrame
50:06handmade_debug.cpp: Correctly set the MostRecentFrame
50:19Run the game and see that our Last frame time is now correct
50:19Run the game and see that our Last frame time is now correct
50:19Run the game and see that our Last frame time is now correct
50:32handmade_debug.cpp: Print out the memory usage of the arena
50:32handmade_debug.cpp: Print out the memory usage of the arena
50:32handmade_debug.cpp: Print out the memory usage of the arena
52:37Run the game and see our Per-frame arena space remaining
52:37Run the game and see our Per-frame arena space remaining
52:37Run the game and see our Per-frame arena space remaining
53:05handmade_debug.cpp: Reduce the size of that SubArena
53:05handmade_debug.cpp: Reduce the size of that SubArena
53:05handmade_debug.cpp: Reduce the size of that SubArena
53:41Run the game and see the new Per-frame arena space remaining
53:41Run the game and see the new Per-frame arena space remaining
53:41Run the game and see the new Per-frame arena space remaining
53:57Debugger: Step into StoreEvent and ensure that everything's still working properly
53:57Debugger: Step into StoreEvent and ensure that everything's still working properly
53:57Debugger: Step into StoreEvent and ensure that everything's still working properly
55:10Warn against eating more lunch than we can reasonably digestο
55:10Warn against eating more lunch than we can reasonably digestο
55:10Warn against eating more lunch than we can reasonably digestο
55:43"There's always lunch tomorrow"π
55:43"There's always lunch tomorrow"π
55:43"There's always lunch tomorrow"π
56:02Q&A
🗩
56:02Q&A
🗩
56:02Q&A
🗩
56:32Miblo When we come to do the AI system, do you think it'd be reasonable to give the dudes a "gather lunch" behaviour?
🗪
56:32Miblo When we come to do the AI system, do you think it'd be reasonable to give the dudes a "gather lunch" behaviour?
🗪
56:32Miblo When we come to do the AI system, do you think it'd be reasonable to give the dudes a "gather lunch" behaviour?
🗪
56:50insofaras What did you have for lunch?
🗪
56:50insofaras What did you have for lunch?
🗪
56:50insofaras What did you have for lunch?
🗪
57:24doritosranger Imagine that you're young again and you're eating your lunch and you can choose between a C and Java-like language in what you can work with memory in much C-like way but that language would say you how to implement some ideas (like a Python is about line offsets, which is not good I think)? What would you choose then and why?
🗪
57:24doritosranger Imagine that you're young again and you're eating your lunch and you can choose between a C and Java-like language in what you can work with memory in much C-like way but that language would say you how to implement some ideas (like a Python is about line offsets, which is not good I think)? What would you choose then and why?
🗪
57:24doritosranger Imagine that you're young again and you're eating your lunch and you can choose between a C and Java-like language in what you can work with memory in much C-like way but that language would say you how to implement some ideas (like a Python is about line offsets, which is not good I think)? What would you choose then and why?
🗪
58:42evraire During HandmadeCon will there be an organised lunch at the Campfire BBQ?
🗪
58:42evraire During HandmadeCon will there be an organised lunch at the Campfire BBQ?
🗪
58:42evraire During HandmadeCon will there be an organised lunch at the Campfire BBQ?
🗪
59:04assnburgers Does Emacs offer more syntax support than what I am seeing at the moment?
🗪
59:04assnburgers Does Emacs offer more syntax support than what I am seeing at the moment?
🗪
59:04assnburgers Does Emacs offer more syntax support than what I am seeing at the moment?
🗪
59:36Ikkir_Isth Is there anything that could be considered a "free lunch" in low level optimization?
🗪
59:36Ikkir_Isth Is there anything that could be considered a "free lunch" in low level optimization?
🗪
59:36Ikkir_Isth Is there anything that could be considered a "free lunch" in low level optimization?
🗪
59:47cubercaleb Fair warning: The optimizer might store the strings in the same place which will break the whole GUID thing
🗪
59:47cubercaleb Fair warning: The optimizer might store the strings in the same place which will break the whole GUID thing
🗪
59:47cubercaleb Fair warning: The optimizer might store the strings in the same place which will break the whole GUID thing
🗪
1:00:13btnGames Do you suggest programming should be snacked upon throughout the day as an alternative to a 3 course code feast?
🗪
1:00:13btnGames Do you suggest programming should be snacked upon throughout the day as an alternative to a 3 course code feast?
🗪
1:00:13btnGames Do you suggest programming should be snacked upon throughout the day as an alternative to a 3 course code feast?
🗪
1:02:28insofaras Why do you think that there have been no good new languages since C? Are all the language designers out to lunch these days?
🗪
1:02:28insofaras Why do you think that there have been no good new languages since C? Are all the language designers out to lunch these days?
🗪
1:02:28insofaras Why do you think that there have been no good new languages since C? Are all the language designers out to lunch these days?
🗪
1:04:13PookiesRevenge Do you feel there's a perfect balance between test-based coding, or more efficiency / optimization? Or do you prefer one over the other?
🗪
1:04:13PookiesRevenge Do you feel there's a perfect balance between test-based coding, or more efficiency / optimization? Or do you prefer one over the other?
🗪
1:04:13PookiesRevenge Do you feel there's a perfect balance between test-based coding, or more efficiency / optimization? Or do you prefer one over the other?
🗪
1:06:39assnburgers What are your thoughts on clang?
🗪
1:06:39assnburgers What are your thoughts on clang?
🗪
1:06:39assnburgers What are your thoughts on clang?
🗪
1:07:31TheMaxS_ I think he meant string literals, like the -Og flag, I think
🗪
1:07:31TheMaxS_ I think he meant string literals, like the -Og flag, I think
🗪
1:07:31TheMaxS_ I think he meant string literals, like the -Og flag, I think
🗪
1:07:41Csixone What do you think about Unity, etc.?
🗪
1:07:41Csixone What do you think about Unity, etc.?
🗪
1:07:41Csixone What do you think about Unity, etc.?
🗪
1:09:49z3rky What's been the biggest hurdle you've had to overcome so far on this endeavor?
🗪
1:09:49z3rky What's been the biggest hurdle you've had to overcome so far on this endeavor?
🗪
1:09:49z3rky What's been the biggest hurdle you've had to overcome so far on this endeavor?
🗪
1:10:03killerfred3000 What do you suggest that people who are in the first year of C++ do as projects for coding throughout the day? (Feel free to skip if you've answered this before)
🗪
1:10:03killerfred3000 What do you suggest that people who are in the first year of C++ do as projects for coding throughout the day? (Feel free to skip if you've answered this before)
🗪
1:10:03killerfred3000 What do you suggest that people who are in the first year of C++ do as projects for coding throughout the day? (Feel free to skip if you've answered this before)
🗪
1:11:21jessem3y3r Have you seen John Cleese's talk on creativity? If so, what are your thoughts on it?
🗪
1:11:21jessem3y3r Have you seen John Cleese's talk on creativity? If so, what are your thoughts on it?
🗪
1:11:21jessem3y3r Have you seen John Cleese's talk on creativity? If so, what are your thoughts on it?
🗪
1:11:36insofaras How many more features will the debug system get? It already eats most other engines' lunch
🗪
1:11:36insofaras How many more features will the debug system get? It already eats most other engines' lunch
🗪
1:11:36insofaras How many more features will the debug system get? It already eats most other engines' lunch
🗪
1:12:25LeXxXiNgToN Do you feel that taking calculus 1/2 is needed to become a good programmer?
🗪
1:12:25LeXxXiNgToN Do you feel that taking calculus 1/2 is needed to become a good programmer?
🗪
1:12:25LeXxXiNgToN Do you feel that taking calculus 1/2 is needed to become a good programmer?
🗪
1:13:31TheMaxS_ It was actually the -GF flag for the MSVC compiler. It enables string pooling, lumping all string literals into a read-only portion of memory so it only stores one of each different string
🗪
1:13:31TheMaxS_ It was actually the -GF flag for the MSVC compiler. It enables string pooling, lumping all string literals into a read-only portion of memory so it only stores one of each different string
🗪
1:13:31TheMaxS_ It was actually the -GF flag for the MSVC compiler. It enables string pooling, lumping all string literals into a read-only portion of memory so it only stores one of each different string
🗪
1:14:42ImJustRoids Do you think there really hasn't been a good language since C, period? Or just that there haven't been any good languages that do what C can, like a good "competitor"? For example, if someone needs a small app, use C regardless or some higher languages are good for that (in your opinion)?
🗪
1:14:42ImJustRoids Do you think there really hasn't been a good language since C, period? Or just that there haven't been any good languages that do what C can, like a good "competitor"? For example, if someone needs a small app, use C regardless or some higher languages are good for that (in your opinion)?
🗪
1:14:42ImJustRoids Do you think there really hasn't been a good language since C, period? Or just that there haven't been any good languages that do what C can, like a good "competitor"? For example, if someone needs a small app, use C regardless or some higher languages are good for that (in your opinion)?
🗪
1:16:00insofaras What if it doesn't pool strings and two same string literals get different addresses? Would the system lose its lunch?
🗪
1:16:00insofaras What if it doesn't pool strings and two same string literals get different addresses? Would the system lose its lunch?
🗪
1:16:00insofaras What if it doesn't pool strings and two same string literals get different addresses? Would the system lose its lunch?
🗪
1:17:06Pseudonym73: Note that "good language" is relative to what you're doing. I've done things in Prolog that I wouldn't want to do in C
1:17:06Pseudonym73: Note that "good language" is relative to what you're doing. I've done things in Prolog that I wouldn't want to do in C
1:17:06Pseudonym73: Note that "good language" is relative to what you're doing. I've done things in Prolog that I wouldn't want to do in C
1:20:14Wind down
🗩
1:20:14Wind down
🗩
1:20:14Wind down
🗩
1:22:34"Don't forget to eat lunch"ρ
🗩
1:22:34"Don't forget to eat lunch"ρ
🗩
1:22:34"Don't forget to eat lunch"ρ
🗩