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