diff --git a/cmuratori/hero/code/code636.hmml b/cmuratori/hero/code/code636.hmml new file mode 100644 index 0000000..f8aa89f --- /dev/null +++ b/cmuratori/hero/code/code636.hmml @@ -0,0 +1,61 @@ +[video output=day636 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Unembedding Colliding Objects" vod_platform=youtube id=wVqFeFJvcKg annotator=Miblo] +[0:01][Recap and set the stage for the day][:collision :speech] +[0:44][Demo the current state of :collision][:run] +[1:52][:Collision TODOs: 1) Cylindrical boxes][:run] +[4:27][:Collision TODOs: 2) Getting unembedded][:run] +[10:28][Walk through the gliding :collision routine in MoveEntity()][:research] +[14:32][:Collision detection philosophy: Test the same thing every frame][:research] +[16:09][Set up MoveEntity() to handle unembedding][:collision] +[21:09][Let MoveEntity() permissively unembed entities in any direction][:collision] +[22:13][Our embedded glove gets unstuck][:collision :run] +[25:50][Embed the glove in the wall][:collision :run] +[27:17][Determine to unembed based on a displacement motion vector][:collision :research] +[31:24][Determine to produce the motion vector for each voxel position][:collision :research] +[33:33][Determine to make CollidesAtP() produce a repulsion field][:collision :research] +[35:35][Unembedding example][:collision :run] +[37:24][Introduce collision_field for CollidesAtP() to return][:collision :"data structure"] +[38:48][Our :collision behaves identically][:run] +[39:01][Set up MoveEntity() to set its target to the summed Repulsion computed by CollidesAtP()][:collision] +[54:36][The glove can get unembedded laterally][:collision :run] +[55:15][Change MoveEntity() to unembed in the Repulsion-adjusted target direction][:collision] +[58:29][Our glove can move when embedded][:collision :run] +[59:01][Make MoveEntity() update the Best.DistanceSq repeatedly][:collision] +[1:01:44][Our glove cannot move when embedded][:collision :run] +[1:02:15][Plan to make CollidesAtP() compute its quadrilateral Repulsion vector][:collision :research] +[1:07:02][@Molly][Meow] +[1:09:22][Make CollidesAtP() compute its quadrilateral Repulsion vector][:collision] +[1:11:31][Our repulsion-based unembedding works][:collision :run] +[1:13:48][Q&A][:speech] +[1:14:01][Show off Grimm Audio UC1][:admin] +[1:16:35][@jskrist][A bit late to the stream, but what about tracking a previous location and always moving back towards where the entity came?][:collision] +[1:18:21][@csaknezlek][What was the name of that audio box?] +[1:18:44][Grimm Audio UC1[ref + site="Grimm Audio" + page=UC1 + url=https://www.grimmaudio.com/pro-products/pro-converters/pro-uc1/]][:research] +[1:20:46][@amethystr3lm][@handmade_hero As someone who started the series a few days ago and wants to make a game of his own, how do I manage to catch up with the current stage of the game? And should I even care to do that? It's true that I should always pay extra attention where I think I need to, but I don't know what's coming within the 600 episodes and whether spending extra time on things that I thought needed the extra time will be worth it or not as opposed to getting a conceptual idea on the subject and move on] +[1:21:12][Plug and provide feedback on the Episode Guide[ref + site="Handmade Hero" + page="Episode Guide" + url=https://handmadehero.org/#EpisodeGuide]][:research] +[1:23:49][@ceburger][@handmade_hero I recently discovered your stream (so forgive me if you have covered this before). I learn a lot from the in-depth videos on how a computer actually works on a fundamental level, like the C tutorial and the blackboard videos (and I have been programming for 10 years). I am really excited about Star Code Galaxy. Do you have any information about when it will launch and what kind of material it will it cover?[ref + site="Star Code Galaxy" + url=https://starcodegalaxy.com/]] +[1:26:07][@ivereadthesequel][@handmade_hero Can you tease just how awesomesauce the SCG player will be?] +[1:28:51][@centhusiast][Q: Have you implemented some kind of the friction effect for the player walks or runs along the voxel boxes?][:movement] +[1:29:26][@ivereadthesequel][Q: Did you make the final products for each module first and then build the course around each for each module?] +[1:29:44][@mindmark42][Q: Can you explain again how the unembedded vector is calculated?][:collision] +[1:31:00][@mihaivlc93][Q: Any idea on an approximate price for the Star Code Galaxy course?] +[1:31:42][@bifask][Oh it's $50 per module? That's fair, I thought it would be, like, $200] +[1:33:10][@centhusiast][Q: My friend started working as a C++ programmer and he showed the codebase he has to work with and it was a jungle of classes, template, std:: and it was very slow to compile. Is it a common thing in the industry to have this kind of code base? I guess that is why software are of bad quality][:language] +[1:35:14][@poye_polomi][Q: Is SCG your full time occupation nowadays, or also a side project like [~hero Handmade Hero]?] +[1:35:25][@usdaproved][Q: Do you think putting "completed SCG" on a resume will be valuable? I guess it depends on if the employer has heard of it] +[1:35:58][@wickedfritz][@handmade_hero Related to the point, I guess: But would it be easy to show someone in the industry, who sticks to those beliefs, that cutting off most of the C++ BS is beneficial? Not asking you to do it right now, just about the concept really][:language] +[1:39:25][@ceburger][Q: I use some templates in my C++ code, to avoid large amounts of code duplication, but I struggle with compile times. Could you recommend any material on :metaprogramming in C / C++ which you think is good (if I have understood correctly, you do not use templates)? Do you show any metaprogramming in your steams?][:language] +[1:40:10][@said6289][@handmade_hero Did you use to use std libs and then switch to the "handmade" style?][:language] +[1:42:12][@mindmark42][Q: What is declare anywhere?][:language] +[1:43:34][@symas1][Q: So would you recommend Rust over C++?][:language] +[1:44:36][@malfuri][Q: Given that [~hero Handmade Hero] is running for quite a while, doesn't it seem unfeasible for solo indie devs to go with a custom engine, especially since you are more experienced?] +[1:52:35][@thesandvichmaker][@handmade_hero On this subject, if you keep your Unreal game to just stuff achievable in blueprints it seems pretty accessible. If you want to do C++ code then it is very nuts][:language] +[1:54:46][Wrap it up with a glimpse into the future][:speech] +[/video]