SimonDev
SimonDev
  • 64
  • 9 740 422
How Quake Failed their way to Success
Breakthroughs aren't created in a vacuum. Let's dig into Quake's technical failures and missteps, in order to better understand their ultimate success.
Gamedev Courses: simondev.teachable.com/
Support me on Patreon: www.patreon.com/simondevyt
Follow me on:
Instagram: beer_and_code
Twitter: iced_coffee_dev
In this video, we explore some of the history behind Quake's ground-breaking rendering technology. The developers explored a myriad of options, which ended up being dead-ends or non-starters, but laid the framework for what would eventually be their breakthrough.
Reference:
github.com/jagregory/abrash-black-book
github.com/id-Software/Quake
www.flipcode.com/harmless/issue01.htm#beamtrees
Links:
ua-cam.com/video/vi-bdUd9J3E/v-deo.html
Переглядів: 128 105

Відео

When Optimisations Work, But for the Wrong Reasons
Переглядів 768 тис.3 місяці тому
Level of detail and imposters are effective optimizations that work for reasons you may not fully understand. Let's explore why, from a hardware perspective, these work. Gamedev Courses: simondev.teachable.com/ Support me on Patreon: www.patreon.com/simondevyt Follow me on: Instagram: beer_and_code Twitter: iced_coffee_dev In this video, we explore the underlying reas...
How Games Have Worked for 30 Years to Do Less Work
Переглядів 1,2 млн5 місяців тому
We explore the evolution of culling and visibility determination in video games, building on work started over 30 years ago, and evolving with every generation of hardware. Gamedev Courses: simondev.teachable.com/ Support me on Patreon: www.patreon.com/simondevyt Follow me on: Instagram: beer_and_code Twitter: iced_coffee_dev In this video, I implement some of the var...
How do Major Video Games Render Grass?
Переглядів 333 тис.6 місяців тому
Trying out the last grass and foliage rendering techniques used by Ghost of Tsushima. 🛒 Recommended books (on Amazon): www.amazon.com/hz/wishlist/ls/1IMV0IR3QIZMQ?type=wishlist&tag=simondev01-20&sort=priority&viewType=grid ❤️ Support me on Patreon: www.patreon.com/simondevyt 🌍 My Gamedev Courses: simondev.teachable.com/ Disclaimer: Commission is earned from qualifying purchases on Amazon links....
Is the COST of JavaScript’s GC REALLY that high?
Переглядів 90 тис.10 місяців тому
How much overhead is there really for garbage collection, is it as high as so many people say it is? My Courses: simondev.teachable.com/ Support me on Patreon: www.patreon.com/simondevyt Follow me on: Twitter: iced_coffee_dev Instagram: beer_and_code Garbage Collection is often cited as a major source of performance problems in JavaScript. In this vdeo, we explore gar...
So how does your computer ACTUALLY compute sine? Basics of trig and more…
Переглядів 276 тис.Рік тому
What is sin/cos/tan really? How do they relate to the dot product? How are they even computed by your hardware? My Courses: simondev.teachable.com/ Support me on Patreon: www.patreon.com/simondevyt Follow me on: Twitter: iced_coffee_dev Instagram: beer_and_code Trigonometry is often cited as an are of math for game development. In this video, I explore trig functions ...
How Big Budget AAA Games Render Bloom
Переглядів 105 тис.Рік тому
Trying out some of the latest approaches to Bloom used in Unity/Unreal. 🛒 Recommended books (on Amazon): www.amazon.com/hz/wishlist/ls/1IMV0IR3QIZMQ?type=wishlist&tag=simondev01-20&sort=priority&viewType=grid ❤️ Support me on Patreon: www.patreon.com/simondevyt 🌍 My Gamedev Courses: simondev.teachable.com/ Disclaimer: Commission is earned from qualifying purchases on Amazon links. Follow me on:...
How Big Budget AAA Games Render Clouds
Переглядів 252 тис.Рік тому
Explored a few of the latest techniques in procedural cloud rendering used in Horizon: Zero Dawn and the FrostBite engine. 🛒 Recommended books (on Amazon): www.amazon.com/hz/wishlist/ls/1IMV0IR3QIZMQ?type=wishlist&tag=simondev01-20&sort=priority&viewType=grid ❤️ Support me on Patreon: www.patreon.com/simondevyt 🌍 My Gamedev Courses: simondev.teachable.com/ Disclaimer: Commission is earned from ...
The ONE Texture Every Game NEEDS
Переглядів 247 тис.Рік тому
Exploring why procedural noise (such as perlin noise) are so useful in game development and graphics. 🛒 Recommended books (on Amazon): www.amazon.com/hz/wishlist/ls/1IMV0IR3QIZMQ?type=wishlist&tag=simondev01-20&sort=priority&viewType=grid ❤️ Support me on Patreon: www.patreon.com/simondevyt 🌍 My Gamedev Courses: simondev.teachable.com/ Disclaimer: Commission is earned from qualifying purchases ...
An In-Depth look at Lerp, Smoothstep, and Shaping Functions
Переглядів 150 тис.Рік тому
Exploring some common math that game developers use, let's look at linear interpolation and apply it to everything. 🛒 Recommended books (on Amazon): www.amazon.com/hz/wishlist/ls/1IMV0IR3QIZMQ?type=wishlist&tag=simondev01-20&sort=priority&viewType=grid ❤️ Support me on Patreon: www.patreon.com/simondevyt 🌍 My Gamedev Courses: simondev.teachable.com/ Disclaimer: Commission is earned from qualify...
Ray Marching, and making 3D Worlds with Math
Переглядів 232 тис.Рік тому
Built this entire video on raymarching in shaders using shaders, ray marching, and signed distance functions. 🛒 Recommended books (on Amazon): www.amazon.com/hz/wishlist/ls/1IMV0IR3QIZMQ?type=wishlist&tag=simondev01-20&sort=priority&viewType=grid ❤️ Support me on Patreon: www.patreon.com/simondevyt 🌍 My Gamedev Courses: simondev.teachable.com/ Disclaimer: Commission is earned from qualifying pu...
I Tried Making an FPS Game in JavaScript
Переглядів 122 тис.Рік тому
GLSL Course: simondev.teachable.com/p/glsl-shaders-from-scratch Support me on Patreon: www.patreon.com/simondevyt Follow me on: Twitter: iced_coffee_dev Instagram: beer_and_code Here I tried making a 3D first person shooter, all in JavaScript and Three.js. I took some code from a couple of my other tutorials, like first person camera controls and ammo.js stuff, bolted...
SimonDev Course Announcement! | Course Trailer
Переглядів 15 тис.Рік тому
AVAILABLE NOW, LIMITED PRICE: simondev.teachable.com/p/glsl-shaders-from-scratch?coupon_code=EARLYBIRD2022 I'm excited to announce that after months of work, my GLSL Shader Course is ready for early preview. From beginner all the way to more advanced topics, and features some incredibly fun projects to build 100% in shaders. We cover topics the same way I learn them, by learning the fundamental...
Make stuff look better with DECALS!
Переглядів 24 тис.Рік тому
I'll show you how to use Three.js's decal system to build FPS bullet marks, footsteps, and anything else you want. GLSL Course: simondev.teachable.com/p/glsl-shaders-from-scratch Patreon: www.patreon.com/simondevyt Follow me on: Twitter: iced_coffee_dev Instagram: beer_and_code Github: github.com/simondevyoutube/ I'll step through using DecalGeometry in JavaScript and...
Immersive 3D Audio and Visualization (three.js & javascript)
Переглядів 29 тис.2 роки тому
Immersive 3D Audio and Visualization (three.js & javascript)
Building a Simple First Person Camera
Переглядів 51 тис.2 роки тому
Building a Simple First Person Camera
Building a Simple 3D Scene with Physics in JavaScript & Three.js
Переглядів 38 тис.2 роки тому
Building a Simple 3D Scene with Physics in JavaScript & Three.js
What can “The Simpsons” teach us about Dynamic Programming?
Переглядів 96 тис.2 роки тому
What can “The Simpsons” teach us about Dynamic Programming?
Wait, so comparisons in floating point only just KINDA work? What DOES work?
Переглядів 242 тис.2 роки тому
Wait, so comparisons in floating point only just KINDA work? What DOES work?
Hash Tables, Associative Arrays, and Dictionaries (Data Structures and Optimization)
Переглядів 112 тис.2 роки тому
Hash Tables, Associative Arrays, and Dictionaries (Data Structures and Optimization)
Can JavaScript Go Faster? Threading in JavaScript (Data Structures & Optimization)
Переглядів 65 тис.2 роки тому
Can JavaScript Go Faster? Threading in JavaScript (Data Structures & Optimization)
Simple Biome Generation (3D World Generation #11)
Переглядів 28 тис.2 роки тому
Simple Biome Generation (3D World Generation #11)
I Tried to Make Star Wars Battlefront II in JavaScript
Переглядів 119 тис.2 роки тому
I Tried to Make Star Wars Battlefront II in JavaScript
What Big-O notation ACTUALLY tells you, and how I almost failed my Google Interview
Переглядів 373 тис.2 роки тому
What Big-O notation ACTUALLY tells you, and how I almost failed my Google Interview
How Slow is JavaScript Really? JavaScript vs C++ (Data Structures & Optimization)
Переглядів 288 тис.3 роки тому
How Slow is JavaScript Really? JavaScript vs C (Data Structures & Optimization)
3D Mesh Generation, Gaps, and Stitching (3D World Generation #10)
Переглядів 27 тис.3 роки тому
3D Mesh Generation, Gaps, and Stitching (3D World Generation #10)
Why Linked Lists vs Arrays isn’t a real choice
Переглядів 305 тис.3 роки тому
Why Linked Lists vs Arrays isn’t a real choice
Logarithmic Depth Buffers and Problems of Scale (3D World Generation #9)
Переглядів 28 тис.3 роки тому
Logarithmic Depth Buffers and Problems of Scale (3D World Generation #9)
I made an EVEN BETTER Minecraft
Переглядів 318 тис.3 роки тому
I made an EVEN BETTER Minecraft
I Tried Making a 3D MMORPG Game in JavaScript
Переглядів 598 тис.3 роки тому
I Tried Making a 3D MMORPG Game in JavaScript

КОМЕНТАРІ

  • @ImGelling
    @ImGelling 2 години тому

    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.

  • @lbgonpokeit
    @lbgonpokeit 4 години тому

    Dude talks like he's always holding in a huge bong rip 😂 Awesome video though bro 😎

  • @1183newman
    @1183newman 13 годин тому

    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.

  • @mickduprez9598
    @mickduprez9598 21 годину тому

    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!

  • @Kevin_Zed
    @Kevin_Zed 23 години тому

    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.

  • @amireasy6419
    @amireasy6419 День тому

    Are the rays send by the pixels on the screen or its just a virtuell ray that it sends

  • @SilverWolvesScarletForestSnow

    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?

  • @SilverWolvesScarletForestSnow

    Why does everyone say Quake broke new ground when lots of 3D games existed before it.

    • @simondev758
      @simondev758 День тому

      It was the difference between just doing something, and doing it extremely well.

  • @wafi5576
    @wafi5576 2 дні тому

    the plot twist at the end got me. amazing

  • @jRsqILVOY
    @jRsqILVOY 3 дні тому

    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.

  • @philliplam2704
    @philliplam2704 3 дні тому

    Jesus man 😂

  • @CronyxRavage
    @CronyxRavage 3 дні тому

    Back in my day, what you're calling "imposter", we just called em "sprites" :P

  • @Shabazza84
    @Shabazza84 3 дні тому

    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. 😜

  • @jobansand
    @jobansand 3 дні тому

    Thank you so, so much for making this so concise, easy to understand and entertaining at the same time. Doing God's work

  • @UcheEcoma
    @UcheEcoma 4 дні тому

    Can you provide us a roadmap to achieving god status developer like yourself. Ps I’m self taught

  • @UcheEcoma
    @UcheEcoma 4 дні тому

    How do i get this good 🙏

  • @mattwarbuckle
    @mattwarbuckle 4 дні тому

    I can’t believe you got H Jon Benjamin to do all this!

  • @bartoszger7478
    @bartoszger7478 4 дні тому

    minecraft wasnt first developed by mojang, it was by notch alone until mojang baught the game from him

  • @S.Gamedev-zc2wp
    @S.Gamedev-zc2wp 4 дні тому

    Oexppabr banite

  • @ChookyChuck
    @ChookyChuck 5 днів тому

    This brings back memories' of me being fascinated with the book "Numerical Recipes for (C, Fortran) in the 90's".

  • @matt47110815
    @matt47110815 5 днів тому

    Quake definitely worjed for me! 😊 HOWEVER, the very last level and Bossfight kept crashing, so in a way i was never able to finish the Game. 🤨

  • @shapelessed
    @shapelessed 5 днів тому

    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...

  • @GastricProblemsHaver
    @GastricProblemsHaver 6 днів тому

    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!

  • @gendalfgray7889
    @gendalfgray7889 6 днів тому

    For cache boost program need to designed in certain way? Using arrays when possible automatically boost performance?

  • @stmusic2164
    @stmusic2164 6 днів тому

    The ONE texture all video game music also needs.

  • @OREYG
    @OREYG 6 днів тому

    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.

  • @SZvenM
    @SZvenM 6 днів тому

    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.

  • @0MoTheG
    @0MoTheG 6 днів тому

    Let me guess: Precomputed and some form of hierarchical boxing.

  • @johanmetreus1268
    @johanmetreus1268 6 днів тому

    Anyone who feature Kai is a subscription per default. For His Shadow

  • @dwanascie228
    @dwanascie228 7 днів тому

    My goal as second year game dev student is to be able to follow this tutorial. As clear as it is, it does require some knowledge to follow.

  • @iancs93
    @iancs93 7 днів тому

    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?

  • @ltxr9973
    @ltxr9973 7 днів тому

    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.

  • @vivid8979
    @vivid8979 8 днів тому

    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 8 днів тому

    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 8 днів тому

    Minecraft JavaScript edition

  • @gigijaponezu
    @gigijaponezu 8 днів тому

    I just unliked the video just to like it again :D. You are so good at explaining! I like listening to you.

  • @panzerofthelake4460
    @panzerofthelake4460 8 днів тому

    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.. 8 днів тому

    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 8 днів тому

    Are you Madseasonshow?

  • @v44n7
    @v44n7 9 днів тому

    Now imagine how much performance we could have if programmers came up with cool solutions like this nowadays.

  • @TunaFunDev
    @TunaFunDev 9 днів тому

    Its all great but it wouldnt be imposible to have collision working on these shapes right?

  • @sergeysmyshlyaev9716
    @sergeysmyshlyaev9716 9 днів тому

    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 9 днів тому

    I ma now use react and tailwind for the ui

  • @TheGalacticIndian
    @TheGalacticIndian 10 днів тому

    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 10 днів тому

    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 10 днів тому

    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 11 днів тому

    If Bob from Bobs Burgers did game design

  • @InterestingFindings
    @InterestingFindings 11 днів тому

    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 11 днів тому

    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 11 днів тому

    Look at this remind me abt bezier curves is just lines lerping together