Handmade Hero»Episode Guide
Reorganizing the Head and Body Code
?
?

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:40Run the game and recap our current situation
1:40Run the game and recap our current situation
1:40Run the game and recap our current situation
2:56Stand on the FloatyThingForNow and note a bug
2:56Stand on the FloatyThingForNow and note a bug
2:56Stand on the FloatyThingForNow and note a bug
3:44handmade_world_mode.cpp: Set Found = false for the HeroBody
3:44handmade_world_mode.cpp: Set Found = false for the HeroBody
3:44handmade_world_mode.cpp: Set Found = false for the HeroBody
5:18Run the game, note that the body cannot find a traversable and consider making the head operate more specifically
5:18Run the game, note that the body cannot find a traversable and consider making the head operate more specifically
5:18Run the game, note that the body cannot find a traversable and consider making the head operate more specifically
7:46handmade_world_mode.cpp: Decouple of the hopping from the head and make it happen more predictably
7:46handmade_world_mode.cpp: Decouple of the hopping from the head and make it happen more predictably
7:46handmade_world_mode.cpp: Decouple of the hopping from the head and make it happen more predictably
12:27Run the game, move the head and find that the body does not hop
12:27Run the game, move the head and find that the body does not hop
12:27Run the game, move the head and find that the body does not hop
12:574coder: Indentation request
12:574coder: Indentation request
12:574coder: Indentation request
13:12handmade_world_mode.cpp: Make the controller also control the body, if one exists
13:12handmade_world_mode.cpp: Make the controller also control the body, if one exists
13:12handmade_world_mode.cpp: Make the controller also control the body, if one exists
21:37Run the game and hop around
21:37Run the game and hop around
21:37Run the game and hop around
21:48handmade_world_mode.cpp: Make the Head test to see if the Body can move to a traversable
21:48handmade_world_mode.cpp: Make the Head test to see if the Body can move to a traversable
21:48handmade_world_mode.cpp: Make the Head test to see if the Body can move to a traversable
26:08handmade_entity.h: Introduce IsEqual
26:08handmade_entity.h: Introduce IsEqual
26:08handmade_entity.h: Introduce IsEqual
28:21Run the game and find that nothing has changed
28:21Run the game and find that nothing has changed
28:21Run the game and find that nothing has changed
30:51handmade_world_mode.cpp: Investigate this behaviour with the FloatyThingForNow like a bug, starting with DEBUG_VALUE
30:51handmade_world_mode.cpp: Investigate this behaviour with the FloatyThingForNow like a bug, starting with DEBUG_VALUE
30:51handmade_world_mode.cpp: Investigate this behaviour with the FloatyThingForNow like a bug, starting with DEBUG_VALUE
35:27Record a loop in order to investigate it
35:27Record a loop in order to investigate it
35:27Record a loop in order to investigate it
46:00Blackboard: Figuring out the tile delta
46:00Blackboard: Figuring out the tile delta
46:00Blackboard: Figuring out the tile delta
59:36win32_handmade.cpp: Copy a loop and provide the ability to play one back independently of recording
59:36win32_handmade.cpp: Copy a loop and provide the ability to play one back independently of recording
59:36win32_handmade.cpp: Copy a loop and provide the ability to play one back independently of recording
1:01:52Run the game and try playing back a loop
1:01:52Run the game and try playing back a loop
1:01:52Run the game and try playing back a loop
1:23:14Moment of realisation: This isn't even a bug
1:23:14Moment of realisation: This isn't even a bug
1:23:14Moment of realisation: This isn't even a bug
1:24:44Owl of Shame Moment: FloatyThingForNow is hard-setting the P.zα
1:24:44Owl of Shame Moment: FloatyThingForNow is hard-setting the P.zα
1:24:44Owl of Shame Moment: FloatyThingForNow is hard-setting the P.zα
1:25:05Blackboard: How the FloatyThingForNow messes with the relative coordinate system
1:25:05Blackboard: How the FloatyThingForNow messes with the relative coordinate system
1:25:05Blackboard: How the FloatyThingForNow messes with the relative coordinate system
1:27:20handmade_world_mode.cpp: Set the P.z as a delta for now and then hop onto the FloatyThingForNow and find that the bug has gone
1:27:20handmade_world_mode.cpp: Set the P.z as a delta for now and then hop onto the FloatyThingForNow and find that the bug has gone
1:27:20handmade_world_mode.cpp: Set the P.z as a delta for now and then hop onto the FloatyThingForNow and find that the bug has gone
1:28:39Blackboard: sine and cosine as derivatives of each other
1:28:39Blackboard: sine and cosine as derivatives of each other
1:28:39Blackboard: sine and cosine as derivatives of each other
1:35:06Q&A
🗩
1:35:06Q&A
🗩
1:35:06Q&A
🗩
1:36:06klemensbaum Is there a geometric explanation for the quaternion sandwich product? Where does the formula q * p * conj(q) come from?
🗪
1:36:06klemensbaum Is there a geometric explanation for the quaternion sandwich product? Where does the formula q * p * conj(q) come from?
🗪
1:36:06klemensbaum Is there a geometric explanation for the quaternion sandwich product? Where does the formula q * p * conj(q) come from?
🗪
1:37:00mr4thdimention I am a bit unclear on why the relative positioning of Z worked. Is Z rebased somewhere in the code?
🗪
1:37:00mr4thdimention I am a bit unclear on why the relative positioning of Z worked. Is Z rebased somewhere in the code?
🗪
1:37:00mr4thdimention I am a bit unclear on why the relative positioning of Z worked. Is Z rebased somewhere in the code?
🗪
1:38:33zakssi I'm still quite newbie on programming, but wouldn't commenting your code a bit more help in situations like today?
🗪
1:38:33zakssi I'm still quite newbie on programming, but wouldn't commenting your code a bit more help in situations like today?
🗪
1:38:33zakssi I'm still quite newbie on programming, but wouldn't commenting your code a bit more help in situations like today?
🗪
1:40:40cubercaleb Only three swears? I have counted a lot more than that
🗪
1:40:40cubercaleb Only three swears? I have counted a lot more than that
🗪
1:40:40cubercaleb Only three swears? I have counted a lot more than that
🗪
1:41:04longboolean So, not only did that bug effect the floating thing going to high / low, but it also was the cause of the head picking the wrong point and the body jumping to it?
🗪
1:41:04longboolean So, not only did that bug effect the floating thing going to high / low, but it also was the cause of the head picking the wrong point and the body jumping to it?
🗪
1:41:04longboolean So, not only did that bug effect the floating thing going to high / low, but it also was the cause of the head picking the wrong point and the body jumping to it?
🗪
1:41:23Blackboard: What was causing the guy to jump
1:41:23Blackboard: What was causing the guy to jump
1:41:23Blackboard: What was causing the guy to jump
1:43:15themindoverall What if you really wanted to set an absolute position for an entity? How would you handle that?
🗪
1:43:15themindoverall What if you really wanted to set an absolute position for an entity? How would you handle that?
🗪
1:43:15themindoverall What if you really wanted to set an absolute position for an entity? How would you handle that?
🗪
1:44:00Blackboard: Quaternion Sandwich Product or Similarity Transform
1:44:00Blackboard: Quaternion Sandwich Product or Similarity Transform
1:44:00Blackboard: Quaternion Sandwich Product or Similarity Transform
1:45:56klemensbaum Yes, that's the question
🗪
1:45:56klemensbaum Yes, that's the question
🗪
1:45:56klemensbaum Yes, that's the question
🗪
1:46:34Blackboard: The algebraic reason
1:46:34Blackboard: The algebraic reason
1:46:34Blackboard: The algebraic reason
1:48:56Blackboard: Things that represent a frame of reference
1:48:56Blackboard: Things that represent a frame of reference
1:48:56Blackboard: Things that represent a frame of reference
1:54:38Blackboard: Knowing what B is in the space of A
1:54:38Blackboard: Knowing what B is in the space of A
1:54:38Blackboard: Knowing what B is in the space of A
1:57:27Blackboard: The Similarity Transform
1:57:27Blackboard: The Similarity Transform
1:57:27Blackboard: The Similarity Transform
2:03:16Blackboard: Diagram of the transform
2:03:16Blackboard: Diagram of the transform
2:03:16Blackboard: Diagram of the transform
2:07:17Blackboard: Why do we care about this?
2:07:17Blackboard: Why do we care about this?
2:07:17Blackboard: Why do we care about this?
2:10:35Blackboard: Thinking about this algebraically
2:10:35Blackboard: Thinking about this algebraically
2:10:35Blackboard: Thinking about this algebraically
2:12:05Blackboard: Doing this transform, with P encoded in a different space
2:12:05Blackboard: Doing this transform, with P encoded in a different space
2:12:05Blackboard: Doing this transform, with P encoded in a different space
2:16:08Blackboard: Transforming a bone chain
2:16:08Blackboard: Transforming a bone chain
2:16:08Blackboard: Transforming a bone chain
2:21:02Blackboard: Inserting and expanding the identity
2:21:02Blackboard: Inserting and expanding the identity
2:21:02Blackboard: Inserting and expanding the identity
2:25:43klemensbaum Thank you, very insightful explanation. Can you recommend a book where I can learn more about these kinds of things? How did you learn it all in such an intuitive way?
🗪
2:25:43klemensbaum Thank you, very insightful explanation. Can you recommend a book where I can learn more about these kinds of things? How did you learn it all in such an intuitive way?
🗪
2:25:43klemensbaum Thank you, very insightful explanation. Can you recommend a book where I can learn more about these kinds of things? How did you learn it all in such an intuitive way?
🗪
2:29:21jameswidman Would any of this have been mentioned in the comments in the Granny source code, or is it considered "obvious" to people working in that context?
🗪
2:29:21jameswidman Would any of this have been mentioned in the comments in the Granny source code, or is it considered "obvious" to people working in that context?
🗪
2:29:21jameswidman Would any of this have been mentioned in the comments in the Granny source code, or is it considered "obvious" to people working in that context?
🗪
2:30:51Wrap it up
🗩
2:30:51Wrap it up
🗩
2:30:51Wrap it up
🗩
2:31:32Relaunch the awesome Milton and find that everything is saved and undoable
2:31:32Relaunch the awesome Milton and find that everything is saved and undoable
2:31:32Relaunch the awesome Milton and find that everything is saved and undoable