cinera_handmade.network/cmuratori/hero/code/code348.hmml

52 lines
5.3 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[video 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 dont 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]