Handmade Hero»Episode Guide
Cleaned Up Streaming Entity Simulation
?
?

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:50Recap and set the stage for the day
0:50Recap and set the stage for the day
0:50Recap and set the stage for the day
1:11handmade_world.cpp: Get the sizeof *Source in PackEntityIntoChunk
1:11handmade_world.cpp: Get the sizeof *Source in PackEntityIntoChunk
1:11handmade_world.cpp: Get the sizeof *Source in PackEntityIntoChunk
2:15handmade_sim_region.h: Rename StorageIndex to ID in entity
2:15handmade_sim_region.h: Rename StorageIndex to ID in entity
2:15handmade_sim_region.h: Rename StorageIndex to ID in entity
4:12handmade_sim_region.cpp: Rename GetHashFromStorage to GetHashFromID
4:12handmade_sim_region.cpp: Rename GetHashFromStorage to GetHashFromID
4:12handmade_sim_region.cpp: Rename GetHashFromStorage to GetHashFromID
4:55handmade_sim_region.h and .cpp: Remove EntityFlag_Nonspacial from entity_flags and continue cleaning stuff up
4:55handmade_sim_region.h and .cpp: Remove EntityFlag_Nonspacial from entity_flags and continue cleaning stuff up
4:55handmade_sim_region.h and .cpp: Remove EntityFlag_Nonspacial from entity_flags and continue cleaning stuff up
8:06handmade_world_mode.cpp and handmade_entity.h: Remove the Sword
8:06handmade_world_mode.cpp and handmade_entity.h: Remove the Sword
8:06handmade_world_mode.cpp and handmade_entity.h: Remove the Sword
12:34handmade_world.cpp: Make PackEntityIntoWorld store the entity's location
12:34handmade_world.cpp: Make PackEntityIntoWorld store the entity's location
12:34handmade_world.cpp: Make PackEntityIntoWorld store the entity's location
15:40Debugger: Step into BeginSim and find that we don't get any entities out in our initial pack
15:40Debugger: Step into BeginSim and find that we don't get any entities out in our initial pack
15:40Debugger: Step into BeginSim and find that we don't get any entities out in our initial pack
18:21Debugger: Step into PackEntityIntoWorld and follow the code through to RemoveWorldChunk
18:21Debugger: Step into PackEntityIntoWorld and follow the code through to RemoveWorldChunk
18:21Debugger: Step into PackEntityIntoWorld and follow the code through to RemoveWorldChunk
23:57handmade_world.cpp: Increment the Chunk->EntityCount in PackEntityIntoChunk
23:57handmade_world.cpp: Increment the Chunk->EntityCount in PackEntityIntoChunk
23:57handmade_world.cpp: Increment the Chunk->EntityCount in PackEntityIntoChunk
25:03Run the game and see that we're getting closer, but that the body has stopped tracking the head
25:03Run the game and see that we're getting closer, but that the body has stopped tracking the head
25:03Run the game and see that we're getting closer, but that the body has stopped tracking the head
27:46handmade_sim_region.cpp: Collapse down AddEntityRaw and AddEntity
27:46handmade_sim_region.cpp: Collapse down AddEntityRaw and AddEntity
27:46handmade_sim_region.cpp: Collapse down AddEntityRaw and AddEntity
32:14Run the game and see exactly the same thing
32:14Run the game and see exactly the same thing
32:14Run the game and see exactly the same thing
32:21handmade_sim_region.cpp: Introduce ConnectEntityPointers
32:21handmade_sim_region.cpp: Introduce ConnectEntityPointers
32:21handmade_sim_region.cpp: Introduce ConnectEntityPointers
34:55Run the game and find that the head and body remain connected
34:55Run the game and find that the head and body remain connected
34:55Run the game and find that the head and body remain connected
35:17handmade_entity.h: Move the entity-related structs in from handmade_sim_region.h
35:17handmade_entity.h: Move the entity-related structs in from handmade_sim_region.h
35:17handmade_entity.h: Move the entity-related structs in from handmade_sim_region.h
38:33handmade_world_mode.cpp: Disable the Z-movement and then try traversing the world
38:33handmade_world_mode.cpp: Disable the Z-movement and then try traversing the world
38:33handmade_world_mode.cpp: Disable the Z-movement and then try traversing the world
39:48handmade_sim_region.cpp: Introduce DeleteEntity
39:48handmade_sim_region.cpp: Introduce DeleteEntity
39:48handmade_sim_region.cpp: Introduce DeleteEntity
43:26Run the game and test entering and exiting it
43:26Run the game and test entering and exiting it
43:26Run the game and test entering and exiting it
45:13handmade_entity.h: Explain why world_position is no longer necessary and consider removing it
45:13handmade_entity.h: Explain why world_position is no longer necessary and consider removing it
45:13handmade_entity.h: Explain why world_position is no longer necessary and consider removing it
48:07handmade_sim_region.cpp: Make BeginSim compute world_position and pass ChunkDelta to AddEntity
48:07handmade_sim_region.cpp: Make BeginSim compute world_position and pass ChunkDelta to AddEntity
48:07handmade_sim_region.cpp: Make BeginSim compute world_position and pass ChunkDelta to AddEntity
51:19handmade_sim_region.cpp: Make the EntityP in EndSim relative to ChunkP
51:19handmade_sim_region.cpp: Make the EntityP in EndSim relative to ChunkP
51:19handmade_sim_region.cpp: Make the EntityP in EndSim relative to ChunkP
56:42Run the game and find that we can go off the screen okay
56:42Run the game and find that we can go off the screen okay
56:42Run the game and find that we can go off the screen okay
56:58handmade_sim_region.cpp: Set the Entity->P and chunk movements at the end of EndSim
56:58handmade_sim_region.cpp: Set the Entity->P and chunk movements at the end of EndSim
56:58handmade_sim_region.cpp: Set the Entity->P and chunk movements at the end of EndSim
57:48Run the game and find that the camera does now follow the hero
57:48Run the game and find that the camera does now follow the hero
57:48Run the game and find that the camera does now follow the hero
58:42Q&A
🗩
58:42Q&A
🗩
58:42Q&A
🗩
1:00:25dustinten Is there any real difference between #ifndef and #if !defined? I always use the first but I see you use the latter
🗪
1:00:25dustinten Is there any real difference between #ifndef and #if !defined? I always use the first but I see you use the latter
🗪
1:00:25dustinten Is there any real difference between #ifndef and #if !defined? I always use the first but I see you use the latter
🗪
1:00:55dudeinbasement1 Do you feel like we take steps backward when we get into code we haven't been in in a while, e.g. the problems with moving the screen?
🗪
1:00:55dudeinbasement1 Do you feel like we take steps backward when we get into code we haven't been in in a while, e.g. the problems with moving the screen?
🗪
1:00:55dudeinbasement1 Do you feel like we take steps backward when we get into code we haven't been in in a while, e.g. the problems with moving the screen?
🗪
1:01:22grub_smub Do you use a lot of header files?
🗪
1:01:22grub_smub Do you use a lot of header files?
🗪
1:01:22grub_smub Do you use a lot of header files?
🗪
1:01:53Remove all instances of #if !defined
1:01:53Remove all instances of #if !defined
1:01:53Remove all instances of #if !defined
1:06:07xgabrielxal Why not #pragma once?
🗪
1:06:07xgabrielxal Why not #pragma once?
🗪
1:06:07xgabrielxal Why not #pragma once?
🗪
1:08:56erdomina Would you say the architecture of the entity system is based more on experience than on exploration?
🗪
1:08:56erdomina Would you say the architecture of the entity system is based more on experience than on exploration?
🗪
1:08:56erdomina Would you say the architecture of the entity system is based more on experience than on exploration?
🗪
1:09:28dustinten Do you have a plan for the "components" of the entities? Just use the flags like you are now?
🗪
1:09:28dustinten Do you have a plan for the "components" of the entities? Just use the flags like you are now?
🗪
1:09:28dustinten Do you have a plan for the "components" of the entities? Just use the flags like you are now?
🗪
1:09:47longboolean As a codebase grows new functions are created and others are no longer called anywhere. Are there any good ways that you recommend for finding out which functions / blocks of code are never used anywhere?
🗪
1:09:47longboolean As a codebase grows new functions are created and others are no longer called anywhere. Are there any good ways that you recommend for finding out which functions / blocks of code are never used anywhere?
🗪
1:09:47longboolean As a codebase grows new functions are created and others are no longer called anywhere. Are there any good ways that you recommend for finding out which functions / blocks of code are never used anywhere?
🗪
1:11:29duroate Is there a way to run the game "entirely" and find out what parts of your code aren't being used, to get rid of?
🗪
1:11:29duroate Is there a way to run the game "entirely" and find out what parts of your code aren't being used, to get rid of?
🗪
1:11:29duroate Is there a way to run the game "entirely" and find out what parts of your code aren't being used, to get rid of?
🗪
1:13:02josianmarriott The dynamite jack entity system is similar (but without compression)
🗪
1:13:02josianmarriott The dynamite jack entity system is similar (but without compression)
🗪
1:13:02josianmarriott The dynamite jack entity system is similar (but without compression)
🗪
1:13:37ttbjm Have you checked LOC recently?
🗪
1:13:37ttbjm Have you checked LOC recently?
🗪
1:13:37ttbjm Have you checked LOC recently?
🗪
1:14:14Jim0_o How is your arm now? Any chance of a streamathon?
🗪
1:14:14Jim0_o How is your arm now? Any chance of a streamathon?
🗪
1:14:14Jim0_o How is your arm now? Any chance of a streamathon?
🗪
1:14:39dudeinbasement1 CTime needs cloc built-in
🗪
1:14:39dudeinbasement1 CTime needs cloc built-in
🗪
1:14:39dudeinbasement1 CTime needs cloc built-in
🗪
1:15:37J_vanRijn Re code coverage, when Farbrausch was trying to cut down size of Kkrieger they wrote a quick code coverage tool called Lekktor and because someone didn't use a certain key in the menu, the code to handle it was left out in the released version
🗪
1:15:37J_vanRijn Re code coverage, when Farbrausch was trying to cut down size of Kkrieger they wrote a quick code coverage tool called Lekktor and because someone didn't use a certain key in the menu, the code to handle it was left out in the released version
🗪
1:15:37J_vanRijn Re code coverage, when Farbrausch was trying to cut down size of Kkrieger they wrote a quick code coverage tool called Lekktor and because someone didn't use a certain key in the menu, the code to handle it was left out in the released version
🗪
1:20:33Wrap it up
🗩
1:20:33Wrap it up
🗩
1:20:33Wrap it up
🗩