[video output=day348 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Debugging Cutscene Z and Traversable Creation" vod_platform=youtube id=KAO3f4oaqWM annotator=Miblo]
[0:09][Reflect on our recent dynamically allocated arena upgrade]
[2:54][todo.txt: Consult the TODO list]
[4:52][Consider upgrading to a traditional 3D pipeline]
[7:50][Reflect briefly on the series thus far]
[10:45][Build and run and investigate what's happening with the cutscene]
[14:36][handmade_cutscene.cpp: Make RenderLayeredScene() set the FloorZ, run the game and step through the code]
[16:37][handmade_cutscene.cpp: Try flipping that computation of the FloorZ and run the game to see if that's the correct thing to do]
[20:30][Step into GetRenderEntityBasisP() and inspect the P and OffsetP]
[21:34][handmade_cutscene.cpp: Make RenderLayeredScene() set the OffsetP.z as well as the FloorZ, run the game and see that the cutscene has been restored]
[23:53][Run the game and demo the bug with the traversables in the initial creation phase]
[25:00][handmade_sim_region.cpp: Consider how entities are created and packed]
[26:53][Run the game, step in to AddWall() and inspect StandingOn]
[28:15][handmade_world_mode.cpp: Make AddStandardRoom() set the StandingOn.Entity.Ptr, run the game and see that all is fixed]
[30:11][Consider how to clean up where arenas are used and how]
[35:53][Look at all the places a memory_arena is used]
[40:10][Run the game to verify that we're not leaking memory, and leave the arena where it is]
[42:20][Blackboard: Overlapping Sim]
[46:37][build.bat: Run in O2 and consult the profiler to gauge the cost of the simulation]
[50:02][handmade_world_mode.cpp: Make PlayWorld() create more rooms, run the game and consider implementing a debug camera that shows multiple sim regions]
[52:27][handmade_world_mode.cpp: Introduce UpdateAndRenderSimRegion() to do some of the work of UpdateAndRenderWorld()]
[1:01:52][Q&A][:speech]
[1:02:09][Run the game and try out the boost pad]
[1:02:41][hadnmade_world_mode.cpp: Make AddStandardRoom() move the boosters down one tile, run the game and check it out]
[1:04:33][@longboolean][Will the switch to 3D affect the artwork for Handmade Hero?]
[1:05:48][@uliori][Can I ask an off-topic question?]
[1:07:02][@uliori][Hi, I am way behind you in the series, but you talked about "mixin". I don’t know if you did this yet, but can you please explain it?]
[1:11:44][@macielda][Are you working on entity interactions soon (like fire weapons vs ice monster, poisonous arrows and stuff like that)?]
[1:11:55][@tinyconstruct][(Very off-topic) Can you think of the last time you took a dynamic programming approach to a problem (e.g. shortest edit distance, optimal BSTs, etc)? DP algorithms are allegedly a common interview topic, despite how silly that seems]
[1:13:36][Blackboard: Divide & Conquer vs Dynamic Programming]
[1:16:04][handmade_render.cpp: Describe RecursiveFrontToBack() as an example of dynamic programming]
[1:18:26][@Miblo][How about movable boosters, that you can set up to chain-boost you?]
[1:18:54][Consider possibilities for dynamic programming]
[1:20:28][@dsjimenez][So part of the dynamic programming question mentioned the coding interview. Do you do one for new hires?]
[1:20:57][On asking people about problems]
[1:24:47][Chris Hecker's tech interviewing method]
[1:30:19][On putting people on their own turf]
[1:33:14][@mvandevander][Is there any time that you've talked about deep learning in depth? Also wondering if you've thought about it in terms of IF parsing problems]
[1:33:45][@teryrords][Speaking of past jobs, would you rather see a job at a Java shop (industry experience) vs. a local college's faculty for High Performance Computing (academia)?]
[1:36:11][@dsjimenez][Great interview answer, thanks. The only issue I've had with that is candidates who have no projects they're proud enough to really talk about, and I feel like I'm judging them unfairly for not having the same interest for programming outside of work / class]
[1:37:42][@longboolean][What are some things that can cause a smart individual who has a good understanding of programming to not be productive, and what can be done to eliminate these causes?]
[1:40:18][@roam00010011][But people do come with big claims on their resume, you got to at least ask about pointer math if you're hiring a C expert]
[1:41:46][@chochmah][Who wouldn't know how to reverse a linked list? You can do that on the spot]
[1:44:37][@jkugelman][Often I have a hard time digging in to people's past projects because they throw out tons of acronyms, jargon, frameworks, etc., that I'm not familiar with. Maybe they've worked in a completely different industry, like medical or defense, and their work context is totally unfamiliar to me. How do you handle that?]
[1:46:34][@sssmcgrath][I like this interview methodology. Maybe in a chat stream one day you could mock interview someone (me?) as a demonstration]
[1:47:10][@mvandevander][I think we need to title it "Casey Muratori's Enhanced Interview Techniques"]
[1:47:43][@sssmcgrath][I'll do it another day if you want (can't tonight)!]
[1:48:22][@superjercom][This is actually already how I do interviews. The problem is people tend to be totally blindsided by being asked about their own experience]
[1:49:34][On how this technique is impervious to hacking][:speech]
[1:52:08][Gotta go and reboot the machine][:speech]
[/video]
