Michael Abrash

Last updated
Michael Abrash
Michael Abrash at Facebook's F8 2015.jpg
As Oculus VR Chief Scientist on stage at Facebook's F8 2015
Born1957 (age 6566) [1]
Occupation(s)Programmer
Technical writer
Employer Oculus VR (2014–present)
TitleChief scientist

Michael Abrash is an American programmer and technical writer. He is best known for his magazine articles and books on code optimization and graphics for IBM PC compatibles and for working at id Software in the mid 1990s on the rendering technology for Quake . Since 2014, he has been the chief scientist of Oculus VR, a subsidiary of Meta Platforms. [2]

Contents

Abrash started his career in 1982 writing action video games for the IBM PC, which eventually resulted in the 1990 book Zen of Assembly Language Volume 1: Knowledge. [3] He began writing about programming the EGA and VGA hardware of IBM PC compatibles for Programmer's Journal in the late 1980s, followed by a column for Dr. Dobb's Journal in the early 1990s. In the latter, he introduced a way to adjust VGA mode 13h to have a resolution of 320×240 with square pixels, which he called Mode X. He worked on the 3D rendering for Quake at id Software which he wrote publicly about. His columns and other writings were compiled into several books on graphics programming. [4] He later wrote the Pixomatic software renderer for RAD Game Tools.

Game programmer

Abrash began writing video games the early days of the IBM PC and the Color Graphics Adapter. His first commercial game was a clone of Space Invaders published by Datamost in 1982 as Space Strike . [5] He followed it with Cosmic Crusader (1982) and Big Top (1983), both published by Funtastic. Working with Dan Illowsky, who had previously programmed the Apple II Pac-Man clone Snack Attack , he co-wrote Snack Attack II (1982) for the IBM PC. [6]

After working at Microsoft on graphics and assembly code for Windows NT 3.1, he was hired by id Software in the mid-1990s to work on Quake . Some of the technology behind Quake is documented in Abrash's Ramblings in Realtime published in Dr. Dobb's Journal . [7] He mentions Quake as his favourite game of all time. [8] After Quake was released, Abrash returned to Microsoft to work on natural language research, then moved to the Xbox team until 2001. [9]

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. 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. [10]

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?'" [11] In 2011 Abrash joined Valve. [12]

On March 28, 2014, three days after Facebook announced agreements to purchase the virtual reality headset company, [13] Oculus VR published a statement saying that Michael Abrash had joined their company as Chief Scientist. [2] This reunited him with id Software's John Carmack, who was chief technology officer there at the time.

Technical writer

Michael Abrash was a columnist in the 1980s for the magazine Programmer's Journal. The articles were collected in the 1989 book, Power Graphics Programming. His second book, Zen of Assembly Language Volume 1: Knowledge (1990), [14] is about writing efficient assembly code for the 16-bit 8086 processor, but was released after the 80486 CPU was already being used in IBM PC compatibles. [15] Volume 2 was never published.

In the early to mid-1990s, Abrash wrote a column about graphics programming for IBM PC compatibles for Dr. Dobb's Journal called "Ramblings in Realtime." In 1991, his colummn introduced Mode X: a 256 color 320x240 graphics mode with square pixels instead of the slightly elongated pixels of the standard 320x200 mode. The same column covers a VGA feature allowing up to four pixels to be written at once—something which had not been widely documented outside of the VGA specification. The article and its follow-ups ignited interest among MS-DOS game programmers. "Ramblings in Realtime" also covered polygon drawing, 3D graphics, and texture mapping.

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), [16] In 1997 Abrash's Graphics Programming Black Book, [17] [18] was published. It was a collection of Dr. Dobb's Journal articles and his work on the Quake graphic subsystem.

Abrash stopped writing publicly in the 2000s until maintaining a public blog at Valve, "Ramblings in Valve Time", from April 2012 until January 2014.

Related Research Articles

<span class="mw-page-title-main">Video Graphics Array</span> Computer display standard and resolution

Video Graphics Array (VGA) is a video display controller and accompanying de facto graphics standard, first introduced with the IBM PS/2 line of computers in 1987, which became ubiquitous in the IBM PC compatible industry within three years. The term can now refer to the computer display standard, the 15-pin D-subminiature VGA connector, or the 640 × 480 resolution characteristic of the VGA hardware.

<span class="mw-page-title-main">Hercules Graphics Card</span> IBM PC graphic adapter and display standard

The Hercules Graphics Card (HGC) is a computer graphics controller formerly made by Hercules Computer Technology, Inc. that combines IBM's text-only MDA display standard with a bitmapped graphics mode, also offering a parallel printer port. This allows the HGC to offer both high-quality text and graphics from a single card.

<span class="mw-page-title-main">Enhanced Graphics Adapter</span> IBM PC graphic adapter and display standard

The Enhanced Graphics Adapter (EGA) is an IBM PC graphics adapter and de facto computer display standard from 1984 that superseded the CGA standard introduced with the original IBM PC, and was itself superseded by the VGA standard in 1987. In addition to the original EGA card manufactured by IBM, many compatible third-party cards were manufactured, and EGA graphics modes continued to be supported by VGA and later standards.

<span class="mw-page-title-main">Mode 13h</span> Standard 256-color mode on VGA graphics hardware

Mode 13h is the standard 256-color mode on VGA graphics hardware introduced in 1987 with the IBM PS/2. It has a resolution of 320×200 pixels. It was used extensively in computer games and art/animation software of the late 1980s and early to mid-1990s. "13h" refers to the number of the mode in the VGA BIOS. The "h" stands for hexadecimal.

Mode X is an alternative 256-color graphics display mode of the IBM VGA graphics hardware that was popularized by Michael Abrash. The primary advantage of Mode X is that it has square pixels: a resolution of 320×240 instead of the standard VGA Mode 13h which is 320×200. It is usually enabled by entering Mode 13h via an MS-DOS system call, then adjusting the resolution through VGA registers. It was first published in July 1991 in Dr. Dobb's Journal, and republished in chapters 47-49 of Abrash's Graphics Programming Black Book. The term "Mode X" was coined by Abrash.

<span class="mw-page-title-main">RAMDAC</span> Color to analog voltage table

A random-access memory digital-to-analog converter (RAMDAC) is a combination of three fast digital-to-analog converters (DACs) with a small static random-access memory (SRAM) used in computer graphics display controllers or video cards to store the color palette and to generate the analog signals to drive a color monitor. The logical color number from the display memory is fed into the address inputs of the SRAM to select a palette entry to appear on the data output of the SRAM. This entry is composed of three separate values corresponding to the three components of the desired physical color. Each component value is fed to a separate DAC, whose analog output goes to the monitor, and ultimately to one of its three electron guns.

<span class="mw-page-title-main">Color Graphics Adapter</span> IBM PC graphic adapter and display standard

The Color Graphics Adapter (CGA), originally also called the Color/Graphics Adapter or IBM Color/Graphics Monitor Adapter, introduced in 1981, was IBM's first color graphics card for the IBM PC and established a de facto computer display standard.

<span class="mw-page-title-main">IBM Monochrome Display Adapter</span> IBM PC graphic adapter and display standard

The Monochrome Display Adapter is IBM's standard video display card and computer display standard for the IBM PC introduced in 1981. The MDA does not have any pixel-addressable graphics modes, only a single monochrome text mode which can display 80 columns by 25 lines of high-resolution text characters or symbols useful for drawing forms.

Text mode is a computer display mode in which content is internally represented on a computer screen in terms of characters rather than individual pixels. Typically, the screen consists of a uniform rectangular grid of character cells, each of which contains one of the characters of a character set; at the same time, contrasted to graphics mode or other kinds of computer graphics modes.

<span class="mw-page-title-main">S3 ViRGE</span>

The S3 ViRGE (Video and Rendering Graphics Engine) graphics chipset was one of the first 2D/3D accelerators designed for the mass market.

<span class="mw-page-title-main">Code page 437</span> Character set of the original IBM PC

Code page 437 is the character set of the original IBM PC. It is also known as CP437, OEM-US, OEM 437, PC-8, or DOS Latin US. The set includes all printable ASCII characters as well as some accented letters (diacritics), Greek letters, icons, and line-drawing symbols. It is sometimes referred to as the "OEM font" or "high ASCII", or as "extended ASCII".

<i>Quake</i> engine Video game engine developed by id Software

The Quake engine is the game engine developed by id Software to power their 1996 video game Quake. It featured true 3D real-time rendering and since 2012, licensed under the terms of GNU General Public License v2.0 or later.

<span class="mw-page-title-main">Rendition, Inc.</span>

Rendition, Inc., was a maker of 3D computer graphics chipsets in the mid to late 1990s. They were known for products such as the Vérité 1000 and Vérité 2x00 and for being one of the first 3D chipset makers to directly work with Quake developer John Carmack to make a hardware-accelerated version of the game (vQuake). Rendition's major competitor at the time was 3Dfx. Their proprietary rendering APIs were Speedy3D and RRedline.

<span class="mw-page-title-main">Graphics Animation System for Professionals</span> Multimedia animation software

GRaphic Animation System for Professionals (GRASP) was the first multimedia animation program for the IBM PC family of computers. It was also at one time the most widely used animation format.

John Bridges is the co-author of the computer program PCPaint and primary developer of the program GRASP for Microtex Industries with Doug Wolfgram. He is also the sole author of GLPro and AfterGRASP. His article entitled "Differential Image Compression" was published in the February 1991 issue of Dr. Dobb's Journal.

<span class="mw-page-title-main">Vector-06C</span>

Vector-06C is a home computer with unique graphics capabilities that was designed and mass-produced in USSR in the late 1980s.

<span class="mw-page-title-main">VGA text mode</span> Computer graphics standard from 1987

VGA text mode was introduced in 1987 by IBM as part of the VGA standard for its IBM PS/2 computers. Its use on IBM PC compatibles was widespread through the 1990s and persists today for some applications on modern computers. The main features of VGA text mode are colored characters and their background, blinking, various shapes of the cursor, and loadable fonts. The Linux console traditionally uses hardware VGA text modes, and the Win32 console environment has an ability to switch the screen to text mode for some text window sizes.

<span class="mw-page-title-main">Tandy Graphics Adapter</span> Computer display standard for the Tandy 1000 series

Tandy Graphics Adapter is a computer display standard for the Tandy 1000 series of IBM PC compatibles, which has compatibility with the video subsystem of the IBM PCjr but became a standard in its own right.

References

  1. Abrash, Michael (April 1, 1997). "Some Things I've Learned About Win32 Game Programming". Dr. Dobb's.
  2. 1 2 "Introducing Michael Abrash, Oculus Chief Scientist". Oculus VR. 2014-03-28. Retrieved 28 March 2014.
  3. Abrash, Michael (January 1990). Zen of Assembly Language: Knowledge. Scott Foresman Trade. ISBN   978-0-673-38602-1.
  4. 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.
  5. Lacine, Mark (Mar–Apr 1983). "Micro-Reviews". Computer Gaming World. Vol. 1, no. 9. p. 44.
  6. Hague, James. "The Giant List of Classic Game Programmers".
  7. Abrash, Michael (1996-02-01). "Ramblings in Realtime". www.drdobbs.com. Retrieved 2010-07-10.
  8. Valve Pipeline. "Pipeline Interviews: Michael Abrash on Virtual Reality & the Future of Gaming". YouTube. Archived from the original on 2021-12-12. Retrieved 8 November 2016.
  9. "Xbox Graphics Analyzed". GameSpot. Retrieved 2022-08-25.
  10. Abrash, Michael (2009-04-01). "A First Look at the Larrabee New Instructions (LRBni)". drdobbs.com/architecture-and-design. Retrieved 2010-07-10.
  11. Walker, John (2007-11-21). "RPS Exclusive: Gabe Newell Interview". Rock, Paper, Shotgun . Retrieved 22 January 2010.
  12. Crossley, Rob (2011-05-13). "Valve hires world-class development trio". Develop. Retrieved 16 May 2011.
  13. "Facebook to Acquire Oculus". Facebook. 2014-03-25. Retrieved 28 March 2014.
  14. Abrash, Michael (1990). Zen of Assembly Language: Knowledge. Scott, Foresman. ISBN   978-0-673-38602-1.
  15. Hague, James (2008-02-18). "Five Memorable Books About Programming" . Retrieved 2010-07-10.
  16. 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.
  17. Abrash, Michael (July 1997). Graphics Programming Black Book . Coriolis Group Books. ISBN   978-1-57610-174-2.
  18. Abrash, Michael (2001-11-01). "Graphics Programming Black Book". www.drdobbs.com/high-performance-computing. Retrieved 2010-07-10.