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:45yourmoviesbaddotnethandmade_hero What do you think are the disadvantages of C++ compared to C? Isn't C basically a subset of C++?

🗪

1:47:45yourmoviesbaddotnethandmade_hero What do you think are the disadvantages of C++ compared to C? Isn't C basically a subset of C++?

🗪

1:47:45yourmoviesbaddotnethandmade_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:37dudeinbasement1handmade_hero stb doesn't do hinting, is there another lib that supports small text?

🗪

2:04:37dudeinbasement1handmade_hero stb doesn't do hinting, is there another lib that supports small text?

🗪

2:04:37dudeinbasement1handmade_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:42keepingtrckofthisaccthandmade_hero How long have you been coding?

🗪

2:05:42keepingtrckofthisaccthandmade_hero How long have you been coding?

🗪

2:05:42keepingtrckofthisaccthandmade_hero How long have you been coding?

🗪

2:05:59warnerhandmade_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:59warnerhandmade_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:59warnerhandmade_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?