Graphs that even 5 year old can understand? ✅ Explanations that's not overly done? ✅ Really simple visual aids? ✅ Soothing voice that can cure insomnia? ✅ Earned a sub and share... Deym this content is good.
@j7ndominica05115 сағат бұрын
The coordinates in GTA: San Andreas was a floating point number like most things in the internal script. The world spanned a few thousand units in either direction. But someone made a mod with a boring road on the water to the edge that was at 20,000. When approaching that, every part on the car began visibly shifting. I had the great idea to separate the bumper, the license plate, and the lights, etc., so that they could be later selected and copied. In Age of Empires, the money were floating point numbers off by a significant amount, and it was not possible to find them with a simple cheating tool. Floating point matches our perception of the world where small differences become less important as we have more of the stuff.
@shapeXD17 сағат бұрын
Minecraft JavaScript edition
@gigijaponezu21 сағат бұрын
I just unliked the video just to like it again :D. You are so good at explaining! I like listening to you.
@panzerofthelake446023 сағат бұрын
can you please do a video about Embark Studios and the finals? They use really stunning rendering methods I rarely seen in any other game.
@coreC..Күн бұрын
We share a lot, and probably our age is one of them. This BSP video brings back a lot of memories of a time i spent editing maps from others to make the BSP work better. Many (hobby-)mappers did not have an understanding of how PVS could (/should) be implemented efficiently. @19:31 is a moment in the video that they needed to see before starting to build their worlds. ..and their magenta space 4 was huge :)
@oriwittmerКүн бұрын
Are you Madseasonshow?
@v44n7Күн бұрын
Now imagine how much performance we could have if programmers came up with cool solutions like this nowadays.
@TunaFunDevКүн бұрын
Its all great but it wouldnt be imposible to have collision working on these shapes right?
@sergeysmyshlyaev9716Күн бұрын
PVS is interesting, but given how Quake levels are structured, I think those visibility trees could just be done manually, without any specific algorithm to do it automatically.
@it_is_random2 күн бұрын
I ma now use react and tailwind for the ui
@TheGalacticIndian2 күн бұрын
Hint: would be cool to see a video explaining how DREAD (aka GRIND) managed to create DOOM-class engine running smoothly on Amiga 500 from 1987👌
@TiagoTiagoT2 күн бұрын
Studying failures can also be important because sometimes (sorry, I can't remember anything off the top of my head, but it has happened), things that were a bad idea in the past, now can be done efficiently due to evolution of hardware, or because improvements in algorithms that were used as elements of the previously failed techniques.
@stuartsinderbury18623 күн бұрын
I really enjoyed this video, I had to watch it a few times to get my head around "walking the BSPs" but your animations and explanations were on point, it is really amazing to understand what they had to do back then to render 3D environments with such limited hardware power.
@jkadoodle3 күн бұрын
If Bob from Bobs Burgers did game design
@InterestingFindings3 күн бұрын
A project that's had difficulty implementing performance-gaining occlusion is OpenMW. There's been a few attempts, but none have been successful
@scewps3 күн бұрын
Really valuable information, thank you :) Implementing the Conviction method atm. However I'm wondering why you chose to render the points to a screen size render target at 18:48 ? Shouldn't the size of the render target be the amount of objects you want to check or is there something I missed?
@Skyite3 күн бұрын
Look at this remind me abt bezier curves is just lines lerping together
@jerrygreenest3 күн бұрын
Logical cores are basically threads? And there's no way to know physical cores in javascript? And that's browser environment right, but what about nodejs is it any different there? Great video btw.
@aadithyadevpv27784 күн бұрын
hey brother you are working really hard ,i really want an explanation video about how to pick your character in lobby please make a video brother
@crazyboyandyomama4 күн бұрын
Is this on WebGL, WebGPU, or threeJS?
@petyamokvwap91394 күн бұрын
So it’s doing what quantum mechanics are doing 😁
@IanZamojc5 күн бұрын
I really appreciate this video because most of the explanations I've seen only focus on the solution that worked. Showing all the failures is a lot more honest about how actual software development gets done. It also humanizes the devs; Carmack wasn't so much a genius as he was tenacious. That tenacity, and a willingness to abandon an approach to try something else, is what makes a good dev. The "flash of genius" that House has every episode is basically a myth.
@_ac395 күн бұрын
well, 20 years later and my brain finally fully understands WHY 'leaks' in the polys were such a bad thing when building a map. Like I fundamentally understood why all along, but I didn't really understand the method by which BSPs compiled.
@simondev7585 күн бұрын
It's nice to have that closure hah
@mynameisroman5 күн бұрын
brings back some memory from the 90s 🙂 so many tricks you could do with graphics... back then the graphics were drawn directly to memory. no direct x, no opengl. just your own graphics functions written in assembler. but around 2000 those days were long gone.
@KipIngram6 күн бұрын
Comparisons work fine. Take two floating point variables in your RAM - they're either equal or one is bigger than the other. In fact, the IEEE floating point standard was designed so that you can compare two floats with the same instruction you use to compare two integers. It's a feature of the specification. The issue is that there are many, many numbers you can't precisely represent in floating point format. You arrive at your two numbers by different code paths, usually - different sequences of operations - so you can't be completely sure what you're going to get. The end lesson of this is that you shouldn't write code that compares floats for EQUALITY or NON-EQUALITY. Greater than / less than comparisons are fine - if the numbers are so close together that these "inexact" issues make a difference, then they're so close to the same number you shouldn't care which one you use. But if you write a loop that terminates when two numbers are EQUAL, then the loop might never finish. Use abs(x-y) < epsilon instead.
@simondev7585 күн бұрын
-0.0f vs 0.0f :)
@KipIngram5 күн бұрын
@@simondev758 Yeah, that's a fun one. No difference in terms of math, but depending on how your software does its conversion, they might become different bit patterns. Both of which were still "technically correct."
@JeffBourke6 күн бұрын
I remember purchasing my first graphics card - pci slot as my motherboard did not have an AGP slot. The difference in graphics even at the same resolution was amazing. 320x240 open GL looked way better than software graphics. 640x480 was just insanely sharp!
@simondev7585 күн бұрын
My first card was a Voodoo Banshee, those were the days!
@arkraga51556 күн бұрын
So, you keep every block in an array, then you look at a box and say if there's a block left of you hide the left face ECT? I'm not sure how in 3js you cull faces for optimization, but would love to learn
@The_Pariah6 күн бұрын
As someone who codes but doesn't write video games, I love watching stuff like this. When I play games, I constantly think about some of the nuances. Grass/vegetation is something I constantly think about. It's neat to see the code that drives this kind of stuff. Geek-friendly and enjoyable.
@Ralster6 күн бұрын
How did you go from having a single main.js file handling mostly everything in the first two minutes, then suddenly have an entire tree of controllers and stuff like that !?!?
@joshuafoster13957 күн бұрын
Love the vid, and love that you sound like Bob Belcher!
@simondev7587 күн бұрын
Patrons can now vote for the next video! Thank you for your support. ❤ Support me on Patreon: www.patreon.com/simondevyt 🌍 Live Demo + Courses: simondev.io
@erksp79618 күн бұрын
Thank you! This helps me _understand_ the functions. Cheers!
@chrishaselden8 күн бұрын
Wish we could clone Carmack.
@portalpony4778 күн бұрын
This is for godot right?
@SierraSierraFoxtrot8 күн бұрын
Their blending from 15 to 7 vertices is CRAZY. PS I'm not a graphics pro but I've been around for a while and I've never seen this technique. Does it have a name?
@whtiequillBj8 күн бұрын
I found a paper on Beam Search Trees called, "Revealing the Unwritten: Visual Investigation of Beam Search Trees to Address Language Model Prompting Challenges". Its from October 2023
@SierraSierraFoxtrot8 күн бұрын
I'm surprised they didn't find a solution for the dropouts in the raycasting. I would assume that you could fill those using neighbouring pixels and the resulting visual artifacts would be really negligible... especially with Quake's drab colour palette. Perhaps you'd have a problem when several dropouts occur next to each other?
@FyL438 күн бұрын
Keep calm, you sounds like HITMAN
@vast6349 күн бұрын
Honestly, to determine drawing / culling, I would back then have taken the primitive "manual labor" approach. Simply split the levels (mostly rooms and hallways) into rooms and hallway volumes, and then manually create a table for each volume, what other volumes could be visible (the leveldesigner can do that by filling out a list). This can be done manually quite well by a human, by just flying around in the leveleditor and trying to see if another volume has some chance to be visible. It takes some time, but lets say a level has 20 volumes, with only two other volumes (on average) visible from that volume, you can cull down the visible triangles to 20/3 = 15% of all the levels triangles. The drawing order is then given by the BSP. The camera is in a volume if its in some marked up bounding box that indicates that volume. (a volume could have several, for more complicated layouts)
@qualle9871239 күн бұрын
Very cool video. I would have love to have it a bit longer and more in depth though.
@jungleb9 күн бұрын
Thank you so much!
@spaaaaace89529 күн бұрын
I wish I could understand most of this, but I'm still enjoying it a lot. This is making me wish I knew about graphics programmer earlier in life.
@spaaaaace89529 күн бұрын
I wish I had this channel when I was younger.
@RootinrPootine10 күн бұрын
If you can handle complex programming why can’t you handle a MIC. Learn about microphones plz
@locobob10 күн бұрын
Wow. Apart from the fact that what you said makes no real sense, it also says more about you than it does about him.
@winkyflex782611 күн бұрын
Thank you, semi-Bob from Bob’s Burgers for making my brain bigger
@ErikBray11 күн бұрын
I got that book too! Cut my teeth on it.
@paulo194011 күн бұрын
I was quite hesitant on the artistic choice of placing random bleak large blocks on the map until you added those effects, dang those were cool!
@mikkolukas12 күн бұрын
19:45 Correction: Making section 4 *potentially* visible from section 1.