[video output=day293 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Moving Familiars" vod_platform=youtube id=DIssBI1JBz8 annotator=Miblo]
[2:02][Recap and set the stage for the day]
[5:22][handmade_entity.h: Add MovementMode_Floating to entity_movement_mode]
[10:00][Consider where the delineation between MovementMode and Brain should be]
[13:40][handmade_brain.cpp: Enable ExecuteBrain to make the Familiar occupy traversables and do transactional movement]
[21:50][Debugger: Step into Type_brain_familiar in ExecuteBrain and investigate why the Familiar isn't moving]
[24:40][handmade_sim_region.cpp: Make GetClosestTraversable set Entity.Index]
[24:59][Run the game and see the Familiar move]
[26:27][Blackboard: Proportional Derivative (and Integral) Controller]
[30:31][handmade_brain.cpp: Make ExecuteBrain set a spring on the Familiar]
[31:15][Run the game and see the spring in action]
[35:11][handmade_brain.cpp: Introduce the notion of a TargetTraversable which the Familiar moves towards]
[37:09][handmade_sim_region.cpp: Introduce IsOccupied]
[38:50][Run the game and see that the Familiar follows us]
[39:07][handmade_world_mode.cpp: Make AddStandardRoom randomly offset the grid points]
[41:31][Run the game and see the irregular grid, with everyone able to function on it]
[44:20][handmade_sim_region.cpp: Introduce GetClosestTraversableAlongRay]
[46:39][handmade_brain.cpp: Make ExecuteBrain call GetClosestTraversableAlongRay for the Familiar]
[49:04][Run the game and see that the Familiar is more stable]
[50:20][handmade_sim_region.cpp: Add a TIMED_FUNCTION for GetClosestTraversable and GetClosestTraversableAlongRay]
[51:06][Run the game and view the profiler]
[52:43][build.bat: Temporarily switch to -O2 and then run the game and see how that affects our performance]
[56:11][handmade_sim_region.cpp: Introduce GetClosestEntityWithBrain and closest_entity]
[1:00:17][handmade_brain.cpp: Make ExecuteBrain call GetClosestEntityWithBrain for the Familiar]
[1:01:44][Run the game and see that it works beautifully]
[1:01:59][Q&A][:speech]
[1:02:44][@garryjohanson][Any thoughts on multithreading the entity system?]
[1:03:01][@insobot][++ and += to reduce memory useage...]
[1:06:07][@evraire][How many more times will you get hit with the texture upload issue before you actually fix it?]
[1:06:42][@roam00010011][Do you have a max entity count at the sim region on the debug display?]
[1:09:26][@serge_rgb][(Out of topic) Milton seems to be treating Wacom input as mouse input. Restart Milton? Will look into it]
[1:10:40][Close things down][:speech]
[/video]
