Handmade Hero»Episode Guide
Basic Multiplayer Support
?
?

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:00:00Intro and welcome
0:00:00Intro and welcome
0:00:00Intro and welcome
0:01:25Where we were..
0:01:25Where we were..
0:01:25Where we were..
0:01:50Addressing a bug that was found by the forums
0:01:50Addressing a bug that was found by the forums
0:01:50Addressing a bug that was found by the forums
0:04:30Thinking about how to handle input
0:04:30Thinking about how to handle input
0:04:30Thinking about how to handle input
0:06:24Which controller maps to which character?
0:06:24Which controller maps to which character?
0:06:24Which controller maps to which character?
0:09:04How we're going to handle this problem
0:09:04How we're going to handle this problem
0:09:04How we're going to handle this problem
0:10:36Mapping a controller to a character
0:10:36Mapping a controller to a character
0:10:36Mapping a controller to a character
0:11:36Pulling player info into the 'entity' structure to support multiple players
0:11:36Pulling player info into the 'entity' structure to support multiple players
0:11:36Pulling player info into the 'entity' structure to support multiple players
0:12:50Modifying game_input to allow for multiple players
0:12:50Modifying game_input to allow for multiple players
0:12:50Modifying game_input to allow for multiple players
0:14:31Changing his mind about how to handle this
0:14:31Changing his mind about how to handle this
0:14:31Changing his mind about how to handle this
0:18:59CameraFollowingEntityIndex
0:18:59CameraFollowingEntityIndex
0:18:59CameraFollowingEntityIndex
0:19:11Making the camera follow a certain player
0:19:11Making the camera follow a certain player
0:19:11Making the camera follow a certain player
0:22:07Drawing all of the players
0:22:07Drawing all of the players
0:22:07Drawing all of the players
0:24:38Fixing HeroFacingDirection
0:24:38Fixing HeroFacingDirection
0:24:38Fixing HeroFacingDirection
0:28:21AboluteValue intrinsic
0:28:21AboluteValue intrinsic
0:28:21AboluteValue intrinsic
0:29:31Adding an entity to the game
0:29:31Adding an entity to the game
0:29:31Adding an entity to the game
0:31:23Initializing a player
0:31:23Initializing a player
0:31:23Initializing a player
0:33:40Crash!
0:33:40Crash!
0:33:40Crash!
0:36:24MovePlayer()
0:36:24MovePlayer()
0:36:24MovePlayer()
0:39:24Moving player width/height into InitializePlayer()
0:39:24Moving player width/height into InitializePlayer()
0:39:24Moving player width/height into InitializePlayer()
0:42:15Calling the movement code
0:42:15Calling the movement code
0:42:15Calling the movement code
0:43:24Debugging the movement code
0:43:24Debugging the movement code
0:43:24Debugging the movement code
0:47:08Some days, you just have to fire yourself.α
0:47:08Some days, you just have to fire yourself.α
0:47:08Some days, you just have to fire yourself.α
0:49:06Fixing facing direction, again
0:49:06Fixing facing direction, again
0:49:06Fixing facing direction, again
0:50:42Retuning movement constants
0:50:42Retuning movement constants
0:50:42Retuning movement constants
0:52:09What we're going to do tomorrow
0:52:09What we're going to do tomorrow
0:52:09What we're going to do tomorrow
0:53:00BRB, controller!
0:53:00BRB, controller!
0:53:00BRB, controller!
0:53:59Demo of mult-player support
0:53:59Demo of mult-player support
0:53:59Demo of mult-player support
0:54:30Q&A
🗩
0:54:30Q&A
🗩
0:54:30Q&A
🗩
0:55:08On split-screen what kind of resolution were you thinking for each?
0:55:08On split-screen what kind of resolution were you thinking for each?
0:55:08On split-screen what kind of resolution were you thinking for each?
0:56:15You once said visualizing problems is never a wasted effort. Should we use it for collision detection?
0:56:15You once said visualizing problems is never a wasted effort. Should we use it for collision detection?
0:56:15You once said visualizing problems is never a wasted effort. Should we use it for collision detection?
0:56:52Are entities just for players or all game objects?
0:56:52Are entities just for players or all game objects?
0:56:52Are entities just for players or all game objects?
0:57:23How input be handled when both players trigger an action at the same time?
0:57:23How input be handled when both players trigger an action at the same time?
0:57:23How input be handled when both players trigger an action at the same time?
0:57:46Who is the camera following with multiple players? [code change]
0:57:46Who is the camera following with multiple players? [code change]
0:57:46Who is the camera following with multiple players? [code change]
1:00:44When you decided to have multiple players you decided to call them entities. Why?
1:00:44When you decided to have multiple players you decided to call them entities. Why?
1:00:44When you decided to have multiple players you decided to call them entities. Why?
1:01:56How do you make the characters not run through the trees?
1:01:56How do you make the characters not run through the trees?
1:01:56How do you make the characters not run through the trees?
1:03:50Why are we doing physical based movement?
1:03:50Why are we doing physical based movement?
1:03:50Why are we doing physical based movement?
1:04:37Will we be doing any image manipulation with code?
1:04:37Will we be doing any image manipulation with code?
1:04:37Will we be doing any image manipulation with code?
1:04:47Any reason to catch failing to load art assets? [code change]
1:04:47Any reason to catch failing to load art assets? [code change]
1:04:47Any reason to catch failing to load art assets? [code change]
1:06:54Is the notion of having all entities in a single array something that'll stay for long?
1:06:54Is the notion of having all entities in a single array something that'll stay for long?
1:06:54Is the notion of having all entities in a single array something that'll stay for long?
1:07:22Why do you not use an auto-compiler?
1:07:22Why do you not use an auto-compiler?
1:07:22Why do you not use an auto-compiler?
1:07:51How would disconnected controllers mid-game gracefully handled?
1:07:51How would disconnected controllers mid-game gracefully handled?
1:07:51How would disconnected controllers mid-game gracefully handled?
1:08:53When comparing a float to zero shouldn't we be checking withing a tolerance instead?
1:08:53When comparing a float to zero shouldn't we be checking withing a tolerance instead?
1:08:53When comparing a float to zero shouldn't we be checking withing a tolerance instead?
1:09:26Will there be diagonal movement sprites to the hero?
1:09:26Will there be diagonal movement sprites to the hero?
1:09:26Will there be diagonal movement sprites to the hero?
1:10:29Since small velocities were brought up, will we account for small inputs i.e. deadzones?
1:10:29Since small velocities were brought up, will we account for small inputs i.e. deadzones?
1:10:29Since small velocities were brought up, will we account for small inputs i.e. deadzones?
1:12:01About storing entities in an array. If there's massive operations on many of them, can this be exploited?
1:12:01About storing entities in an array. If there's massive operations on many of them, can this be exploited?
1:12:01About storing entities in an array. If there's massive operations on many of them, can this be exploited?
1:13:03Why didn't we use the bitmap masks directly?
1:13:03Why didn't we use the bitmap masks directly?
1:13:03Why didn't we use the bitmap masks directly?
1:15:22Are there any games that you've personally developed that are available to the public?
1:15:22Are there any games that you've personally developed that are available to the public?
1:15:22Are there any games that you've personally developed that are available to the public?
1:17:39Why do you use the function call macros?
1:17:39Why do you use the function call macros?
1:17:39Why do you use the function call macros?
1:18:33Will you wait for Jon to finish his presentation tomorrow?
1:18:33Will you wait for Jon to finish his presentation tomorrow?
1:18:33Will you wait for Jon to finish his presentation tomorrow?
1:18:54Can you explain what you mean by 'deadzone on the controller'?
1:18:54Can you explain what you mean by 'deadzone on the controller'?
1:18:54Can you explain what you mean by 'deadzone on the controller'?
1:22:54Do controllers have an outside deadzone?
1:22:54Do controllers have an outside deadzone?
1:22:54Do controllers have an outside deadzone?
1:23:58Addition to bitmap loading question: 'You && with a 32bit value and use what you get'
1:23:58Addition to bitmap loading question: 'You && with a 32bit value and use what you get'
1:23:58Addition to bitmap loading question: 'You && with a 32bit value and use what you get'
1:26:31Can you ever talk about the code you made that shipped 2000+ times?
1:26:31Can you ever talk about the code you made that shipped 2000+ times?
1:26:31Can you ever talk about the code you made that shipped 2000+ times?
1:28:00Will we be using a component system?
1:28:00Will we be using a component system?
1:28:00Will we be using a component system?
1:28:20Any estimation where GUIs will appear?
1:28:20Any estimation where GUIs will appear?
1:28:20Any estimation where GUIs will appear?
1:28:55Chat says: there are rotation instructions
1:28:55Chat says: there are rotation instructions
1:28:55Chat says: there are rotation instructions
1:33:05[code change: Using rotation instructions]
1:33:05[code change: Using rotation instructions]
1:33:05[code change: Using rotation instructions]
1:39:45Rotate will work but it's microcoded, so don't use them if you want performance
1:39:45Rotate will work but it's microcoded, so don't use them if you want performance
1:39:45Rotate will work but it's microcoded, so don't use them if you want performance
1:40:16Doesn't the rotate mess with the XP compatibility?
1:40:16Doesn't the rotate mess with the XP compatibility?
1:40:16Doesn't the rotate mess with the XP compatibility?
1:40:54Pondering about microcode speed
1:40:54Pondering about microcode speed
1:40:54Pondering about microcode speed