[video output=day074 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Moving Entities Up and Down Stairwells" vod_platform=youtube id=Hm_CTQwV13U annotator=Miblo annotator=schme]
[1:31][Blackboard: Processing entities in pairs]
[4:23][Blackboard: Using that table to process stairwell overlapping]
[6:57][Blackboard: Travelling inside the stairwell]
[9:07][Blackboard: Letting the stairwell take control]
[10:38][Blackboard: Lava]
[13:58][handmade_sim_region.cpp: Remove the WasOverlapping check]
[15:12][Add HandleOverlap to MoveEntity]
[17:59][Compile and double check that it's still working]
[18:13][Write CanOverlap and HandleOverlap]
[20:59][Consider reconceptualising the Ground]
[24:12][Continue writing HandleOverlap]
[25:23][Learn something new about the codebase][quote 32]
[25:29][handmade.cpp: Draw the Stairwell as a rectangle]
[26:48][Take a look at the stairwell and describe what we want to do]
[27:28][Blackboard: Handling both ends of the stairwell]
[28:48][Blackboard: The concept of mapping for any rectangle]
[34:39]["This means nothing"][quote 33]
[35:17][handmade_math.h: Introduce GetBarycentric]
[36:42][Introduce SafeRatio functions]
[39:03][Use GetBarycentric in HandleOverlap]
[41:12][Blackboard: Lerp]
[42:41][handmade_math.h: Introduce Lerp]
[43:05][handmade_sim_region.cpp: Use Lerp in HandleOverlap]
[43:56][Handle the stairwell collision in CanCollide]
[44:21][Run the game and try walking through the stairwell]
[44:50][Debugger: Step into HandleOverlap]
[45:38][handmade_sim_region.cpp: Check for things overlapping themselves]
[46:15][handmade.cpp and handmade_sim_region.h: Introduce EntityFlag_Moveable]
[48:13][handmade_entity.h: Pluralise the Flag functions]
[49:06][Debugger: Step into HandleOverlap]
[49:45][We already need the clamp][quote 34]
[50:05][Blackboard: How a guy can overlap the stairwell despite his point not being in it]
[50:36][handmade_math.h: Introduce Clamp functions]
[52:51][Debugger: Step into HandleOverlap and ensure that our barycentric coordinates are normalised]
[53:48][Blackboard: Positioning our stairwell]
[55:02][handmade.cpp: Do an offset of that ChunkPositionFromTilePosition, because he can][quote 35]
[55:56][handmade_world.h: Make ChunkPositionFromTilePosition take AdditionalOffset]
[56:27][Run the game and look for the stairwell]
[56:52][handmade_sim_region.cpp: Gather entities by ChunkZ correctly]
[58:14][Run the game and see two levels at the same time]
[58:59][Debugger: Step into HandleOverlap and find that we're not hitting the test]
[1:00:23][Debugger: Investigate why the inclusion test fails]
[1:01:35][Blackboard: The perils of not having the concept of Ground]
[1:03:12][handmade.cpp: Make the stairwells bigger for now]
[1:03:58][Run the game and find we're lerping properly]
[1:04:38][handmade_sim_region.cpp: Use our Ground value]
[1:04:57][Run the game and find that we're getting closer]
[1:06:40][handmade_sim_region.cpp: Additionally test the entities' Z planes to determine if they CanCollide]
[1:07:07][Run the game and find that we're sort of getting there]
[1:08:40][Q&A][:speech]
[1:09:11][@duroate][Is the familiar going to be programmed to be able to go through the stairwell or instantly teleported to the floor?]
[1:10:04][@jackkrozzer][When are we going to do priority for which sprite is in front and in the background? (I don't know what that is called)]
[1:12:02][@duroate][You mentioned that you'll be able to attack from below / above. Will you be able to do that on the stairwell?]
[1:12:59][@thisdyingsoul][I've just started to see your videos, but you already talked / programmed about entity systems. Will you use it here?]
[1:14:00][@ps4tv][Does the scope of this application include moving environments, so you will need to introduce logic to detect movement of assets?]
[1:14:50][@insofaras][Will the game have color grading for different areas, e.g. the blue & black cloak the hero wears might appear as two other colors in some lighting conditions?]
[1:16:00][@ifingerbangedurcat][What are the piece groups and how are they used / useful for our current use in sprite rendering?]
[1:17:15][@vashnare][Can you please, forgive my French, somehow un *** the net coding for DayZ Standalone and finish what Dean "Rocket" Hall gave up on?]
[1:18:17][@jackkrozzer][Will enemies follow you upstairs or down? If they do, how will the space outside the camera work?]
[1:18:44][@gaudongaming][How will you handle sprite animation? Are you using a library and have you ever hear of the Spine 2D skeleton animation framework?]
[1:19:51][@jackkrozzer][Who is that guy?[ref
    site="Twitter"
    page="@Mike_Sart"
    url="https://twitter.com/Mike_Sart"]]
[1:21:37][@jackkrozzer][I mean with there being different floors will it be different? I am assuming not]
[1:22:48][@xghost7][Can you run this game so some of us see its current state?]
[1:26:54][@jackkrozzer][Okay, so you know how we have the camera space and then there's a space outside that we can't see but entities are still moving? Will we need to edit that code to make it work on "Vertical" floors? It's okay if you don't get it. I may be thinking too far in]
[1:28:02][@shadowrelic][Would we use a fixed, discrete animation for moving up and down stairs a la Link to the Past, or would the goal be to make movement seamless?]
[1:29:04][@xghost7][How much lines of code do you have at the moment?]
[1:29:55][That is the end][:speech]
[/video]
