Updating the Player Movement Code
?
?

Keyboard Navigation

Global Keys

[, < / ], > Jump to previous / next episode
W, K, P / S, J, N Jump to previous / next timestamp
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 and Index Controls

a
w
s
d
h j k l


Esc Close menu / unfocus timestamp

Quotes and References Menus and Index

Enter Jump to timestamp

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:07Recap and set the stage for a few weeks of bouncing around
🗩
0:07Recap and set the stage for a few weeks of bouncing around
🗩
0:07Recap and set the stage for a few weeks of bouncing around
🗩
3:16Determine to lock down the movement code and make tools to build rooms
🗩
3:16Determine to lock down the movement code and make tools to build rooms
🗩
3:16Determine to lock down the movement code and make tools to build rooms
🗩
7:19Re-enable the hero in AddPlayer()
7:19Re-enable the hero in AddPlayer()
7:19Re-enable the hero in AddPlayer()
8:09Run the game and traverse our hero around the world a little
🏃
8:09Run the game and traverse our hero around the world a little
🏃
8:09Run the game and traverse our hero around the world a little
🏃
10:49Determine to move from a continuous movement style to a tile-based one
🏃
10:49Determine to move from a continuous movement style to a tile-based one
🏃
10:49Determine to move from a continuous movement style to a tile-based one
🏃
14:59Re-enable doors in all directions in PlayWorld()
14:59Re-enable doors in all directions in PlayWorld()
14:59Re-enable doors in all directions in PlayWorld()
15:17Run the game to see those bigger rooms
🏃
15:17Run the game to see those bigger rooms
🏃
15:17Run the game to see those bigger rooms
🏃
16:07Introduce ExecuteBrainHero() to handle the Type_brain_hero case from ExecuteBrain()
16:07Introduce ExecuteBrainHero() to handle the Type_brain_hero case from ExecuteBrain()
16:07Introduce ExecuteBrainHero() to handle the Type_brain_hero case from ExecuteBrain()
20:20Try out the gamepad controller to see that it happily still works
🏃
20:20Try out the gamepad controller to see that it happily still works
🏃
20:20Try out the gamepad controller to see that it happily still works
🏃
21:38Reacquaint ourselves with the gamepad controller code in ExecuteBrainHero(), encountering the Atan2() call mentioned by Pseudonym731
21:38Reacquaint ourselves with the gamepad controller code in ExecuteBrainHero(), encountering the Atan2() call mentioned by Pseudonym731
21:38Reacquaint ourselves with the gamepad controller code in ExecuteBrainHero(), encountering the Atan2() call mentioned by Pseudonym731
25:24Only permit movement in ExecuteBrainHero() if we have a head and a body
25:24Only permit movement in ExecuteBrainHero() if we have a head and a body
25:24Only permit movement in ExecuteBrainHero() if we have a head and a body
30:04Run the game to see the same movement
🏃
30:04Run the game to see the same movement
🏃
30:04Run the game to see the same movement
🏃
31:11Body Motion
🖌
31:11Body Motion
🖌
31:11Body Motion
🖌
35:27Replace the current movement code in ExecuteBrainHero() with the beginnings of a tile-wise, tapped hopping scheme
35:27Replace the current movement code in ExecuteBrainHero() with the beginnings of a tile-wise, tapped hopping scheme
35:27Replace the current movement code in ExecuteBrainHero() with the beginnings of a tile-wise, tapped hopping scheme
45:52Run the game to see the head's analogue movement
🏃
45:52Run the game to see the head's analogue movement
🏃
45:52Run the game to see the head's analogue movement
🏃
46:36Enable ExecuteBrainHero() to initiate hops, with a few words on feel in terms of non-laggy but forgiving input handling
46:36Enable ExecuteBrainHero() to initiate hops, with a few words on feel in terms of non-laggy but forgiving input handling
46:36Enable ExecuteBrainHero() to initiate hops, with a few words on feel in terms of non-laggy but forgiving input handling
50:50Run the game and try hopping, noting the nicety of holding down the key for continuous movement, and consider using a clutch to control dodging
🏃
50:50Run the game and try hopping, noting the nicety of holding down the key for continuous movement, and consider using a clutch to control dodging
🏃
50:50Run the game and try hopping, noting the nicety of holding down the key for continuous movement, and consider using a clutch to control dodging
🏃
57:08A few words on games that proliferate the number of buttons
🗩
57:08A few words on games that proliferate the number of buttons
🗩
57:08A few words on games that proliferate the number of buttons
🗩
59:16Add ClutchAverage to game_controller_input and enable WinMainCRTStartup() to process the triggers, change the "Add Player" key to VK_RETURN, and use VK_SPACE for the clutch
59:16Add ClutchAverage to game_controller_input and enable WinMainCRTStartup() to process the triggers, change the "Add Player" key to VK_RETURN, and use VK_SPACE for the clutch
59:16Add ClutchAverage to game_controller_input and enable WinMainCRTStartup() to process the triggers, change the "Add Player" key to VK_RETURN, and use VK_SPACE for the clutch
1:11:12Run the game with the determination to handle dodging using our clutch
🏃
1:11:12Run the game with the determination to handle dodging using our clutch
🏃
1:11:12Run the game with the determination to handle dodging using our clutch
🏃
1:11:43Enable ExecuteBrainHero() to handle the notion of dodging
1:11:43Enable ExecuteBrainHero() to handle the notion of dodging
1:11:43Enable ExecuteBrainHero() to handle the notion of dodging
1:13:05Run the game and try dodging
🏃
1:13:05Run the game and try dodging
🏃
1:13:05Run the game and try dodging
🏃
1:14:10Enable WinMainCRTStartup() to correctly persist the clutch-key state
1:14:10Enable WinMainCRTStartup() to correctly persist the clutch-key state
1:14:10Enable WinMainCRTStartup() to correctly persist the clutch-key state
1:16:52Run the game and try out clutching with Space, noting that this dodging doesn't feel great on the keyboard
🏃
1:16:52Run the game and try out clutching with Space, noting that this dodging doesn't feel great on the keyboard
🏃
1:16:52Run the game and try out clutching with Space, noting that this dodging doesn't feel great on the keyboard
🏃
1:20:12Add the Shift keys as clutches in Win32ProcessPendingMessages()
1:20:12Add the Shift keys as clutches in Win32ProcessPendingMessages()
1:20:12Add the Shift keys as clutches in Win32ProcessPendingMessages()
1:22:11Try out the Space and Shift clutching
🏃
1:22:11Try out the Space and Shift clutching
🏃
1:22:11Try out the Space and Shift clutching
🏃
1:22:41Re-enable stretchy leaning in ExecuteBrainHero()
1:22:41Re-enable stretchy leaning in ExecuteBrainHero()
1:22:41Re-enable stretchy leaning in ExecuteBrainHero()
1:24:54Try out the stretchy leaning
🏃
1:24:54Try out the stretchy leaning
🏃
1:24:54Try out the stretchy leaning
🏃
1:26:43Delete extraneous code from ExecuteBrainHero()
1:26:43Delete extraneous code from ExecuteBrainHero()
1:26:43Delete extraneous code from ExecuteBrainHero()
1:28:52Traverse the world with Body->dP disabled
🏃
1:28:52Traverse the world with Body->dP disabled
🏃
1:28:52Traverse the world with Body->dP disabled
🏃
1:29:07Toggle on the Body->ddtBob calculation in ExecuteBrainHero()
1:29:07Toggle on the Body->ddtBob calculation in ExecuteBrainHero()
1:29:07Toggle on the Body->ddtBob calculation in ExecuteBrainHero()
1:30:01Traverse the world and consider the bounce animation to be fine
🏃
1:30:01Traverse the world and consider the bounce animation to be fine
🏃
1:30:01Traverse the world and consider the bounce animation to be fine
🏃
1:31:18Introduce the notion of crouch while dodging in ExecuteBrainHero()
1:31:18Introduce the notion of crouch while dodging in ExecuteBrainHero()
1:31:18Introduce the notion of crouch while dodging in ExecuteBrainHero()
1:34:02Run the game and try dodging
🏃
1:34:02Run the game and try dodging
🏃
1:34:02Run the game and try dodging
🏃
1:34:39Enable ExecuteBrainHero() to correctly crouch the head
1:34:39Enable ExecuteBrainHero() to correctly crouch the head
1:34:39Enable ExecuteBrainHero() to correctly crouch the head
1:35:26Run the game to see the head crouching while dodging
🏃
1:35:26Run the game to see the head crouching while dodging
🏃
1:35:26Run the game to see the head crouching while dodging
🏃
1:35:36Enable ExecuteBrainHero() to also crouch the body
1:35:36Enable ExecuteBrainHero() to also crouch the body
1:35:36Enable ExecuteBrainHero() to also crouch the body
1:36:11Run the game to see the crouching
🏃
1:36:11Run the game to see the crouching
🏃
1:36:11Run the game to see the crouching
🏃
1:36:54Reintroduce the springiness if dodging in ExecuteBrainHero()
1:36:54Reintroduce the springiness if dodging in ExecuteBrainHero()
1:36:54Reintroduce the springiness if dodging in ExecuteBrainHero()
1:38:37Traverse the world to try out the springiness while dodging
🏃
1:38:37Traverse the world to try out the springiness while dodging
🏃
1:38:37Traverse the world to try out the springiness while dodging
🏃
1:39:33Prevent diagonal movement in ExecuteBrainHero()
1:39:33Prevent diagonal movement in ExecuteBrainHero()
1:39:33Prevent diagonal movement in ExecuteBrainHero()
1:41:05Run the game to try out the cardinal (non-diagonal) movement
🏃
1:41:05Run the game to try out the cardinal (non-diagonal) movement
🏃
1:41:05Run the game to try out the cardinal (non-diagonal) movement
🏃
1:41:48Q&A
🗩
1:41:48Q&A
🗩
1:41:48Q&A
🗩
1:42:42insobot Q: Celeron ftw. FailFish?
🗪
1:42:42insobot Q: Celeron ftw. FailFish?
🗪
1:42:42insobot Q: Celeron ftw. FailFish?
🗪
1:42:57neitchzehrer Q: Are you planning on having a jump command?
🗪
1:42:57neitchzehrer Q: Are you planning on having a jump command?
🗪
1:42:57neitchzehrer Q: Are you planning on having a jump command?
🗪
1:43:20garryjohanson Don't even remember what a Celeron is
🗪
1:43:20garryjohanson Don't even remember what a Celeron is
🗪
1:43:20garryjohanson Don't even remember what a Celeron is
🗪
1:44:32nxsy Q: There were some questions around b32x vs. b32 at some point
🗪
1:44:32nxsy Q: There were some questions around b32x vs. b32 at some point
🗪
1:44:32nxsy Q: There were some questions around b32x vs. b32 at some point
🗪
1:45:04Miblo Q: How about a dive and slide command?
🗪
1:45:04Miblo Q: How about a dive and slide command?
🗪
1:45:04Miblo Q: How about a dive and slide command?
🗪
1:45:21jamoflaw Q: Are you planning on implementing a control remapping interface?
🗪
1:45:21jamoflaw Q: Are you planning on implementing a control remapping interface?
🗪
1:45:21jamoflaw Q: Are you planning on implementing a control remapping interface?
🗪
1:45:38m0re85 Q: I know your view on comments but I often see you asking yourself "what was all that about?" when looking at old code. Wouldn't it be beneficial to comment non-obvious stuff?
🗪
1:45:38m0re85 Q: I know your view on comments but I often see you asking yourself "what was all that about?" when looking at old code. Wouldn't it be beneficial to comment non-obvious stuff?
🗪
1:45:38m0re85 Q: I know your view on comments but I often see you asking yourself "what was all that about?" when looking at old code. Wouldn't it be beneficial to comment non-obvious stuff?
🗪
1:46:15shadowpro67 Q: What is the reason of pure C? I think C++'s oop and procedural coverage much better
🗪
1:46:15shadowpro67 Q: What is the reason of pure C? I think C++'s oop and procedural coverage much better
🗪
1:46:15shadowpro67 Q: What is the reason of pure C? I think C++'s oop and procedural coverage much better
🗪
1:46:30x13pixels Q: If you don't care how much space a bool is, why not use b8x?
🗪
1:46:30x13pixels Q: If you don't care how much space a bool is, why not use b8x?
🗪
1:46:30x13pixels Q: If you don't care how much space a bool is, why not use b8x?
🗪
1:47:14mrpque Q: Will you eventually make these input commands event driven rather, now that multiple sources of input are being accounted for?
🗪
1:47:14mrpque Q: Will you eventually make these input commands event driven rather, now that multiple sources of input are being accounted for?
🗪
1:47:14mrpque Q: Will you eventually make these input commands event driven rather, now that multiple sources of input are being accounted for?
🗪
1:47:45yourmoviesbaddotnet handmade_hero What do you think are the disadvantages of C++ compared to C? Isn't C basically a subset of C++?
🗪
1:47:45yourmoviesbaddotnet handmade_hero What do you think are the disadvantages of C++ compared to C? Isn't C basically a subset of C++?
🗪
1:47:45yourmoviesbaddotnet handmade_hero What do you think are the disadvantages of C++ compared to C? Isn't C basically a subset of C++?
🗪
1:50:21longboolean Q: Something I thought of, of coarse it is a gameplay thing totally up to you. You could have the dodge double as an attack or have it push enemies away (or something) in the direction of the dodge
🗪
1:50:21longboolean Q: Something I thought of, of coarse it is a gameplay thing totally up to you. You could have the dodge double as an attack or have it push enemies away (or something) in the direction of the dodge
🗪
1:50:21longboolean Q: Something I thought of, of coarse it is a gameplay thing totally up to you. You could have the dodge double as an attack or have it push enemies away (or something) in the direction of the dodge
🗪
1:50:49ricecream Q: Since you interviewed Pat Wyatt in 2015 HandmadeCon, have you ever thought about copying the Guild Wars faux Z-axis configuration?
🗪
1:50:49ricecream Q: Since you interviewed Pat Wyatt in 2015 HandmadeCon, have you ever thought about copying the Guild Wars faux Z-axis configuration?
🗪
1:50:49ricecream Q: Since you interviewed Pat Wyatt in 2015 HandmadeCon, have you ever thought about copying the Guild Wars faux Z-axis configuration?
🗪
1:51:50vateferfout Q: What is happening with C++ templates that shouldn't be? Isn't it just generating code based on the template parameters?
🗪
1:51:50vateferfout Q: What is happening with C++ templates that shouldn't be? Isn't it just generating code based on the template parameters?
🗪
1:51:50vateferfout Q: What is happening with C++ templates that shouldn't be? Isn't it just generating code based on the template parameters?
🗪
1:53:46wubbleduff Q: What do you think about entity component systems as the engine architecture? How would you implement this if you don't use inheritance?
🗪
1:53:46wubbleduff Q: What do you think about entity component systems as the engine architecture? How would you implement this if you don't use inheritance?
🗪
1:53:46wubbleduff Q: What do you think about entity component systems as the engine architecture? How would you implement this if you don't use inheritance?
🗪
1:54:25steamymcfly Q: I recently learned about Imperfect Shadow Maps, I wonder if that could be a substitute for raycasting in the current lighting system (at least on the GPU)?
🗪
1:54:25steamymcfly Q: I recently learned about Imperfect Shadow Maps, I wonder if that could be a substitute for raycasting in the current lighting system (at least on the GPU)?
🗪
1:54:25steamymcfly Q: I recently learned about Imperfect Shadow Maps, I wonder if that could be a substitute for raycasting in the current lighting system (at least on the GPU)?
🗪
1:55:54strangezak 400 viewers today. That's a lot more than usual!
🗪
1:55:54strangezak 400 viewers today. That's a lot more than usual!
🗪
1:55:54strangezak 400 viewers today. That's a lot more than usual!
🗪
1:56:16theflame937 Q: Even if you don't do network for the game, will you do some lecture about it?
🗪
1:56:16theflame937 Q: Even if you don't do network for the game, will you do some lecture about it?
🗪
1:56:16theflame937 Q: Even if you don't do network for the game, will you do some lecture about it?
🗪
1:59:22mextrox Q: What are your current thoughts on jai?
🗪
1:59:22mextrox Q: What are your current thoughts on jai?
🗪
1:59:22mextrox Q: What are your current thoughts on jai?
🗪
2:00:09ricecream Q: With the capabilities of mobile games exponentially increasing, what are the decision factors that result in games being ported to mobile?
🗪
2:00:09ricecream Q: With the capabilities of mobile games exponentially increasing, what are the decision factors that result in games being ported to mobile?
🗪
2:00:09ricecream Q: With the capabilities of mobile games exponentially increasing, what are the decision factors that result in games being ported to mobile?
🗪
2:03:18maxkaren Q: What are your thoughts on Rust?
🗪
2:03:18maxkaren Q: What are your thoughts on Rust?
🗪
2:03:18maxkaren Q: What are your thoughts on Rust?
🗪
2:03:25jim0_o Q: What was it C was missing that makes you compile using C++?
🗪
2:03:25jim0_o Q: What was it C was missing that makes you compile using C++?
🗪
2:03:25jim0_o Q: What was it C was missing that makes you compile using C++?
🗪
2:04:37dudeinbasement1 handmade_hero stb doesn't do hinting, is there another lib that supports small text?
🗪
2:04:37dudeinbasement1 handmade_hero stb doesn't do hinting, is there another lib that supports small text?
🗪
2:04:37dudeinbasement1 handmade_hero stb doesn't do hinting, is there another lib that supports small text?
🗪
2:05:35neitchzehrer Q: How many types of enemies are you planning on having?
🗪
2:05:35neitchzehrer Q: How many types of enemies are you planning on having?
🗪
2:05:35neitchzehrer Q: How many types of enemies are you planning on having?
🗪
2:05:42keepingtrckofthisacct handmade_hero How long have you been coding?
🗪
2:05:42keepingtrckofthisacct handmade_hero How long have you been coding?
🗪
2:05:42keepingtrckofthisacct handmade_hero How long have you been coding?
🗪
2:05:59warner handmade_hero Kind of off-topic question but here it goes: I've been in the gamedev industry working with studios, but now I decided to make an independent game of my own, and I kinda want to make a Kickstarter. Do you have any recommendations on that?
🗪
2:05:59warner handmade_hero Kind of off-topic question but here it goes: I've been in the gamedev industry working with studios, but now I decided to make an independent game of my own, and I kinda want to make a Kickstarter. Do you have any recommendations on that?
🗪
2:05:59warner handmade_hero Kind of off-topic question but here it goes: I've been in the gamedev industry working with studios, but now I decided to make an independent game of my own, and I kinda want to make a Kickstarter. Do you have any recommendations on that?
🗪
2:06:16Wrap it up for today
🗩
2:06:16Wrap it up for today
🗩
2:06:16Wrap it up for today
🗩