|Occupation||Programmer, technical writer|
Michael Abrash is a programmer and technical writer specializing in code optimization and 80x86 assembly language, a reputation cemented by his 1990 book Zen of Assembly Language Volume 1: Knowledge and a monthly column in Dr. Dobb's Journal in the early 1990s. A later book, Zen of Graphics Programming, applied these ideas to 2D and 3D graphics prior to the advent of hardware accelerators for the PC. Though not strictly a game programmer, Abrash has worked on the underlying technology for games, such as Quake, for much of his career.
He frequently begins a technical discussion with an anecdote that draws parallels between a real-life experience he has had and the article's subject matter. His prose encourages readers to think outside the box and to approach solving technical problems in an innovative way.
Abrash first bought a microcomputer while doing postgraduate studies at the University of Pennsylvania. Before getting into technical writing, Abrash was a game programmer in the early days of the IBM PC. His first commercial game was a clone of Space Invaders published by Datamost in 1982 as Space Strike. He co-authored several PC games with Dan Illowsky who had previously written the successful Pac-Man clone Snack Attack for the Apple II. Abrash and Illowsky worked together on the Galaxian-like Cosmic Crusader (1982), maze game Snack Attack II (1982), and platform game Big Top (1983).
After working at Microsoft on graphics and assembly code for Windows NT 3.1, he returned to the game industry in the mid-1990s to work on Quake for id Software. Some of the technology behind Quake is documented in Abrash's Ramblings in Realtime published in Dr. Dobb's Journal. After Quake was released, Abrash returned to Microsoft to work on natural language research, then moved to the Xbox team, until 2001.
In 2002, Abrash went to RAD Game Tools, where he co-wrote the Pixomatic software renderer, which emulates the functionality of a DirectX 7-level graphics card and is used as the software renderer in such games as Unreal Tournament 2004. At the end of 2005, Pixomatic was acquired by Intel. When developing Pixomatic, he and Mike Sartain designed a new architecture called Larrabee, which now is part of Intel's GPGPU project.
Gabe Newell, managing director of Valve, said that he had "been trying to hire Michael Abrash forever. [...] About once a quarter we go for dinner and I say 'are you ready to work here yet?'" In 2011 Abrash made the move to join Valve.
On March 28, 2014, virtual reality headset company, Oculus VR, published a statement saying that Michael Abrash had joined their company as Chief Scientist. This was three days after Facebook announced agreements to purchase Oculus VR.
Michael Abrash was a columnist in the 1980s for a magazine called Programmer's Journal. Those articles were collected in the 1989 book, Power Graphics Programming.
His second book, Zen of Assembly Language Volume 1: Knowledge (1990), focused on writing efficient assembly code for the 16-bit 8086 processor, but was released after the 80486 CPU was already available. In addition to assembly-level optimization, the book focused on parts of the system that silently affect code performance, which he called "cycle eaters." A key point of Zen of Assembly Language is that performance must always be measured, and the book included a tool called the Zen Timer to check if theoretical code optimizations actually worked. Volume 2 was never published.
Dr. Dobb's and later books
In the early to mid-1990s, Abrash wrote a PC graphics programming column for Dr. Dobb's Journal called "Ramblings in Realtime." In 1991 he introduced Mode X, a 320x240 VGA graphics mode with square pixels instead of the slightly elongated pixels of the standard 320x200 mode. At the same time, he introduced readers to a little known part of the VGA standard allowing multiple pixels to be written at once. The article and its follow-ups ignited interest among PC game programmers.
Much of the content of Zen of Assembly Language was updated in Zen of Code Optimization: The Ultimate Guide to Writing Software That Pushes PCs to the Limit (1994), along with new material. The presentation of stepwise program refinement empirically demonstrated how algorithm re-design could improve performance up to a factor of 100. Assembly language re-coding, on the other hand, may only improve performance by a factor of 10. Abrash also showed how elusive performance improvement can be, and improving performance in one subroutine can expose bottlenecks in other routines. Finally, he demonstrated processor-dependent assembly-based performance improvements by comparing assembly language optimizations across x86 generations, including how some micro-optimizations disappeared or even made a program slower.
Abrash stopped writing publicly in the 2000s until beginning a blog at Valve in 2012.
- Abrash, Michael (January 1990). Zen of Assembly Language: Knowledge. Scott Foresman Trade. ISBN 978-0-673-38602-1.
- Abrash, Michael (1994-01-15). Zen of Graphics Programming: The Ultimate Guide to Writing Fast PC Graphics. Coriolis Group; Bk&Disk edition. ISBN 978-1-883577-08-7.
- Hague, James. "The Giant List of Classic Game Programmers".
- Abrash, Michael (1996-02-01). "Ramblings in Realtime". www.drdobbs.com. Retrieved 2010-07-10.
- Abrash, Michael (2009-04-01). "A First Look at the Larrabee New Instructions (LRBni)". drdobbs.com/architecture-and-design. Retrieved 2010-07-10.
- Walker, John (2007-11-21). "RPS Exclusive: Gabe Newell Interview". Rock, Paper, Shotgun. Retrieved 22 January 2010.
- Crossley, Rob (2011-05-13). "Valve hires world-class development trio". Develop. Retrieved 16 May 2011.
- "Introducing Michael Abrash, Oculus Chief Scientist". Oculus VR. 2014-03-28. Retrieved 28 March 2014.
- "Facebook to Acquire Oculus". Facebook. 2014-03-25. Retrieved 28 March 2014.
- Hague, James (2008-02-18). "Five Memorable Books About Programming". prog21.dadgum.com. Retrieved 2010-07-10.
- Abrash, Michael (1994-12-08). Zen of Code Optimization: The Ultimate Guide to Writing Software That Pushes PCs to the Limit. Coriolis Group Books. ISBN 978-1-883577-03-2.
- Abrash, Michael (July 1997). Graphics Programming Black Book. Coriolis Group Books. ISBN 978-1-57610-174-2.
- Abrash, Michael (2001-11-01). "Graphics Programming Black Book". www.drdobbs.com/high-performance-computing. Retrieved 2010-07-10.
- Ramblings in Valve Time - A blog by Michael Abrash
- Michael Abrash's developer profile at MobyGames
- Ramblings in Realtime by Michael Abrash, detailed description of Quake's graphics engine programming (PDF version)
- Graphics Programming Black Book by Michael Abrash (HTML version and ebook source)
- 40 minutes with Michael Abrash of Valve Software", Audio interview with Michael Abrash at QuakeCon 2012 discussing Abrash's career and work at Valve