4 ms·
To save others the disappointment of expecting a 2019 update, this is a cleaned-up copy of the classic text.
by kranner 7y ago
To save others the disappointment of expecting a 2019 update, this is a cleaned-up copy of the classic text.
- taneq 7y agoI don't think I'll ever be disappointed to see this work linked. :) In some ways I feel like modern graphics programming has little to do with traditional optimisation. Rather than coding tight inner loops and wizardly algorithms, it's all about managing cache lines and pipelining data flows into your massively parallel desktop supercomputer. Which is awesome, but compared to the older stuff it's like a high speed rail network compared to a motorbike.
- markus_zhang 7y agoJust curious, is it OK to say that most of the book is irrelevant for today?
- bjourne 7y agoYup. I bought the book after it came out and threw it away a few years ago. Most of the material in the book (like the peculiarities of 320x200 vs 320x240 VGA mode) hasn't aged very well. But that's the name of the game. You can't write truly optimal code without knowing all the details of the hw you are targeting.
- chongli 7y agoIt's not irrelevant unless you intend to focus on modern, triple-A graphics engines. Lots of indie game developers don't care about that stuff! There are even people working on new games using engines from the 90s, such as the Build engine [1]. Ion Fury [2] is one example. I think the more you focus on modern graphics engines, the more difficult it is to stand out from the crowd. You end up in a rat race where you need a huge team of artists to create all of the assets for your photorealistic game. On the other hand, with an old engine (or a new engine using traditional rendering techniques), you can make something distinctive and stylish with a smaller team. After all, they say the enemy of art is the absence of limitations. [1] https://en.wikipedia.org/wiki/Build_(game_engine) https://en.wikipedia.org/wiki/Build_(game_engine) [2] http://www.ionfury.com/ http://www.ionfury.com/
- taneq 7y agoJust to build on this, modern triple-A games are incredibly asset-based. It doesn't matter how good a coder you are, unless you have an art department producing every single tiny little detail of your in-game assets, they're going to look terrible. This is part of the reason low-fi games are making a comeback in the indie scene, because they can actually look good with only one or two artists working on them (or even sometimes with programmer art.)
- taneq 7y agoThe technical details are pretty irrelevant for desktop computers, although there are analogues to some of the techniques on some more recent platforms eg. Gameboy Advance, smartwatches, maybe mobile VR (I do wonder if that's why Carmack is so keen on working on the Oculus Quest). The way that it walks you through the mindset of optimising code is timeless and well worth reading, though, imo.
- pierrec 7y agoThere are still areas where you're very much "coding tight inner loops and wizardly algorithms", namely shader programming. But it's true this is only one component within the high speed rail network.