If you call yourself a video game fan then chances are you’ve played DOOM, the 1993 horror-themed first-person shooter by id Software that put the FPS genre on the map. Its level of excessive violence and depictions of bloodthirsty demons make DOOM an all-time horror video game classic. During his time with id Software Dave Taylor was an integral part of the development for this historic horror game along with various other projects including the first “Quake”. After leaving id, David went on to found Cracked dot com, created the run and gun classic “Abuse” and is currently the vice president of Naked Sky Entertainment. Were lucky to have Dave with us today to answer a few questions!
BLANKMANinc:What led you to the world of game programming?
Dave Taylor: “I was deeply in love with games on the Apple ][+, particularly the Ultimas, Wolfensteins, Karateka- all those incredible classics. Started learning Applesoft Basic in 4th grade and 6502 assembly not long after that. First game wasn’t until college on a PC. I wrote one for a programming contest where people programmed the AI’s. I did that a couple more times for a national version of the same contest, but for Unix workstations.”
“After I graduated, my first job out of school was working at id Software. I was supposed to do the Sega Genesis port of Wolfenstein 3D, but Doom was running a little behind, so I helped with that instead.”
BMi:How did you get involved with id Software?
DT: “I had interviewed the team over a phone call with the whole team for an online magazine (a novel concept back then) called Game Bytes. I whined to John Carmack afterwards with the usual doughey-eyed-aw-gee-how-do-you-break-into-the-game-industry sort of email. Got lucky on the timing, and he invited me up for an interview.”
BMi: What specifically was your most important role in the production of Doom and Quake?
DT:“No idea. Maybe you’d be a better judge. On both, I referred to myself as a “spackle coder”. Carmack did the hard stuff. I filled in some holes. On Doom, it was the status bar, auto map, cheat codes, integrating the sound library and sound effects, those screen wipes at the end of a level if you remember those, and the between-level tallies of your performance. On Quake, I worked on the TCP/IP network support, VESA graphics support, and wrote the sound engine. We didn’t use source code control back then, and for most of my code, John would integrate it manually and/or rewrite it while doing so. I think most of the Quake code got rewritten at some point.”
“I think I’d say I was happiest with the Quake sound engine. I came up with a synchronous way to do it so that we didn’t need to fuss with pesky interrupt handlers, which tended to make the sound code harder to debug and would often cause stability issues if you got your IRQ settings wrong.”
“I also did the Linux (and other Unix ports) of Doom & Quake. It wasn’t really my job, but I just did it because Unix workstations were way more powerful than PCs back then, and I couldn’t stand DOS. I was always a Unix guy. Part of why I loved working there was that we were using NextStep as a dev platform, and I felt comfy in that. The Unix ports weren’t as fun as the sound engine code, but the Linux one in particular felt great to do. Linux was still pretty young back then and hadn’t had any big games ported to it yet. Got some extensions to the kernel made to get direct access to the DMA buffer for the sound card, and got some extensions made to XFree86 to allow direct access to the framebuffer. That felt awesome.”
“Also did a sound/music engine for Wolf 3D & Doom on the Atari Jaguar, which is the only time I think I’ve ever written code for a game console.”
“On the non-code front, on Doom, I came up with the idea on how to do the Doom Spectre visual effect so it looked kinda distorted like the bad guy from the movie Predator. On Quake, I came up with the idea for the nail gun.”
“And I showed the guys what a .plan file is, how you could finger someone, and I started populating mine with things, and they soon followed suit. In retrospect, I guess .plan files were kind of like an early ancestor to blogging.”
“I’m gonna ask 3.5 for you: 3.5. What specifically did you screw up the hardest in your time at id Software?”
“Oh so many things. These are my favs, though: To get a huge savings in bandwidth, I suggested John use broadcast packets in the network code of Doom (it only ran on LANs at the time). As a result, he got a call in the middle of the night at his apartment from the sysadmin of Carnegie Melon, who was seeing his 6000-node, completely flat, bridged network brought to its knees, because it was broadcasting each broadcast packet to all 6000 systems. Even if a PC wasn’t playing Doom, if it received a broadcast packet, it would still process it at least long enough to throw it away. Back then, PC’s didn’t have a lot of spare cycles, so this made them all slow if you had enough games of Doom running.”
“I also sysadmin’d our Unix server (a 275MHz 4-CPU DEC Alpha), and roped in DJ Delorie to help get DJGPP set up to let us cross-compile Quake to DOS (make -j5 compiled the whole game in under 30 seconds), but I also didn’t know jack about security back then. We got hacked, and I’m sure it was my fault, and that sucked.”
“Did some other dumb stuff I’m even more ashamed of and doubt the wisdom of discussing publicly. Young dumb kid disease.”
Continued on page 2