The ONE Texture Every Game NEEDS
9:00
I made an EVEN BETTER Minecraft
12:30
Пікірлер
@vivid8979
@vivid8979 4 сағат бұрын
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.
@j7ndominica051
@j7ndominica051 15 сағат бұрын
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.
@shapeXD
@shapeXD 17 сағат бұрын
Minecraft JavaScript edition
@gigijaponezu
@gigijaponezu 21 сағат бұрын
I just unliked the video just to like it again :D. You are so good at explaining! I like listening to you.
@panzerofthelake4460
@panzerofthelake4460 23 сағат бұрын
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..
@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
@oriwittmer Күн бұрын
Are you Madseasonshow?
@v44n7
@v44n7 Күн бұрын
Now imagine how much performance we could have if programmers came up with cool solutions like this nowadays.
@TunaFunDev
@TunaFunDev Күн бұрын
Its all great but it wouldnt be imposible to have collision working on these shapes right?
@sergeysmyshlyaev9716
@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_random
@it_is_random 2 күн бұрын
I ma now use react and tailwind for the ui
@TheGalacticIndian
@TheGalacticIndian 2 күн бұрын
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👌
@TiagoTiagoT
@TiagoTiagoT 2 күн бұрын
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.
@stuartsinderbury1862
@stuartsinderbury1862 3 күн бұрын
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.
@jkadoodle
@jkadoodle 3 күн бұрын
If Bob from Bobs Burgers did game design
@InterestingFindings
@InterestingFindings 3 күн бұрын
A project that's had difficulty implementing performance-gaining occlusion is OpenMW. There's been a few attempts, but none have been successful
@scewps
@scewps 3 күн бұрын
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?
@Skyite
@Skyite 3 күн бұрын
Look at this remind me abt bezier curves is just lines lerping together
@jerrygreenest
@jerrygreenest 3 күн бұрын
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.
@aadithyadevpv2778
@aadithyadevpv2778 4 күн бұрын
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
@crazyboyandyomama
@crazyboyandyomama 4 күн бұрын
Is this on WebGL, WebGPU, or threeJS?
@petyamokvwap9139
@petyamokvwap9139 4 күн бұрын
So it’s doing what quantum mechanics are doing 😁
@IanZamojc
@IanZamojc 5 күн бұрын
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.
@_ac39
@_ac39 5 күн бұрын
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.
@simondev758
@simondev758 5 күн бұрын
It's nice to have that closure hah
@mynameisroman
@mynameisroman 5 күн бұрын
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.
@KipIngram
@KipIngram 6 күн бұрын
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.
@simondev758
@simondev758 5 күн бұрын
-0.0f vs 0.0f :)
@KipIngram
@KipIngram 5 күн бұрын
@@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."
@JeffBourke
@JeffBourke 6 күн бұрын
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!
@simondev758
@simondev758 5 күн бұрын
My first card was a Voodoo Banshee, those were the days!
@arkraga5155
@arkraga5155 6 күн бұрын
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_Pariah
@The_Pariah 6 күн бұрын
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.
@Ralster
@Ralster 6 күн бұрын
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 !?!?
@joshuafoster1395
@joshuafoster1395 7 күн бұрын
Love the vid, and love that you sound like Bob Belcher!
@simondev758
@simondev758 7 күн бұрын
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
@erksp7961
@erksp7961 8 күн бұрын
Thank you! This helps me _understand_ the functions. Cheers!
@chrishaselden
@chrishaselden 8 күн бұрын
Wish we could clone Carmack.
@portalpony477
@portalpony477 8 күн бұрын
This is for godot right?
@SierraSierraFoxtrot
@SierraSierraFoxtrot 8 күн бұрын
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?
@whtiequillBj
@whtiequillBj 8 күн бұрын
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
@SierraSierraFoxtrot
@SierraSierraFoxtrot 8 күн бұрын
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?
@FyL43
@FyL43 8 күн бұрын
Keep calm, you sounds like HITMAN
@vast634
@vast634 9 күн бұрын
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)
@qualle987123
@qualle987123 9 күн бұрын
Very cool video. I would have love to have it a bit longer and more in depth though.
@jungleb
@jungleb 9 күн бұрын
Thank you so much!
@spaaaaace8952
@spaaaaace8952 9 күн бұрын
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.
@spaaaaace8952
@spaaaaace8952 9 күн бұрын
I wish I had this channel when I was younger.
@RootinrPootine
@RootinrPootine 10 күн бұрын
If you can handle complex programming why can’t you handle a MIC. Learn about microphones plz
@locobob
@locobob 10 күн бұрын
Wow. Apart from the fact that what you said makes no real sense, it also says more about you than it does about him.
@winkyflex7826
@winkyflex7826 11 күн бұрын
Thank you, semi-Bob from Bob’s Burgers for making my brain bigger
@ErikBray
@ErikBray 11 күн бұрын
I got that book too! Cut my teeth on it.
@paulo1940
@paulo1940 11 күн бұрын
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!
@mikkolukas
@mikkolukas 12 күн бұрын
19:45 Correction: Making section 4 *potentially* visible from section 1.