Never wanted to un sub from some one sooo fast as when you advertised a learning course for stuff you learned for free. You clearly say you learned this stuff from their presentation, then want to charge for the same information. You stand on shoulders and then charge for it! You are a disgrace.
Carmack said that making Quake right after Doom was basically a mistake and they should have instead made a new game on an improved version of the DOOM engine with the networking capabilities found in Quake as a stepping stone.
I've always had just a basic grasp of BSP trees but the deep intuition just wasn't there....until now! I think this proves (to me at least) that I'm a visual learner and I'll be watching this one at least a few more times :) All of your vid's and your courses are very well done, the visuals with explanations and practical examples in layman's/more simple terms are awesome, a great help. I'm mainly a CAD dev and I've already used the info from the spatial hash grid video in one project to great effect, I think BSP's will also help now I understand them better. Thank you!
Hey Simon I’d be interested in paying money to ask you a question. If you’re interested I’d like if you could join Minnect so that I use one platform. You’d be the first Game Dev on there too.
I'm just not a fan of meshes, I think they make games look too noisy now. With brushes and simple textures you can make a level and it's easy to tell what everything is, where the play area is and differentiate the models to the level. With meshes it makes the world look detailed, but it ends up feeling fake because none of it moves and you cannot interact with it. I'm always wondering "can I go there" or "interact with that" and it's sensory overload.... I can look at Half-Life 2 and honestly say I think it looks better than any modern FPS today. I can tell what I've got to do in that world, where as COD it's like what is the level and what is not? Though I always preferred software rendered Quake to hardware and everyone thought I was an idiot, so what do I know?
How do you add the water? Is there just a fixed height for sea-level? And man I had so many issues implementing a quadtree for this - like the height gaps between face edges (as they are separate quadtrees) - in the end I just fixed the edges to a specific LOD / quadtree division so they are always equal along the edge.
Bro, the average indie dev wold probably need 3 months to get something like this.... Love the way you explain things. And I know... i say this in every video I watch from your channel. You have to deal with it. 😜
There was a time I really wanted to learn 3D graphics and GLSL for some web projects... Then I got smacked in my face by how outdated the WebGL standard is and how there is literally NO documentation on it, due to its age...
I was wondering about how culling is done without something similar to ray tracing (which would suck), but the idea of a frustrum cleared it up so fast!
This biggest cost of GC is that it rids you of an ability to reason about your memory layout, only for a convenience of not having to deal with weak pointers.
Great video! Very nicely explained, and truly an unexpectedly fascinating topic. It never even crossed my mind to ask whether there was more to why LODs work. Super interesting stuff.
Hello, Simon. Can you please talk about a subject that I see everybody yapping about without having any idea of what's going on. Everyone asks is 8gb vram is enough for the future, some say 12gb isn't enough. As experienced dev, what's your opinion?
Huh? Sure, that's how a FPS game works but what the hell are you outputting to, a browser? What are you importing? You should really define the libraries and platform you're using at the very beginning. You don't really mention much javascript specific stuff but I really wonder how far you could push it if it all was software rendering done in plain javascript without all the fancy GL stuff.
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.
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.
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 :)
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.
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.
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.
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?