Run-time Setting of Compile-time Variables ⚠ Click here to regain focus ⚠
?
?

Keyboard Navigation

Global Keys

W, A, P / S, D, N Jump to previous / next marker
t / T Toggle theatre / SUPERtheatre mode
z Toggle filter mode V Revert filter to original state

Menu toggling

q Quotes r References f Filter c Credits

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

Credits Menu

Enter Open URL (in new tab)
0:08Recap
0:08Recap
0:08Recap
0:41Plan for today
0:41Plan for today
0:41Plan for today
1:43Review of last episode
1:43Review of last episode
1:43Review of last episode
2:03We will be extending the debug system so that we can compile in and out debug features more easily
2:03We will be extending the debug system so that we can compile in and out debug features more easily
2:03We will be extending the debug system so that we can compile in and out debug features more easily
3:21Optional compilation of ground chunk outlines
3:21Optional compilation of ground chunk outlines
3:21Optional compilation of ground chunk outlines
4:47Optional compilation of the particle fountain
4:47Optional compilation of the particle fountain
4:47Optional compilation of the particle fountain
5:07Why doesn't the particle system work?
5:07Why doesn't the particle system work?
5:07Why doesn't the particle system work?
6:50The fountain depends on outdated font code
6:50The fountain depends on outdated font code
6:50The fountain depends on outdated font code
7:00handmade.cpp: Go back to the head fountainα
7:00handmade.cpp: Go back to the head fountainα
7:00handmade.cpp: Go back to the head fountainα
7:32The game overwrote our changes to the handmade config file. Let's prevent that from happening again
7:32The game overwrote our changes to the handmade config file. Let's prevent that from happening again
7:32The game overwrote our changes to the handmade config file. Let's prevent that from happening again
8:29Optional compilation of the particle grid
8:29Optional compilation of the particle grid
8:29Optional compilation of the particle grid
8:48Optional compilation of room outlines
8:48Optional compilation of room outlines
8:48Optional compilation of room outlines
9:28Fixing an outdated call to DrawRectangle
9:28Fixing an outdated call to DrawRectangle
9:28Fixing an outdated call to DrawRectangle
12:28Optional compilation of ground chunk checkerboard patterns
12:28Optional compilation of ground chunk checkerboard patterns
12:28Optional compilation of ground chunk checkerboard patterns
13:38Optional compilation of ground chunk reset on DLL reload
13:38Optional compilation of ground chunk reset on DLL reload
13:38Optional compilation of ground chunk reset on DLL reload
15:40Optional compilation of weird renderer buffer sizes
15:40Optional compilation of weird renderer buffer sizes
15:40Optional compilation of weird renderer buffer sizes
18:14Finding out the correct findstr syntax to list all "#if 0" occurrences
18:14Finding out the correct findstr syntax to list all "#if 0" occurrences
18:14Finding out the correct findstr syntax to list all "#if 0" occurrences
20:40Optional compilation of the behavior that makes the familiar follow the hero
20:40Optional compilation of the behavior that makes the familiar follow the hero
20:40Optional compilation of the behavior that makes the familiar follow the hero
21:29Optional compilation of bilinear lighting sampling
21:29Optional compilation of bilinear lighting sampling
21:29Optional compilation of bilinear lighting sampling
22:09Optional compilation of the room-based camera movement
22:09Optional compilation of the room-based camera movement
22:09Optional compilation of the room-based camera movement
22:30The room-based camera is broken. Let's fix it
22:30The room-based camera is broken. Let's fix it
22:30The room-based camera is broken. Let's fix it
28:10It's working now
28:10It's working now
28:10It's working now
29:08We have enough items for the moment
29:08We have enough items for the moment
29:08We have enough items for the moment
29:55We want to know the values of our compilation switches to write them out to handmade_config.h
29:55We want to know the values of our compilation switches to write them out to handmade_config.h
29:55We want to know the values of our compilation switches to write them out to handmade_config.h
30:57The debug_variable struct will keep the names of the switches, their values and their types
30:57The debug_variable struct will keep the names of the switches, their values and their types
30:57The debug_variable struct will keep the names of the switches, their values and their types
31:51Defining them using the DEBUG_VARIABLE_LISTING macro
31:51Defining them using the DEBUG_VARIABLE_LISTING macro
31:51Defining them using the DEBUG_VARIABLE_LISTING macro
33:32Writing the variables to the config file
33:32Writing the variables to the config file
33:32Writing the variables to the config file
36:00What parameters does _snprintf_s require?
36:00What parameters does _snprintf_s require?
36:00What parameters does _snprintf_s require?
40:00Stepping though the code that builds the contents of the config file
40:00Stepping though the code that builds the contents of the config file
40:00Stepping though the code that builds the contents of the config file
40:45Writing the file worked
40:45Writing the file worked
40:45Writing the file worked
40:59Printing the variable list instead of the old menu items
40:59Printing the variable list instead of the old menu items
40:59Printing the variable list instead of the old menu items
41:52Toggling debug variables
41:52Toggling debug variables
41:52Toggling debug variables
43:08Testing. It works
43:08Testing. It works
43:08Testing. It works
43:42The run-time exclusion of pieces of debug code has some nice properties...
43:42The run-time exclusion of pieces of debug code has some nice properties...
43:42The run-time exclusion of pieces of debug code has some nice properties...
45:10...the only small catch is it still takes too many steps to add a new switch
45:10...the only small catch is it still takes too many steps to add a new switch
45:10...the only small catch is it still takes too many steps to add a new switch
46:14We would like the listing to upgrade itself automatically after a new variable is added, but parsing the code just for that may be going overboard
46:14We would like the listing to upgrade itself automatically after a new variable is added, but parsing the code just for that may be going overboard
46:14We would like the listing to upgrade itself automatically after a new variable is added, but parsing the code just for that may be going overboard
47:05Let's keep the variable listings in a separate file
47:05Let's keep the variable listings in a separate file
47:05Let's keep the variable listings in a separate file
48:31Our radial menu should allow us to _not_ select something once it's active
48:31Our radial menu should allow us to _not_ select something once it's active
48:31Our radial menu should allow us to _not_ select something once it's active
50:00Coloring menu items depending on their value
50:00Coloring menu items depending on their value
50:00Coloring menu items depending on their value
51:08Testing. The menu should not select an action when we remain at its center
51:08Testing. The menu should not select an action when we remain at its center
51:08Testing. The menu should not select an action when we remain at its center
52:06The compilation process is a bit slow, but we can skip the compilation of the asset builder
52:06The compilation process is a bit slow, but we can skip the compilation of the asset builder
52:06The compilation process is a bit slow, but we can skip the compilation of the asset builder
53:23Q&A
53:23Q&A
53:23Q&A
54:45Flederfalter I don't understand why a single if-statement would be expensive if we do it at runtime. Can you give an example?
🗪
54:45Flederfalter I don't understand why a single if-statement would be expensive if we do it at runtime. Can you give an example?
🗪
54:45Flederfalter I don't understand why a single if-statement would be expensive if we do it at runtime. Can you give an example?
🗪
1:07:54elxenoaizd Why are we adding // b32 comment in the config file?
🗪
1:07:54elxenoaizd Why are we adding // b32 comment in the config file?
🗪
1:07:54elxenoaizd Why are we adding // b32 comment in the config file?
🗪
1:08:30TheSizik Can you toggle the debug options while looping?
🗪
1:08:30TheSizik Can you toggle the debug options while looping?
🗪
1:08:30TheSizik Can you toggle the debug options while looping?
🗪
1:13:06andsz_ You should add an optimization switch to the UI at some point
🗪
1:13:06andsz_ You should add an optimization switch to the UI at some point
🗪
1:13:06andsz_ You should add an optimization switch to the UI at some point
🗪
1:14:02andsz_ Wouldn't -O2 optimize those dead branches out?
🗪
1:14:02andsz_ Wouldn't -O2 optimize those dead branches out?
🗪
1:14:02andsz_ Wouldn't -O2 optimize those dead branches out?
🗪
1:14:41ingenero Could you have an option to either recompile or simply toggle an "if"? It seems like most of the time you would use the regular "if" so the change is instantaneous, but in extreme cases you could easily just do the recompile option
🗪
1:14:41ingenero Could you have an option to either recompile or simply toggle an "if"? It seems like most of the time you would use the regular "if" so the change is instantaneous, but in extreme cases you could easily just do the recompile option
🗪
1:14:41ingenero Could you have an option to either recompile or simply toggle an "if"? It seems like most of the time you would use the regular "if" so the change is instantaneous, but in extreme cases you could easily just do the recompile option
🗪
1:16:25We are overtime
1:16:25We are overtime
1:16:25We are overtime