Handmade Hero»Episode Guide
Cleaning Up Debug Event 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)
1:00Recap and set the stage for the day
1:00Recap and set the stage for the day
1:00Recap and set the stage for the day
5:09Blackboard: The inconsistency between an event buffer and a frame
5:09Blackboard: The inconsistency between an event buffer and a frame
5:09Blackboard: The inconsistency between an event buffer and a frame
9:45handmade_debug_interface.h: Start to make Events be a temporary buffer by reducing the MAX_DEBUG_EVENT_ARRAY_COUNT
9:45handmade_debug_interface.h: Start to make Events be a temporary buffer by reducing the MAX_DEBUG_EVENT_ARRAY_COUNT
9:45handmade_debug_interface.h: Start to make Events be a temporary buffer by reducing the MAX_DEBUG_EVENT_ARRAY_COUNT
10:22Run the game, bump up the MAX_DEBUG_EVENT_ARRAY_COUNT and play with the camera
10:22Run the game, bump up the MAX_DEBUG_EVENT_ARRAY_COUNT and play with the camera
10:22Run the game, bump up the MAX_DEBUG_EVENT_ARRAY_COUNT and play with the camera
11:26handmade_debug_interface.h: Remove MAX_DEBUG_EVENT_ARRAY_COUNT and MAX_DEBUG_EVENT_COUNT and bake their values straight into Events
11:26handmade_debug_interface.h: Remove MAX_DEBUG_EVENT_ARRAY_COUNT and MAX_DEBUG_EVENT_COUNT and bake their values straight into Events
11:26handmade_debug_interface.h: Remove MAX_DEBUG_EVENT_ARRAY_COUNT and MAX_DEBUG_EVENT_COUNT and bake their values straight into Events
14:38handmade_debug.h: Start porting the rest of the code to use copy outα
14:38handmade_debug.h: Start porting the rest of the code to use copy outα
14:38handmade_debug.h: Start porting the rest of the code to use copy outα
18:28handmade_debug.h: Reorganise debug_state
18:28handmade_debug.h: Reorganise debug_state
18:28handmade_debug.h: Reorganise debug_state
21:39handmade_debug.cpp: Massage DrawProfileIn
21:39handmade_debug.cpp: Massage DrawProfileIn
21:39handmade_debug.cpp: Massage DrawProfileIn
25:05handmade_debug.cpp: Replace the concept of CollateArena in GetDebugThread with allocatable values
25:05handmade_debug.cpp: Replace the concept of CollateArena in GetDebugThread with allocatable values
25:05handmade_debug.cpp: Replace the concept of CollateArena in GetDebugThread with allocatable values
27:28handmade.h: #define FREELIST_ALLOC
27:28handmade.h: #define FREELIST_ALLOC
27:28handmade.h: #define FREELIST_ALLOC
29:43handmade_debug.cpp: Use FREELIST_ALLOC in GetDebugThread
29:43handmade_debug.cpp: Use FREELIST_ALLOC in GetDebugThread
29:43handmade_debug.cpp: Use FREELIST_ALLOC in GetDebugThread
30:34Internet: decltype1
30:34Internet: decltype1
30:34Internet: decltype1
31:11handmade.h: Fight with decltype
31:11handmade.h: Fight with decltype
31:11handmade.h: Fight with decltype
34:39handmade.h: Make FREELIST_ALLOC work
34:39handmade.h: Make FREELIST_ALLOC work
34:39handmade.h: Make FREELIST_ALLOC work
35:03handmade_debug.cpp: Introduce NewFrame to initialise the collation
35:03handmade_debug.cpp: Introduce NewFrame to initialise the collation
35:03handmade_debug.cpp: Introduce NewFrame to initialise the collation
42:48handmade_debug.cpp: Implement collation
42:48handmade_debug.cpp: Implement collation
42:48handmade_debug.cpp: Implement collation
45:53handmade_debug.cpp: Provide the ability to get new frames
45:53handmade_debug.cpp: Provide the ability to get new frames
45:53handmade_debug.cpp: Provide the ability to get new frames
48:20handmade_debug.cpp: Work through compile errors
48:20handmade_debug.cpp: Work through compile errors
48:20handmade_debug.cpp: Work through compile errors
57:00handmade_debug.cpp: Introduce FreeFrame
57:00handmade_debug.cpp: Introduce FreeFrame
57:00handmade_debug.cpp: Introduce FreeFrame
57:51handmade.h: Attempt to silence the "assignment within conditional expression" warningβ
57:51handmade.h: Attempt to silence the "assignment within conditional expression" warningβ
57:51handmade.h: Attempt to silence the "assignment within conditional expression" warningβ
59:05handmade_debug.cpp: Fix some copy pasta
59:05handmade_debug.cpp: Fix some copy pasta
59:05handmade_debug.cpp: Fix some copy pasta
1:00:03Run the game and run out of memory
1:00:03Run the game and run out of memory
1:00:03Run the game and run out of memory
1:00:20handmade_debug.cpp: Implement FreeFrame
1:00:20handmade_debug.cpp: Implement FreeFrame
1:00:20handmade_debug.cpp: Implement FreeFrame
1:08:08handmade_debug.cpp: Introduce FreeVariableGroup
1:08:08handmade_debug.cpp: Introduce FreeVariableGroup
1:08:08handmade_debug.cpp: Introduce FreeVariableGroup
1:08:56Run the game and see that we still hit the Arena->Size assertion
1:08:56Run the game and see that we still hit the Arena->Size assertion
1:08:56Run the game and see that we still hit the Arena->Size assertion
1:09:41handmade_debug_interface.h: Ensure that the debug system can be compiled out
1:09:41handmade_debug_interface.h: Ensure that the debug system can be compiled out
1:09:41handmade_debug_interface.h: Ensure that the debug system can be compiled out
1:10:41Run the game and see that we're back to our super speedy software rendered world
1:10:41Run the game and see that we're back to our super speedy software rendered world
1:10:41Run the game and see that we're back to our super speedy software rendered world
1:10:53Q&A
🗩
1:10:53Q&A
🗩
1:10:53Q&A
🗩
1:12:51evraire Once collation is done, will we get hierarchies going next?
🗪
1:12:51evraire Once collation is done, will we get hierarchies going next?
🗪
1:12:51evraire Once collation is done, will we get hierarchies going next?
🗪
1:13:51quartertron Are you going to do some tricks for compile time string searches or something?
🗪
1:13:51quartertron Are you going to do some tricks for compile time string searches or something?
🗪
1:13:51quartertron Are you going to do some tricks for compile time string searches or something?
🗪
1:14:04groggeh The last software company I worked at, you would fail a code review MISERABLY right now. How do you feel about those practices?
🗪
1:14:04groggeh The last software company I worked at, you would fail a code review MISERABLY right now. How do you feel about those practices?
🗪
1:14:04groggeh The last software company I worked at, you would fail a code review MISERABLY right now. How do you feel about those practices?
🗪
1:16:32BrutalABK Do you use SQL and, if so, how do you structure your databases?
🗪
1:16:32BrutalABK Do you use SQL and, if so, how do you structure your databases?
🗪
1:16:32BrutalABK Do you use SQL and, if so, how do you structure your databases?
🗪
1:16:50quartertron I imagine that all the "paths" will be known at compile time, so you probably don't need to do strcmp but I'm not sure if just using the addresses would work
🗪
1:16:50quartertron I imagine that all the "paths" will be known at compile time, so you probably don't need to do strcmp but I'm not sure if just using the addresses would work
🗪
1:16:50quartertron I imagine that all the "paths" will be known at compile time, so you probably don't need to do strcmp but I'm not sure if just using the addresses would work
🗪
1:17:24ezysigh By the way, I tried decltype() on clang and it worked in the same kind of context (I think). cl is probably broken
🗪
1:17:24ezysigh By the way, I tried decltype() on clang and it worked in the same kind of context (I think). cl is probably broken
🗪
1:17:24ezysigh By the way, I tried decltype() on clang and it worked in the same kind of context (I think). cl is probably broken
🗪
1:17:43kaesve Can you give us some programming challenges for until you get back?
🗪
1:17:43kaesve Can you give us some programming challenges for until you get back?
🗪
1:17:43kaesve Can you give us some programming challenges for until you get back?
🗪
1:18:22Dragonmaster047 Would it be viable to write a game that uses a database model and its logic as database transformations?
🗪
1:18:22Dragonmaster047 Would it be viable to write a game that uses a database model and its logic as database transformations?
🗪
1:18:22Dragonmaster047 Would it be viable to write a game that uses a database model and its logic as database transformations?
🗪
1:20:42MartinCohen My mind cannot stop thinking about the scratch memory thing you talked with Jon the other day on the pre-stream, so I'm sorry if this is off-topic. It was a piece of memory that is kept per thread (and grows a little). Do I understand it correctly that you're passing it down the call stack, so that each function can push and pop a piece of scratch memory from it?
🗪
1:20:42MartinCohen My mind cannot stop thinking about the scratch memory thing you talked with Jon the other day on the pre-stream, so I'm sorry if this is off-topic. It was a piece of memory that is kept per thread (and grows a little). Do I understand it correctly that you're passing it down the call stack, so that each function can push and pop a piece of scratch memory from it?
🗪
1:20:42MartinCohen My mind cannot stop thinking about the scratch memory thing you talked with Jon the other day on the pre-stream, so I'm sorry if this is off-topic. It was a piece of memory that is kept per thread (and grows a little). Do I understand it correctly that you're passing it down the call stack, so that each function can push and pop a piece of scratch memory from it?
🗪
1:22:06Mysterious_J_ I've never thought about metaprogramming much before, and it sounds really interesting. Do you have any recommendations for more information on it?
🗪
1:22:06Mysterious_J_ I've never thought about metaprogramming much before, and it sounds really interesting. Do you have any recommendations for more information on it?
🗪
1:22:06Mysterious_J_ I've never thought about metaprogramming much before, and it sounds really interesting. Do you have any recommendations for more information on it?
🗪
1:22:30LOstTGM What happens with the particles' (more simplified) collision detection if you at the same time hold and drag the window's title bar, since the game timer will be paused when the window is in the drag / size message loop built into Windows?
🗪
1:22:30LOstTGM What happens with the particles' (more simplified) collision detection if you at the same time hold and drag the window's title bar, since the game timer will be paused when the window is in the drag / size message loop built into Windows?
🗪
1:22:30LOstTGM What happens with the particles' (more simplified) collision detection if you at the same time hold and drag the window's title bar, since the game timer will be paused when the window is in the drag / size message loop built into Windows?
🗪
1:24:32Dragonmaster047 How would you "abstract" a math library as in, the game / engine uses a v2 / v3 / v4 class and you have to use graphics libs with predefined vector classes they use for rendering but you don't want to couple your game with one of these libs?
🗪
1:24:32Dragonmaster047 How would you "abstract" a math library as in, the game / engine uses a v2 / v3 / v4 class and you have to use graphics libs with predefined vector classes they use for rendering but you don't want to couple your game with one of these libs?
🗪
1:24:32Dragonmaster047 How would you "abstract" a math library as in, the game / engine uses a v2 / v3 / v4 class and you have to use graphics libs with predefined vector classes they use for rendering but you don't want to couple your game with one of these libs?
🗪
1:25:27Close down
🗩
1:25:27Close down
🗩
1:25:27Close down
🗩