95 lines
11 KiB
Plaintext
95 lines
11 KiB
Plaintext
|
[video output=day641 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Voxel Flood Fill for Collision Search" vod_platform=youtube id=76B73tx6g0g annotator=Miblo]
|
||
|
[0:00][Recap and set the stage for the day][:collision :speech]
|
||
|
[3:21][Direct vs path-solved :collision voxel :movement][:"debug visualisation" :run]
|
||
|
[5:04][Path solvers: Dijkstra, A*][:run :searching]
|
||
|
[6:14][Turning our :collision system into more of an A* style search][:run :searching]
|
||
|
[7:25][Describe the direct-descent :collision in MoveEntity()][:research]
|
||
|
[9:53][Begin to switch MoveEntity() to do flood fill :collision search, separating out the Collision testing and Movement loops][:searching]
|
||
|
[16:46][Conceptualising flood fill][:searching :speech]
|
||
|
[19:41][Stack up the voxels to test for :collision tracking purposes in MoveEntity()][:searching]
|
||
|
[26:22][Automatic stacking by proximity][:collision :searching :speech]
|
||
|
[27:28][Respecify UpdateBest() as PushVoxelCheck() in MoveEntity()][:collision :searching]
|
||
|
[30:18][Consider checking voxels more efficiently][:collision :searching :speech]
|
||
|
[34:04][Make MoveEntity() consider the voxels in only the six 3D cardinal directions][:collision :searching]
|
||
|
[43:39][Consider how to produce the closest point][:collision :searching :speech]
|
||
|
[45:27][Note our possible inability to use GetClosestPointInBoxConservative() for LocalFromP][:collision :searching]
|
||
|
[45:52][Consider how to produce the closest point (cont.)][:collision :searching :speech]
|
||
|
[47:56][Introduce a voxel_stack and helper functions: PushVoxelStack() and PopVoxelStack()][:collision :"data structure" :searching]
|
||
|
[56:27][@Molly][Meow][:speech]
|
||
|
[57:32][@yanchith_the_kind][By the way, does anyone here know why the sphere :collision geometries should help sliding around corners with "Search in P"?]
|
||
|
[59:22][Make MoveEntity() call PushVoxelStack()][:collision :searching]
|
||
|
[1:00:24][Introduce PopVoxelStack()][:collision :searching]
|
||
|
[1:01:06][Note an :optimisation in PushVoxelStack(): Known early termination][:collision :searching]
|
||
|
[1:02:57][Implement PopVoxelStack(), and introduce StackNotEmpty() for MoveEntity() to call][:collision :searching]
|
||
|
[1:07:09][Consider how to handle embedding, in our flood search scheme][:collision :searching :speech]
|
||
|
[1:08:53][Plan our next steps in MoveEntity()][:collision :searching :speech]
|
||
|
[1:09:35][Delete UpdateBest() and voxel_move][:collision :"data structure" :searching]
|
||
|
[1:10:18][Specify how MoveEntity() accepts motion][:collision :searching]
|
||
|
[1:14:57][Consider our problem with GetClosestPointInBoxConservative()][:collision :searching :speech]
|
||
|
[1:17:00][Fix compile errors in MoveEntity()][:collision :searching]
|
||
|
[1:17:49][Consider :caching the :collision voxel checks][:collision :searching :speech]
|
||
|
[1:19:06][Make MoveEntity() set up the :collision voxel stack][:collision :searching]
|
||
|
[1:25:12][Reflect on the current state of our flood search routine][:collision :searching :speech]
|
||
|
[1:26:00][TODO(casey): We should use the minimum grid size necessary to bound the from/to points...][:collision :searching]
|
||
|
[1:27:00][Q&A][:speech]
|
||
|
[1:27:05][Make MoveEntity() compute and use the minimum grid size necessary to bound the from / to points][:collision :searching]
|
||
|
[1:35:10][Q&A for reals][:speech]
|
||
|
[1:36:04][@thesandvichmaker][Q: Does your in-house editor cache tokens for a buffer and keep them around? I have my incremental tokenization but the memory overhead is pretty gross and unnecessary. I'm thinking of just fully :caching line states (like whether you're in a block comment or not) and then caching only N lines of tokens with LRU eviction or something. I have a suspicion I am just overcomplicating things][:parsing]
|
||
|
[1:36:33][@bearexplicit][Q: PushVoxelStack has typo two times: double I.z?][:collision :searching]
|
||
|
[1:36:41][Fix typos in PushVoxelStack()][:collision :searching]
|
||
|
[1:36:46][:Caching considerations in :parsing][:speech]
|
||
|
[1:40:10][@yanchith_the_kind][Q: What do you think about using Search in P in games with :movement that should feel "physically correct" (gravity, jumping, etc.)? Is there an extension of your work on The Witness that would work well there, or would you go with a classical approach like GJK or MPR?][:collision]
|
||
|
[1:45:21][@thesandvichmaker][@handmade_hero :parsing is definitely what has made this text editor feel like a mistake. I figured I might as well follow through making it because of how easy it is to improve upon the functionality of my daily driver (vim), but text editing is definitely sad. I had been retokenizing fully on every edit but it got too slow especially when making multiple edits on a single keystroke (for example with multiple cursors)]
|
||
|
[1:48:06][@technicbeam][[@naysayer88 Jon]'s streaming today, or at least he is right now]
|
||
|
[1:48:28][@natte84][Q: How would one store text instead?][:"file format"]
|
||
|
[1:50:03][@jojomunki][So books are okay as text? But program files would need some sort of idea about discrete chunks, i.e. structs, functions, whatever?][:"file format"]
|
||
|
[1:51:38][@natte84][How much does :compression help with this? Doesn't compression map it better?][:"file format"]
|
||
|
[1:52:22][@h0stman][What is the alternative?][:"file format"]
|
||
|
[1:55:49][@0xf3f3][Q: So a C/C++ file just with free functions and no declarations / definitions between these functions is pretty much random access?][:"file format" :language]
|
||
|
[1:56:40][@androthi][So C files would have all the defines in a separate data area?][:"file format" :language]
|
||
|
[1:57:37][@centhusiast][Q: So the JSON format is also bad in that sense because it is a text format?][:"file format" :language]
|
||
|
[1:58:48][@mtxset][But if code is in, let's say AST, you won't be able to use any text editor to modify it. You will need some specific software][:"file format"]
|
||
|
[1:59:43][@f__stein][Q: You should get the new [~remedybg Remedy] if you have not already. It has some nice stuff[ref
|
||
|
site=itch.io
|
||
|
page=RemedyBG
|
||
|
url=https://remedybg.itch.io/remedybg]]
|
||
|
[2:00:47][@thesandvichmaker][[~remedybg Remedy] 0.3.6 was pretty crashy for me when I was on my laptop]
|
||
|
[2:01:25][@midnightsun55][Are there any editors or programming languages that don't use text and can highlight gigabyte files currently?]
|
||
|
[2:02:33][@centhusiast][Q: What happened to RAD Game Tools. Did Epic Games buy the company?]
|
||
|
[2:03:38][@midnightsun55][If you still worked at RAD would you have got a massive bag of cash?]
|
||
|
[2:07:03][@natte84][Q: How is the sale platform for SCG progressing?]
|
||
|
[2:10:02][@sentientcoffee][[@naysayer88 Jonathan] raid yay]
|
||
|
[2:11:49][Thoughts on e-commerce server engineering when your payment processor is, and is not, reliable][:speech]
|
||
|
[2:14:25][@mindmark42][Q: How do you even test your code against an unreliable payment processor?]
|
||
|
[2:16:44][@gir33][The whole idea of crypto is decentralizing "trust"]
|
||
|
[2:19:38][@davr0s][Yeah, after an economic collapse, people still still have GPUs going on crypto, they won't just be fighting over food and water]
|
||
|
[2:20:34][@futuremillennium][Q: Can you make your cam bigger for the Q&A?]
|
||
|
[2:21:05][@stathibus][Have we had a [@cmuratori Casey] rant about NFTs yet?]
|
||
|
[2:22:38][@demonixtb][It isn't even that because at no step in creating an NFT you cannot confirm the person creating it actually owns the item]
|
||
|
[2:26:38][@jazzrabbitt][@handmade_hero Then you can say the same for any art. What are they solving? What is the painting that is hanging in my room solving?]
|
||
|
[2:29:39][@j_blow][With Mona Lisa, they actually hang fakes intentionally most of the time, so they don't get damaged by all the jerks taking flash photography nonstop]
|
||
|
[2:30:42][@f__stein][I was very surprised how small the Mona Lisa was, when I saw it. Popular media always depicts it as bigger]
|
||
|
[2:31:12][@jazzrabbitt][@handmade_hero It is an appreciation and value of the creation. If I would create the exact game of yours after two years from publication, no one would buy it. I would say there is an appreciation to creation in society which makes the original piece valuable]
|
||
|
[2:32:42][@ultrascientism][NFTs produce a lot of excess CO2]
|
||
|
[2:33:24][@yanchith_the_kind][Totally agree with value being subjective to the person buying the art. How does this tie into supporting the artist? Don't NFTs help there?]
|
||
|
[2:34:12][@johnm___][@handmade_hero What about using NFT for creating a digital used market? I can't sell you a game I bought off steam]
|
||
|
[2:35:34][@zufaelligertyp][Hey, the idea to want to be close to the actual thing that da Vinci touched with his hands is somewhat relatable. Not important for everybody, but it's certainly not "arbitrary"]
|
||
|
[2:39:56][@holophonist][@MaIlchad No it's because I'm interested in the history of certain pieces of art. If that's "arbitrary" then so is anything else you value]
|
||
|
[2:42:39][@jwindahouse][How did Avengers create value to society? If anything it has negative value because it stole two hours of people's lives they could have used to create actual value]
|
||
|
[2:44:30][@jazzrabbitt][@handmade_hero What should be the price of Mona Lisa? Every copy of Mona Lisa should be 1 million, then, or should all be 1 dollar including original?]
|
||
|
[2:47:01][@mtxset][@handmade_hero This sounds like tulips bubble or more recent coin bubble, or more recent crypto bubble]
|
||
|
[2:48:15][@botondar][So how much can I buy the Wacom tablet for that da Vinci painted the Mona Lisa with?]
|
||
|
[2:48:35][Assuming the great masters all used an iPad Pro, would they all have been arrested for child porn after Apple flagged them?][:speech]
|
||
|
[2:50:55][@creikey][@handmade_hero If the value of art is arbitrarily decided by people, why can't originality be arbitrarily chosen as valuable?]
|
||
|
[2:54:44][@holophonist][Yeah, instead of curating and verifying priceless art, they should be doing something productive like making a videogame!]
|
||
|
[2:56:26][@pengaruu][Pyramids are pretty damn useless and quite permanent]
|
||
|
[2:57:12][Closing thoughts about energy wasted on NFTs and cryptocurrencies][:speech]
|
||
|
[2:59:54][@ultrascientism][Crypto also carries anti-bank, anti-government ideological strain]
|
||
|
[3:01:31][@creikey][@handmade_hero The payment processors aren't the government, though, they're a private institution who don't own a military and couldn't stop something like crypto]
|
||
|
[3:02:13][@midnightsun55][@handmade_hero By that argument, having passwords is useless, because a robber can make you type the password by force]
|
||
|
[3:04:32][@ultrascientism][With crypto, governments technically can't confiscate your money (without torturing passwords out of you). They can make it very difficult to spend that money]
|
||
|
[3:05:08][@infinityjest][@handmade_hero But couldn't society decide that we switch to crypto for our currency, and change the laws accordingly?]
|
||
|
[3:07:04][@mailchad][Oh yeah, turns out that's not true: blockchain is public, if you know the size of the transaction and when, you can trace it back quite quickly]
|
||
|
[3:07:39][That's it][:speech]
|
||
|
[/video]
|