Michael Abrash es un programador y escritor técnico estadounidense . Ha escrito docenas de artículos de revistas y varios libros sobre optimización de código y gráficos renderizados por software para IBM PC compatibles . Trabajó en id Software a mediados de la década de 1990 en la tecnología de renderizado para Quake . Más tarde escribió el renderizador de software Pixomatic para RAD Game Tools. Desde 2014, ha sido el científico jefe de Oculus VR , una subsidiaria de Meta Platforms . [2]
Abrash comenzó su carrera en 1982 escribiendo videojuegos de acción para IBM PC, lo que finalmente resultó en un libro de 1990, Zen of Assembly Language Volume 1: Knowledge , sobre la optimización para los procesadores de 16 bits 8086 y 8088. [3] Comenzó a escribir sobre la programación del hardware EGA y VGA de los IBM PC compatibles para Programmer's Journal a fines de la década de 1980, seguido de una columna para Dr. Dobb's Journal a principios de la década de 1990. En esta última, presentó un método para ajustar el modo VGA 13h para tener una resolución de 320 × 240 con píxeles cuadrados, al que llamó Mode X. También usó su columna de Dr. Dobbs para escribir sobre los detalles de su trabajo en Quake.
Abrash comenzó a escribir videojuegos en los primeros días de la IBM PC y el Color Graphics Adapter . Su primer juego comercial fue un clon de Space Invaders publicado por Datamost en 1982 como Space Strike . [4] Le siguieron Cosmic Crusader (1982) y Big Top (1983), ambos publicados por Funtastic. Trabajando con Dan Illowsky, que había programado previamente el clon de Pac-Man para Apple II Snack Attack , coescribió Snack Attack II (1982) para la IBM PC. [5] Todos sus juegos para IBM PC fueron escritos en lenguaje ensamblador 8086 .
Después de trabajar en Microsoft en gráficos y código ensamblador para Windows NT 3.1 , fue contratado por id Software a mediados de los años 90 para trabajar en Quake . Parte de la tecnología detrás de Quake está documentada en Ramblings in Realtime de Abrash , publicado en Dr. Dobb's Journal . [6] Menciona a Quake como su juego favorito de todos los tiempos. [7] Después del lanzamiento de Quake , Abrash regresó a Microsoft para trabajar en la investigación del lenguaje natural, y luego se trasladó al equipo de Xbox hasta 2001. [8]
En 2002, Abrash se incorporó a RAD Game Tools, donde coescribió el renderizador de software Pixomatic , que emula la funcionalidad de una tarjeta gráfica de nivel DirectX 7. A finales de 2005, Pixomatic fue adquirida por Intel . Al desarrollar Pixomatic, él y Mike Sartain diseñaron una nueva arquitectura llamada Larrabee , que ahora forma parte del proyecto GPGPU de Intel. [9]
Gabe Newell , director general de Valve , dijo que había "estado intentando contratar a Michael Abrash desde siempre. [...] Aproximadamente una vez por trimestre vamos a cenar y le pregunto '¿estás listo para trabajar aquí todavía? ' " [10] En 2011, Abrash se unió a Valve. [11]
El 28 de marzo de 2014, tres días después de que Facebook anunciara acuerdos para comprar la empresa de auriculares de realidad virtual , [12] Oculus VR publicó un comunicado diciendo que Michael Abrash se había unido a su empresa como científico jefe . [2] Esto lo reunió con John Carmack de id Software , quien era director de tecnología allí en ese momento.
Michael Abrash fue columnista en la década de 1980 para la revista Programmer's Journal . Los artículos fueron recopilados en el libro de 1989, Power Graphics Programming . Su segundo libro, Zen of Assembly Language Volume 1: Knowledge (1990), [13] trata sobre la escritura de código ensamblador eficiente para el procesador 8086 de 16 bits, pero fue publicado después de que la CPU 80486 ya se estuviera utilizando en los IBM PC compatibles. [14] El volumen 2 nunca fue publicado.
A principios y mediados de los años 90, Abrash escribió una columna sobre programación gráfica para IBM PC compatibles para el Dr. Dobb's Journal llamada "Ramblings in Realtime". En 1991, su columna presentó Mode X : un modo gráfico de 256 colores de 320x240 píxeles con píxeles cuadrados en lugar de los píxeles ligeramente alargados del modo estándar de 320x200. La misma columna cubre una característica VGA que permite escribir hasta cuatro píxeles a la vez, algo que no había sido ampliamente documentado fuera de la especificación VGA. El artículo y sus seguimientos despertaron el interés entre los programadores de juegos MS-DOS. "Ramblings in Realtime" también cubrió el dibujo de polígonos, los gráficos 3D y el mapeo de texturas.
Gran parte del contenido de Zen of Assembly Language fue actualizado en Zen of Code Optimization: The Ultimate Guide to Writing Software That Pushes PCs to the Limit (1994), [15] En 1997 se publicó Abrash's Graphics Programming Black Book , [16] [17] . Es una colección de artículos del Dr. Dobb's Journal y su trabajo sobre el subsistema gráfico Quake .
Abrash dejó de escribir públicamente en la década de 2000 hasta mantener un blog público en Valve, "Ramblings in Valve Time", desde abril de 2012 hasta enero de 2014.