Michael Abrash
From Wikipedia, the free encyclopedia
Michael Abrash is a highly regarded technical writer, and one of the top optimization and 80x86 assembly language programmers, a reputation cemented by his 1990 book Zen of Assembly Language Volume 1: Knowledge. Unfortunately, the original 8086 processor, the focus of the book, was several generations behind the state of the art by the time the book was published. The much anticipated second volume was never published, but the planned topics were eventually covered in Zen of Graphics Programming.
In his 1994 book, "Zen of Code Optimization: The Ultimate Guide to Writing Software That Pushes PCs to the Limit", Abrash presents principles and theory applicable to today's programmers. The key point of the book was that performance must always be measured, and the book included a measurement tool called the Zen Timer to check if theoretical code optimizations actually worked. Abrash's systematic presentation of step-wise 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. Simply improving performance in one sub-routine would only expose bottlenecks in other routines and so on. Finally, he demonstrated processor-dependent assembly-based performance improvements by comparing assembly language optimizations across X86 family members.
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. Aside from adding personality and wit to what would otherwise be a dry, technical whitepaper, his prose encourages readers to think out-of-the-box and to approach solving technical problems in an innovative way.
His prolific writings have made their way to numerous publications such as a Dr. Dobb's Journal column on graphics programming and code optimization, The Zen and Art of Code Optimization, and his Graphics Programming Black Book, all of which were influential during their time. His most famous series of articles for Dr. Dobb's Journal, circa 1991, described an undocumented graphics mode for the IBM PC which he called Mode X.
Before getting into technical writing, Abrash was a game programmer, having written his first commercial game in 1982, Space Strike (unrelated to the massively multiplayer game of the same name) for the IBM PC (under DOS). Other games he wrote were Cosmic Crusader (1982) and Big Top (1983) for the same system. 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 Graphics Programming Black Book. 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 work for RAD Game Tools, where he co-wrote the advanced 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.
[edit] External links
- Abrash's profile at MobyGames
- Abrash's Graphics Programming Black Book
- Another source of his Graphics Programming Black Book
- Byte.com's copy of 'Graphics Programming' (Active February 2008)
- Ramblings in Realtime by Michael Abrash, detailed description of Quake's graphics engine programming