abrash-black-book/intro.md
2014-01-06 23:29:31 +11:00

90 lines
4.6 KiB
Markdown

---
title: Michael Abrash's Graphics Programming Black Book, Special Edition
author: Michael Abrash
date: '1997-07-01'
identifier:
- scheme: ISBN
text: 1576101746
publisher: The Coriolis Group
category: 'Web and Software Development: Game Development,Web and Software Development:
Graphics and Multimedia Development'
---
# Introduction
What was it like working with John Carmack on Quake? Like being strapped
onto a rocket during takeoff—in the middle of a hurricane. It seemed
like the whole world was watching, waiting to see if id Software could
top Doom; every casual e-mail tidbit or conversation with a visitor
ended up posted on the Internet within hours. And meanwhile, we were
pouring everything we had into Quake's technology; I'd often come in in
the morning to find John still there, working on a new idea so
intriguing that he couldn't bear to sleep until he had tried it out.
Toward the end, when I spent most of my time speeding things up, I would
spend the day in a trance writing optimized assembly code, stagger out
of the Town East Tower into the blazing Texas heat, and somehow drive
home on LBJ Freeway without smacking into any of the speeding pickups
whizzing past me on both sides. At home, I'd fall into a fitful sleep,
then come back the next day in a daze and do it again. Everything
happened so fast, and under so much pressure, that sometimes I wonder
how any of us made it through that without completely burning out.
At the same time, of course, it was tremendously exciting. John's ideas
were endless and brilliant, and Quake ended up establishing a new
standard for Internet and first-person 3-D game technology. Happily, id
has an enlightened attitude about sharing information, and was willing
to let me write about the Quake technology—both how it worked and how it
evolved. Over the two years I worked at id, I wrote a number of columns
about Quake in *Dr. Dobb's Sourcebook*, as well as a detailed overview
for the 1997 Computer Game Developers Conference. You can find these in
the latter part of this book; they represent a rare look into the
development and inner workings of leading-edge software development, and
I hope you enjoy reading them as much as I enjoyed developing the
technology and writing about it.
The rest of this book is pretty much everything I've written over the
past decade about graphics and performance programming that's still
relevant to programming today, and that covers a lot of ground. Most of
*Zen of Graphics Programming, 2nd Edition* is in there (and the rest is
on the CD); all of *Zen of Code Optimization* is there too, and even my
1989 book *Zen of Assembly Language*, with its long-dated 8088 cycle
counts but a lot of useful perspectives, is on the CD. Add to that the
most recent 20,000 words of Quake material, and you have most of what
I've learned over the past decade in one neat package.
I'm delighted to have all this material in print in a single place,
because over the past ten years I've run into a lot of people who have
found my writings useful—and a lot more who would like to read them, but
couldn't find them. It's hard to keep programming material (especially
stuff that started out as columns) in print for very long, and I would
like to thank The Coriolis Group, and particularly my good friend Jeff
Duntemann (without whom not only this volume but pretty much my entire
writing career wouldn't exist), for helping me keep this material
available.
I'd also like to thank Jon Erickson, editor of *Dr. Dobb's*, both for
encouragement and general good cheer and for giving me a place to write
whatever I wanted about realtime 3-D. It still amazes me that I was able
to find time to write a column every two months during Quake's
development, and if Jon hadn't made it so easy and enjoyable, it could
never have happened.
I'd also like to thank Chris Hecker and Jennifer Pahlka of the Computer
Game Developers Conference, without whose encouragement, nudging, and
occasional well-deserved nagging there is no chance I would ever have
written a paper for the CGDC—a paper that ended up being the most
comprehensive overview of the Quake technology that's ever likely to be
written, and which appears in these pages.
I don't have much else to say that hasn't already been said elsewhere in
this book, in one of the introductions to the previous volumes or in one
of the astonishingly large number of chapters. As you'll see as you
read, it's been quite a decade for microcomputer programmers, and I have
been extremely fortunate to not only be a part of it, but to be able to
chronicle part of it as well.
And the next decade is shaping up to be just as exciting!
—*Michael Abrash*\
Bellevue, Washington\
May 1997