52 lines
5.3 KiB
Plaintext
52 lines
5.3 KiB
Plaintext
|
[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]
|
|||
|
[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]
|
|||
|
[1:52:08][Gotta go and reboot the machine]
|
|||
|
[/video]
|