How Games Have Worked for 30 Years to Do Less Work  @simondev758
How Games Have Worked for 30 Years to Do Less Work  @simondev758
SimonDev | How Games Have Worked for 30 Years to Do Less Work @simondev758 | Uploaded 5 months ago | Updated March 14 2024
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: https://simondev.teachable.com/
Support me on Patreon: https://www.patreon.com/simondevyt

Follow me on:
Instagram: https://www.instagram.com/beer_and_code/
Twitter: https://twitter.com/iced_coffee_dev

In this video, I implement some of the various visibility techniques used by AAA games like Just Cause 2, Battlefield, and Splinter Cell, and others. We walk through the history of GDC presentations, and see how the techniques have evolved to what's considered state of the art today.

References talks:
https://advances.realtimerendering.com/s2021/Karis_Nanite_SIGGRAPH_Advances_2021_final.pdf
https://advances.realtimerendering.com/s2015/aaltonenhaar_siggraph2015_combined_final_footer_220dpi.pdf
https://gamma.cs.unc.edu/papers/documents/technicalreports/tr97004.pdf
https://developer.nvidia.com/gpugems/gpugems2/part-i-geometric-complexity/chapter-6-hardware-occlusion-queries-made-useful
https://www.cs.princeton.edu/courses/archive/spr01/cs598b/papers/greene93.pdf
https://blog.paavo.me/cities-skylines-2-performance/
https://www.humus.name/Articles/Persson_CreatingVastGameWorlds.pdf
https://www.ea.com/frostbite/news/culling-the-battlefield-data-oriented-design-in-practice
https://www.guerrilla-games.com/read/practical-occlusion-culling-in-killzone-3
https://blog.selfshadow.com/publications/practical-visibility/
https://www.selfshadow.com/talks/rwc_gdc2010_v1.pdf
https://aras-p.info/texts/D3D9GPUHacks.html
How Games Have Worked for 30 Years to Do Less Work @simondev758How do Major Video Games Render Grass? @simondev758Making an Eyeball with Just a Shader @simondev758Is the COST of JavaScript’s GC REALLY that high? @simondev758So how does your computer ACTUALLY compute sine? Basics of trig and more… @simondev758How Big Budget AAA Games Render Bloom @simondev758How Big Budget AAA Games Render Clouds @simondev758The ONE Texture Every Game NEEDS @simondev758An In-Depth look at Lerp, Smoothstep, and Shaping Functions @simondev758Ray Marching, and making 3D Worlds with Math @simondev758I Tried Making an FPS Game in JavaScript @simondev758SimonDev Course Announcement! | Course Trailer @simondev758Make stuff look better with DECALS! @simondev758Immersive 3D Audio and Visualization (three.js & javascript) @simondev758Building a Simple First Person Camera @simondev758Building a Simple 3D Scene with Physics in JavaScript & Three.js @simondev758What can “The Simpsons” teach us about Dynamic Programming? @simondev758Wait, so comparisons in floating point only just KINDA work? What DOES work? @simondev758Hash Tables, Associative Arrays, and Dictionaries (Data Structures and Optimization) @simondev758Can JavaScript Go Faster? Threading in JavaScript (Data Structures & Optimization) @simondev758Simple Biome Generation (3D World Generation #11) @simondev758I Tried to Make Star Wars Battlefront II in JavaScript @simondev758What Big-O notation ACTUALLY tells you, and how I almost failed my Google Interview @simondev758How Slow is JavaScript Really? JavaScript vs C++ (Data Structures & Optimization) @simondev7583D Mesh Generation, Gaps, and Stitching (3D World Generation #10) @simondev758Why Linked Lists vs Arrays isn’t a real choice @simondev758Logarithmic Depth Buffers and Problems of Scale (3D World Generation #9) @simondev758I made an EVEN BETTER Minecraft @simondev758I Tried Making a 3D MMORPG Game in JavaScript @simondev758Fluffy, Soft Particles (WebGL/Three.js) @simondev758Fog, Basic Fog, and Better Fog (Three.js Tutorial) @simondev758Memory, Cache Locality, and why Arrays are Fast (Data Structures and Optimization) @simondev758Needlessly 3D Chrome Dinosaur Game (JavaScript/Three.js) @simondev758I Tried Making a 3D RPG Game in JavaScript @simondev758Three.js Tutorial on Shaders (beginners) @simondev758How I Optimized My JavaScript Project (Complete Walkthrough) | Faster Spatial Hash Grids @simondev758Spatial Hash Grids & Tales from Game Development @simondev758Three.js Post Processing Tutorial | Easy & Quick for Beginners (JavaScript) @simondev758Simple Third Person Camera (using Three.js/JavaScript) @simondev758Three.js Cameras Explained | Tutorial for Beginners! (JavaScript) @simondev758Three.js Shadows Explained | Tutorial for Beginners! (JavaScript) @simondev758Three.js Lighting Tutorial (JavaScript) | Light Types Explained! @simondev758Simple Character Controller (using Three.js/JavaScript) @simondev7583D World Generation #8: Floating Origins for Bigger Worlds (JavaScript/Three.js) @simondev7583D World Generation #7: Speeding it up via Threading (JavaScript Web Workers & Three.js) @simondev758I Made a 3D Engine in 1 Day (WebGL/JavaScript) @simondev758Blending (using WebGL/Three.js) - And How to Combine Additive and Alpha Blending @simondev758Writing a Particle System (using Three.js) @simondev758Adding a 3D Model to a Website in 5 minutes (or less) @simondev758When Optimisations Work, But for the Wrong Reasons @simondev758

How Games Have Worked for 30 Years to Do Less Work @simondev758