[video output=day271 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Hybrid Tile-based Movement" vod_platform=youtube id=S5VtscjLjnk annotator=Miblo]
[0:20][Recap and set the stage for the day]
[3:52][handmade_sim_region.h and handmade_world_mode.cpp: Disassociate the hero's head and body]
[17:37][Run the game and move the head]
[18:26][handmade_world_mode.cpp: Make the body follow the head along the traversable points]
[28:45][handmade_sim_region.cpp: Introduce GetSimSpaceTraversable]
[32:02][Run the game and see the body following the head]
[34:06][handmade.cpp: Start up directly into the game, rather than the cutscene]
[36:02][Debugger: Jump into PlayWorld and investigate what's going on]
[41:46]["That's just super accidental"][quote 476]
[42:45][handmade_world_mode.cpp: Set WorldMode in PlayWorld]
[44:34][handmade.cpp: Force the start button to be pressed]
[47:02][Run the game and arrive directly at the game]
[48:43][win32_handmade.cpp: Correct the GameUpdateHz computation]
[49:59][Run the game and move at the more correct speed]
[51:12][handmade_world_mode.cpp: Make the body accelerate towards the traversable points]
[57:05][Run the game and see the body accelerate towards the head]
[59:38]["My body will track me, but it will never come to rest"][quote 477]
[1:00:10]["I want the head to snap back to the body when you stop pushing"][quote 478]
[1:00:29][Q&A][:speech]
[1:00:58][@yoonfan][When I write event-driven code, I am often forced to use dynamic memory allocation to preserve some state until it is needed by the callback. How do you deal with those situations?]
[1:03:35][@robrobby][Would the Handmade debug view enable viewing structs like world mode?]
[1:03:58][@longboolean][When moving diagonally, will it be clear to the player which way the body will go to get to the diagonal entity? Right now it seems kind of random]
[1:05:55][handmade_world_mode.cpp: Introduce DesiredDirection in order to make the body move more directly to the head]
[1:07:28][handmade_math.h: Introduce NOZ (Normalize or Zero)]
[1:12:14][Run the game and try out our new movement]
[1:12:37][handmade_world_mode.cpp: Conditionally set the closest point]
[1:14:03][Run the game and see the body stopping more close to the points]
[1:15:21][handmade_world_mode.cpp: Revert to the original movement]
[1:16:43][@chronaldragon][This may just be an illusion but it looks like the body is snapping to the corner of tiles. Usually in tile-based games, entities occupy the center of a tile. Is this intentional?]
[1:17:22][handmade_world_mode.cpp: Make MakeSimpleFloorCollision draw the tiles]
[1:18:01][Run the game, see the tiles and move around on them]
[1:18:40][@chronaldragon][At the end of Q&A, can you announce a reminder that the forums are going down shortly?]
[1:18:54][handmade_world_mode.cpp: #if 0 that tile drawing]
[1:19:08][Close up shop][:speech]
[1:20:05][Announce that the Handmade Hero forums will be going down very soon while Handmade Network launches[ref
    site="Handmade Network"
    url="https://handmade.network/"]][:research]
[/video]
