Move source markdown files into src/
This commit is contained in:
parent
9deba4ffa6
commit
3736ff43be
76 changed files with 1 additions and 1 deletions
101
src/about.md
Normal file
101
src/about.md
Normal file
|
|
@ -0,0 +1,101 @@
|
|||
---
|
||||
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'
|
||||
---
|
||||
|
||||
# Foreword
|
||||
|
||||
I got my start programming on Apple II computers at school, and almost
|
||||
all of my early work was on the Apple platform. After graduating, it
|
||||
quickly became obvious that I was going to have trouble paying my rent
|
||||
working in the Apple II market in the late eighties, so I was forced to
|
||||
make a very rapid move into the Intel PC environment.
|
||||
|
||||
What I was able to pick up over several years on the Apple, I needed to
|
||||
learn in the space of a few months on the PC.
|
||||
|
||||
The biggest benefit to me of actually making money as a programmer was
|
||||
the ability to buy all the books and magazines I wanted. I bought a lot.
|
||||
I was in territory that I new almost nothing about, so I read
|
||||
*everything* that I could get my hands on. Feature articles, editorials,
|
||||
even advertisements held information for me to assimilate.
|
||||
|
||||
John Romero clued me in early to the articles by Michael Abrash. The
|
||||
good stuff. Graphics hardware. Code optimization. Knowledge and wisdom
|
||||
for the aspiring developer. They were even fun to read. For a long time,
|
||||
my personal quest was to find a copy of Michael's first book, *Zen of
|
||||
Assembly Language.* I looked in every bookstore I visited, but I never
|
||||
did find it. I made do with the articles I could dig up.
|
||||
|
||||
I learned the dark secrets of the EGA video controller there, and
|
||||
developed a few neat tricks of my own. Some of those tricks became the
|
||||
basis for the Commander Keen series of games, which launched id
|
||||
Software.
|
||||
|
||||
A year or two later, after Wolfenstein-3D, I bumped into Michael (in a
|
||||
virtual sense) for the first time. I was looking around on M&T Online, a
|
||||
BBS run by the Dr. Dobb's publishers before the Internet explosion, when
|
||||
I saw some posts from the man himself. We traded email, and for a couple
|
||||
months we played tag-team gurus on the graphics forum before Doom's
|
||||
development took over my life.
|
||||
|
||||
A friend of Michael's at his new job put us back in touch with each
|
||||
other after Doom began to make its impact, and I finally got a chance to
|
||||
meet up with him in person.
|
||||
|
||||
I talked myself hoarse that day, explaining all the ins and outs of Doom
|
||||
to Michael and an interested group of his coworkers. Every few days
|
||||
afterwards, I would get an email from Michael asking for an elaboration
|
||||
on one of my points, or discussing an aspect of the future of graphics.
|
||||
|
||||
Eventually, I popped the question—I offered him a job at id. "Just
|
||||
think: no reporting to anyone, an opportunity to code all day, starting
|
||||
with a clean sheet of paper. A chance to do *the right thing* as a
|
||||
programmer." It didn't work. I kept at it though, and about a year later
|
||||
I finally convinced him to come down and take a look at id. I was
|
||||
working on Quake.
|
||||
|
||||
Going from Doom to Quake was a tremendous step. I knew where I wanted to
|
||||
end up, but I wasn't at all clear what the steps were to get there. I
|
||||
was trying a huge number of approaches, and even the failures were
|
||||
teaching me a lot. My enthusiasm must have been contagious, because he
|
||||
took the job.
|
||||
|
||||
Much heroic programming ensued. Several hundred thousand lines of code
|
||||
were written. And rewritten. And rewritten. And rewritten.
|
||||
|
||||
In hindsight, I have plenty of regrets about various aspects of Quake,
|
||||
but it is a rare person that doesn't freely acknowledge the technical
|
||||
triumph of it. We nailed it. Sure, a year from now I will have probably
|
||||
found a new perspective that will make me cringe at the clunkiness of
|
||||
some part of Quake, but at the moment it still looks pretty damn good to
|
||||
me.
|
||||
|
||||
I was very happy to have Michael describe much of the Quake technology
|
||||
in his ongoing magazine articles. We learned a lot, and I hope we
|
||||
managed to teach a bit.
|
||||
|
||||
When a non-programmer hears about Michael's articles or the source code
|
||||
I have released, I usually get a stunned "WTF would you do that for???"
|
||||
look.
|
||||
|
||||
They don't get it.
|
||||
|
||||
Programming is not a zero-sum game. Teaching something to a fellow
|
||||
programmer doesn't take it away from you. I'm happy to share what I can,
|
||||
because I'm in it for the love of programming. The Ferraris are just
|
||||
gravy, honest!
|
||||
|
||||
This book contains many of the original articles that helped launch my
|
||||
programming career. I hope my contribution to the contents of the later
|
||||
articles can provide similar stepping stones for others.
|
||||
|
||||
—*John Carmack*\
|
||||
id Software
|
||||
Loading…
Reference in a new issue