
Video/audio from Mike Abrash's CGDC 1996 talk on programming id's Quake - azharcs
http://www.gdconf.com/news/the_gdc_25_chronicles/the_gdc_25_chronicles_a_quake_.html
======
maximilianburke
Michael Abrash's Graphics Programming Black Book
([http://www.amazon.com/Michael-Abrashs-Graphics-
Programming-S...](http://www.amazon.com/Michael-Abrashs-Graphics-Programming-
Special/dp/1576101746)) includes a good sized chunk written about Quake as it
was being developed. Even though the book is now about fifteen years old I
still count it among my favorite programming books because it is the only one
I've found that decently narrates the mindset of optimization, of turning a
problem on its head in order to find a better solution.

Because the book is essentially a series of collected magazine articles the
section on Quake development will have one chapter that reads "hey, this is
what we're going to do!" followed by "well, that didn't work, but this does!".
One important aspect of post-mortems and development journals that I find is
frequently missing is a detailed look at what didn't work technically and why,
which it has in spades.

edit: The book is also available as a free download:
<http://www.drdobbs.com/high-performance-computing/184404919>

~~~
malkia
A lot of the stuff is still in use - one of the best selling video games
recently (and many others) are still using this tech to some degree (brushes,
bsp, and csg).

~~~
maximilianburke
The vast majority of the book is dedicated to optimizing Pentium-and-earlier
processors as well as EGA/VGA programming modes, with a smaller but still
significant chunk on software polygon rasterization. There is value in the
bits on BSP and visibility, but it's probably only a third of the last ten (of
70) chapters. That said, there's probably more relevant worth in those bits
than any Game Programming Gems books :).

Abrash is a great writer and, even if you skip the deep technical dives and
code listings, the book is still worth reading.

------
chipsy
This presentation is great in a historical context as well as still being
technically relevant.

The mid-90's is the era that saw a broad transition in game programming from
at-the-metal, low-level coding towards more algorithmically driven approaches,
since the hardware had become beefy enough to allow the kinds of large
datasets where algorithms matter more than constant factors. Abrash notes it
himself - his VGA/DOS knowledge became meaningless within the span of 2 years.

One thing that is overlooked in all the emphasis on 3D rendering is that real-
time strategy also developed in the same era as the first-person shooter. This
isn't just because of mice, but because it was now feasible to do fast real-
time pathfinding in games. Earlier, similar attempts at the genre suffer from
playing sluggishly or avoiding any pathfinding.

Another 90's genre that came about because of hardware improvements is music
games: CDs and memory for sample playback made it possible to play back high-
quality audio tracks.

