90 lines
4.6 KiB
Markdown
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
|