E-Book Content
GAME ENGINE BLACK BOOK DOOM FABIEN S ANGLARD
Copyright In order to illustrate how the DOOM game engine works, a few screenshots, images, sprites, and textures belonging to and copyrighted by id Software are reproduced in this book. The following items are used under the "fair use" doctrine:
1. All in-game screenshots, title screen. 2. All in-game menu screenshots. 3. All 3D sequence textures. 4. All 3D sequence sprites. 5. All screenshots of DOOM. 6. DOOM name. Photographs with "ROME.RO" watermark belong to John Romero and are reproduced with his authorization. DOOM Survivor’s Strategies & Secrets essays are copyrighted by Jonathan Mendoza and reproduced with his authorization.
3
Acknowledgments Many people helped completing this book. Many thanks are due: To John Carmack, John Romero, and Dave Taylor for sharing their memories of DOOM development and answering my many questions. To people who kindly devoted time to the painful proofreading process, Aurelien Sanglard, Jim Leonard, Dave Taylor, Jonathan Dowland, Christopher Van Der Westhuizen, Eluan Miranda, Luciano Dadda, Mikhail Naganov, Leon Sodhi, Olivier Cahagne, Andrew Stine, and John Corrado. To Simon Howard, for not only proofreading but also sending pull requests to the git repo. His efforts saved countless hours at a time where the deadline was concernedly close. To Jim Leonard who once again volunteered his time and encyclopedic knowledge of audio hardware and software (the Roland section was heavily based on his articles). To Foone Turing who volunteered his fleet of 386s, 486s, and ISA/VLB VGA cards to accurately benchmark DOOM. To Andrew Stine, founder of doomworld.com, for sharing his encyclopedic knowledge of DOOM and putting me in touch with the right people. To James Miller and Leon Zawada who researched and discovered the origin of the backgrounds. James also collected and photographed all toy props used to shape DOOM weapons. To Rob Blessin, founder and owner of Black Hole, Inc for answering all my questions about NeXT, helping me assemble a NeXTstation, and lending me a rare NeXTdimension board. If you ever want to restore a NeXT or acquire your own, Rob is likely a good starting point. To Alexey Khokholov, author of PCDoom-v2. His backport helped to generate accurate performance metrics. 5
To Alexandre-Xavier Labonté-Lamoureux for his patch restoring C drawing routines in PCDoom-v2. To Simon Judd, author of Slade3, a map editor used to create maps showcasing special aspects of the renderer. To Colin Reed and Lee Killough for their node builder, BSP 5.2, which was used to inject maps into the DOOM engine. To the developers of Chocolate DOOM which was heavily hacked to generate many explanatory screenshots. To Bruce Naylor for kindly making time for an interview and enlightening me with his master knowledge of BSPs. To John McMaster for his insanely high resolution photos of Intel 486 and Motorola 68040 CPUs. To Romain Guy for taking the pictures of my 486 motherboard, my NeXTCube motherboard, and my NeXTDimension motherboard. To Samuel Villarreal for finding the origin of the BFG artwork and reverse engineering DOOM console animated fire. To Rebecca Heineman (author of DOOM 3DO) for proof-reading and fact checking the 3DO section. To Carl Forhan, owner and founder of Songbird Productions for releasing DOOM Jaguar source code and answering my questions. To Leon Sodhi, for sharing his studies of DOOM wall rendition. To John Corrado, for sharing his knowledge of visplanes. To Matthew S Fell, author of the Unofficial DOOM specs which was instrumental in building the map visualizer featured in this book. To Alexandre-Xavier Labonté-Lamoureux for providing the SNES screenshot demonstrating dithering and diminished lightning. To Aiden Hoopes, Alexandre-Xavier Labonté-Lamoureux (axdoomer), Anders Montonen, coucouf, Bartosz Pikacz, Bartosz Taudul, B