<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.sarg.dev/index.php?action=history&amp;feed=atom&amp;title=Michael_Abrash</id>
	<title>Michael Abrash - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.sarg.dev/index.php?action=history&amp;feed=atom&amp;title=Michael_Abrash"/>
	<link rel="alternate" type="text/html" href="https://wiki.sarg.dev/index.php?title=Michael_Abrash&amp;action=history"/>
	<updated>2026-06-20T06:43:01Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://wiki.sarg.dev/index.php?title=Michael_Abrash&amp;diff=181873&amp;oldid=prev</id>
		<title>2A00:23C5:F23A:7701:70C2:7150:3943:7966: /* Game programmer */</title>
		<link rel="alternate" type="text/html" href="https://wiki.sarg.dev/index.php?title=Michael_Abrash&amp;diff=181873&amp;oldid=prev"/>
		<updated>2025-06-21T11:01:55Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Game programmer&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{short description|American programmer and technical writer}}&lt;br /&gt;
{{Infobox person&lt;br /&gt;
| name               = Michael Abrash&lt;br /&gt;
| image              = Michael Abrash at Facebook&amp;#039;s F8 2015.jpg&lt;br /&gt;
| birth_date         = {{Birth year and age|1957}}&amp;lt;ref&amp;gt;{{cite web |last1=Abrash |first1=Michael |title=Some Things I&amp;#039;ve Learned About Win32 Game Programming |url=https://www.drdobbs.com/windows/some-things-ive-learned-about-win32-game/184410376 |website=Dr. Dobb&amp;#039;s |date=April 1, 1997}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
| caption            = As [[Oculus VR]] Chief Scientist on stage at [[Facebook]]&amp;#039;s F8 2015&lt;br /&gt;
| occupation         = Programmer&amp;lt;br&amp;gt;Technical writer&lt;br /&gt;
| title              = Chief scientist&lt;br /&gt;
| employer           = [[Oculus VR]] (2014–present)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Michael Abrash&amp;#039;&amp;#039;&amp;#039; is an American [[programmer]] and [[technical writer]]. He has written dozens of magazine articles and multiple books on [[program optimization|code optimization]] and software-rendered graphics for [[IBM PC compatible]]s. He worked at [[id Software]] in the mid-1990s on the rendering technology for &amp;#039;&amp;#039;[[Quake (video game)|Quake]]&amp;#039;&amp;#039;. He later wrote the Pixomatic [[software renderer]] for RAD Game Tools. Since 2014, he has been the chief scientist of [[Oculus VR]], a subsidiary of [[Meta Platforms]].&amp;lt;ref name=&amp;quot;Oculus01&amp;quot; /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Abrash started his career in 1982 writing action video games for the IBM PC, which eventually resulted in a 1990 book, &amp;#039;&amp;#039;Zen of Assembly Language Volume 1: Knowledge&amp;#039;&amp;#039;, about optimization for the 16-bit 8086 and 8088 processors.&amp;lt;ref name=&amp;quot;zenassembly&amp;quot;/&amp;gt; He began writing about programming the [[Enhanced Graphics Adapter|EGA]] and [[Video Graphics Array|VGA]] hardware of IBM PC compatibles for &amp;#039;&amp;#039;Programmer&amp;#039;s Journal&amp;#039;&amp;#039; in the late 1980s, followed by a column for &amp;#039;&amp;#039;[[Dr. Dobb&amp;#039;s Journal]]&amp;#039;&amp;#039; in the early 1990s. In the latter, he introduced a method of adjusting VGA [[mode 13h]] to have a resolution of 320×240 with square pixels, which he called [[Mode X]]. He also used his &amp;#039;&amp;#039;Dr. Dobbs&amp;#039;s&amp;#039;&amp;#039; column to write about the details of his work on &amp;#039;&amp;#039;Quake&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
==Game programmer==&lt;br /&gt;
&lt;br /&gt;
Abrash began writing video games in the early days of the [[IBM PC]] and the [[Color Graphics Adapter]]. His first commercial game was a clone of &amp;#039;&amp;#039;[[Space Invaders]]&amp;#039;&amp;#039; published by [[Datamost]] in 1982 as &amp;#039;&amp;#039;[[Space Strike]]&amp;#039;&amp;#039;.&amp;lt;ref name=&amp;quot;CGW9&amp;quot;&amp;gt;{{cite magazine |last=Lacine |first=Mark |date=Mar–Apr 1983 |title=Micro-Reviews |magazine=Computer Gaming World |volume=1 |issue=9 |pages=44}}&amp;lt;/ref&amp;gt; He followed it with &amp;#039;&amp;#039;[[Cosmic Crusader]]&amp;#039;&amp;#039; (1982) and &amp;#039;&amp;#039;[[Big Top (video game)|Big Top]]&amp;#039;&amp;#039; (1983), both published by Funtastic. Working with Dan Illowsky, who had previously programmed the Apple II &amp;#039;&amp;#039;[[Pac-Man]]&amp;#039;&amp;#039; clone &amp;#039;&amp;#039;[[Snack Attack]]&amp;#039;&amp;#039;, he co-wrote &amp;#039;&amp;#039;Snack Attack II&amp;#039;&amp;#039; (1982) for the IBM PC.&amp;lt;ref name=giantlist/&amp;gt; All of his IBM PC games were written in 8086 [[assembly language]].&lt;br /&gt;
&lt;br /&gt;
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 &amp;#039;&amp;#039;[[Quake (video game)|Quake]]&amp;#039;&amp;#039;. Some of the technology behind &amp;#039;&amp;#039;Quake&amp;#039;&amp;#039; is documented in Abrash&amp;#039;s &amp;#039;&amp;#039;Ramblings in Realtime&amp;#039;&amp;#039; published in &amp;#039;&amp;#039;[[Dr. Dobb&amp;#039;s Journal]]&amp;#039;&amp;#039;.&amp;lt;ref name=&amp;quot;rir&amp;quot;/&amp;gt; He mentions Quake as his favourite game of all time.&amp;lt;ref&amp;gt;{{cite web|last1=Valve Pipeline|title=Pipeline Interviews: Michael Abrash on Virtual Reality &amp;amp; the Future of Gaming|url=https://www.youtube.com/watch?v=l461vIVtDZM |archive-url=https://ghostarchive.org/varchive/youtube/20211212/l461vIVtDZM| archive-date=2021-12-12 |url-status=live|website=YouTube|access-date=8 November 2016}}{{cbignore}}&amp;lt;/ref&amp;gt; After &amp;#039;&amp;#039;Quake&amp;#039;&amp;#039; was released, Abrash returned to Microsoft to work on natural language research, then moved to the [[Xbox (console)|Xbox]] team until 2001.&amp;lt;ref&amp;gt;{{Cite web |title=Xbox Graphics Analyzed |url=https://www.gamespot.com/articles/xbox-graphics-analyzed/1100-2609442/ |access-date=2022-08-25 |website=GameSpot |language=en-US}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In 2002, Abrash went to RAD Game Tools where he co-wrote the Pixomatic [[software rendering|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 (microarchitecture)|Larrabee]], which now is part of Intel&amp;#039;s [[GPGPU]] project.&amp;lt;ref name=&amp;quot;larrabee&amp;quot;&amp;gt;{{cite web|title=A First Look at the Larrabee New Instructions (LRBni)| author-link = Michael Abrash| url=http://www.drdobbs.com/architecture-and-design/216402188| last=Abrash| first=Michael| publisher=drdobbs.com/architecture-and-design| date=2009-04-01| access-date=2010-07-10}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Gabe Newell]], managing director of [[Valve Corporation|Valve]], said that he had &amp;quot;been trying to hire Michael Abrash forever. &amp;#039;&amp;#039;[...]&amp;#039;&amp;#039; About once a quarter we go for dinner and I say &amp;#039;are you ready to work here yet?{{&amp;#039; &amp;quot;}}&amp;lt;ref name=&amp;quot;gabenewell&amp;quot;&amp;gt;{{cite web|url=http://www.rockpapershotgun.com/2007/11/21/rps-exclusive-gabe-newell-interview/|title=RPS Exclusive: Gabe Newell Interview| last=Walker| first=John| date=2007-11-21| publisher=[[Rock, Paper, Shotgun]] | access-date=22 January 2010}}&amp;lt;/ref&amp;gt; In 2011 Abrash joined Valve.&amp;lt;ref name=&amp;quot;develop&amp;quot;&amp;gt;{{cite web|url=http://www.develop-online.net/news/37665/Valve-hires-world-class-development-trio |title=Valve hires world-class development trio| last=Crossley| first=Rob| date=2011-05-13| publisher=Develop| access-date=16 May 2011}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On March 28, 2014, three days after [[Facebook]] announced agreements to purchase the [[virtual reality]] headset company,&amp;lt;ref name=&amp;quot;Oculus022&amp;quot;&amp;gt;{{cite web|url=http://newsroom.fb.com/news/2014/03/facebook-to-acquire-oculus/|title=Facebook to Acquire Oculus|date=2014-03-25|publisher=Facebook|access-date=28 March 2014}}&amp;lt;/ref&amp;gt; [[Oculus VR]] published a statement saying that Michael Abrash had joined their company as [[Chief science officer|Chief Scientist]].&amp;lt;ref name=&amp;quot;Oculus01&amp;quot;&amp;gt;{{cite web|url=http://www.oculusvr.com/blog/introducing-michael-abrash-oculus-chief-scientist/|title=Introducing Michael Abrash, Oculus Chief Scientist| date=2014-03-28| publisher=Oculus VR| access-date=28 March 2014}}&amp;lt;/ref&amp;gt; This reunited him with [[id Software]]&amp;#039;s [[John Carmack]], who was [[chief technology officer]] there at the time.&lt;br /&gt;
&lt;br /&gt;
==Technical writer==&lt;br /&gt;
Michael Abrash was a columnist in the 1980s for the magazine &amp;#039;&amp;#039;Programmer&amp;#039;s Journal&amp;#039;&amp;#039;. The articles were collected in the 1989 book, &amp;#039;&amp;#039;Power Graphics Programming&amp;#039;&amp;#039;. His second book, &amp;#039;&amp;#039;Zen of Assembly Language Volume 1: Knowledge&amp;#039;&amp;#039; (1990),&amp;lt;ref name=zengraphic/&amp;gt; is about writing efficient [[assembly code]] for the original IBM PC&amp;#039;s [[Intel 8088]] processor, but was released after the [[80486]] CPU was already being used in IBM PC compatibles.&amp;lt;ref name=&amp;quot;jameshague&amp;quot;/&amp;gt; Volume 2 was never published.&lt;br /&gt;
&lt;br /&gt;
In the early to mid-1990s, Abrash wrote a column about graphics programming for IBM PC compatibles for &amp;#039;&amp;#039;[[Dr. Dobb&amp;#039;s Journal]]&amp;#039;&amp;#039; called &amp;quot;Ramblings in Realtime.&amp;quot; In 1991, his column 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 [[Video Graphics Array|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. &amp;quot;Ramblings in Realtime&amp;quot; also covered polygon drawing, 3D graphics, and texture mapping.&lt;br /&gt;
&lt;br /&gt;
Much of the content of &amp;#039;&amp;#039;Zen of Assembly Language&amp;#039;&amp;#039; was updated in &amp;#039;&amp;#039;Zen of Code Optimization: The Ultimate Guide to Writing Software That Pushes PCs to the Limit&amp;#039;&amp;#039; (1994).&amp;lt;ref name=&amp;quot;zen&amp;quot;/&amp;gt; &lt;br /&gt;
In 1997 Abrash&amp;#039;s &amp;#039;&amp;#039;Graphics Programming Black Book&amp;#039;&amp;#039;,&amp;lt;ref name=&amp;quot;gpbb-book&amp;quot;/&amp;gt;&amp;lt;ref name=&amp;quot;gpbb&amp;quot;/&amp;gt; was published. It is a collection of &amp;#039;&amp;#039;Dr. Dobb&amp;#039;s Journal&amp;#039;&amp;#039; articles and his work on the &amp;#039;&amp;#039;[[Quake (video game)|Quake]]&amp;#039;&amp;#039; graphic subsystem.&lt;br /&gt;
&lt;br /&gt;
Abrash stopped writing publicly in the 2000s until maintaining a public blog at Valve, &amp;quot;Ramblings in Valve Time&amp;quot;, from April 2012 until January 2014.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;giantlist&amp;quot;&amp;gt;{{cite web&lt;br /&gt;
  |url=https://dadgum.com/giantlist/&lt;br /&gt;
  |title=The Giant List of Classic Game Programmers&lt;br /&gt;
  |last=Hague&lt;br /&gt;
  |first=James}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;rir&amp;quot;&amp;gt;{{cite web&lt;br /&gt;
  |url=http://www.drdobbs.com/184410037&lt;br /&gt;
  |title=Ramblings in Realtime&lt;br /&gt;
  |last=Abrash&lt;br /&gt;
  |first=Michael&lt;br /&gt;
  |date=1996-02-01&lt;br /&gt;
  |publisher=www.drdobbs.com&lt;br /&gt;
  |access-date=2010-07-10 &amp;lt;!--doi=10.1.1.122.5128 despite http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.122.5128&amp;amp;rep=rep1&amp;amp;type=pdf its not working--&amp;gt;}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;gpbb&amp;quot;&amp;gt;{{cite web&lt;br /&gt;
  |title=Graphics Programming Black Book&lt;br /&gt;
  |url=http://www.drdobbs.com/high-performance-computing/184404919&lt;br /&gt;
  |last=Abrash&lt;br /&gt;
  |first=Michael&lt;br /&gt;
  |author-link = Michael Abrash&lt;br /&gt;
  |publisher=www.drdobbs.com/high-performance-computing&lt;br /&gt;
  |date=2001-11-01&lt;br /&gt;
  |access-date=2010-07-10}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;jameshague&amp;quot;&amp;gt;&lt;br /&gt;
{{cite web&lt;br /&gt;
  |title=Five Memorable Books About Programming&lt;br /&gt;
  |url=https://prog21.dadgum.com/19.html&lt;br /&gt;
  |last=Hague&lt;br /&gt;
  |first=James&lt;br /&gt;
  |date=2008-02-18&lt;br /&gt;
  |access-date=2010-07-10}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;gpbb-book&amp;quot;&amp;gt;{{cite book&lt;br /&gt;
  |last = Abrash&lt;br /&gt;
  |first = Michael&lt;br /&gt;
  |author-link = Michael Abrash&lt;br /&gt;
  |title = Graphics Programming Black Book&lt;br /&gt;
  |url = https://archive.org/details/michaelabrashsgr00abra&lt;br /&gt;
  |url-access = registration&lt;br /&gt;
  |publisher = Coriolis Group Books&lt;br /&gt;
  |date= July 1997|isbn = 978-1-57610-174-2&lt;br /&gt;
}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;zenassembly&amp;quot;&amp;gt;{{cite book&lt;br /&gt;
  |last = Abrash&lt;br /&gt;
  |first = Michael&lt;br /&gt;
  |author-link = Michael Abrash&lt;br /&gt;
  |title = Zen of Assembly Language: Knowledge&lt;br /&gt;
  |publisher = Scott Foresman Trade&lt;br /&gt;
  |date= January 1990|isbn = 978-0-673-38602-1&lt;br /&gt;
}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;zen&amp;quot;&amp;gt;{{cite book&lt;br /&gt;
  |last = Abrash&lt;br /&gt;
  |first = Michael&lt;br /&gt;
  |author-link = Michael Abrash&lt;br /&gt;
  |title = Zen of Code Optimization: The Ultimate Guide to Writing Software That Pushes PCs to the Limit&lt;br /&gt;
  |publisher = Coriolis Group Books&lt;br /&gt;
  |date = 1994-12-08&lt;br /&gt;
  |isbn = 978-1-883577-03-2&lt;br /&gt;
  |url-access = registration&lt;br /&gt;
  |url = https://archive.org/details/zenofcodeoptimiz0000abra&lt;br /&gt;
  }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;zengraphic&amp;quot;&amp;gt;{{cite book&lt;br /&gt;
  |last = Abrash&lt;br /&gt;
  |first = Michael&lt;br /&gt;
  |author-link = Michael Abrash&lt;br /&gt;
  |title = Zen of Graphics Programming: The Ultimate Guide to Writing Fast PC Graphics&lt;br /&gt;
  |publisher = Coriolis Group; Bk&amp;amp;Disk edition&lt;br /&gt;
  |date = 1994-01-15&lt;br /&gt;
  |isbn = 978-1-883577-08-7&lt;br /&gt;
}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;/references&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* [https://web.archive.org/web/20200423104346/http://blogs.valvesoftware.com/abrash/ Ramblings in Valve Time - A blog by Michael Abrash (archived)]&lt;br /&gt;
* {{moby developer|id=213|name=Michael Abrash&amp;#039;s developer profile}}&lt;br /&gt;
* [http://www.bluesnews.com/abrash/ &amp;#039;&amp;#039;Ramblings in Realtime&amp;#039;&amp;#039; by Michael Abrash], detailed description of &amp;#039;&amp;#039;Quake&amp;#039;&amp;#039;{{&amp;#039;s}} graphics engine programming ([http://www.bluesnews.com/abrash/abrash.pdf PDF version])&lt;br /&gt;
* [http://www.drdobbs.com/high-performance-computing/184404919 &amp;#039;&amp;#039;Graphics Programming Black Book&amp;#039;&amp;#039; by Michael Abrash] ([http://www.jagregory.com/abrash-black-book HTML version] and [https://github.com/jagregory/abrash-black-book ebook source])&lt;br /&gt;
&amp;lt;!-- Comment  more (former) alternative sources&lt;br /&gt;
* [http://nondot.org/~sabre/Mirrored/GraphicsProgrammingBlackBook/ alternative source]&lt;br /&gt;
* [http://webreview.com/downloads/premium/abrash/ Another source of his &amp;#039;&amp;#039;Graphics Programming Black Book&amp;#039;&amp;#039;]&lt;br /&gt;
* [http://www.byte.com/abrash/ Byte.com&amp;#039;s copy of &amp;#039;Graphics Programming&amp;#039; (Active February 2008)]&lt;br /&gt;
* [http://www.phatcode.net/res/224/files/html/index.html]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
* [http://babysoftmurderhands.com/2012/08/quakecon-2012-exclusive-interview-40-minutes-michael-abrash-valve-software/ &amp;quot;40 minutes with Michael Abrash of Valve Software&amp;quot;], Audio interview with Michael Abrash at QuakeCon 2012 discussing Abrash&amp;#039;s career and work at Valve&lt;br /&gt;
&lt;br /&gt;
{{id Software}}&lt;br /&gt;
{{Valve}}&lt;br /&gt;
&lt;br /&gt;
{{Authority control}}&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:Abrash, Michael}}&lt;br /&gt;
[[Category:American technology writers]]&lt;br /&gt;
[[Category:Living people]]&lt;br /&gt;
[[Category:Microsoft employees]]&lt;br /&gt;
[[Category:Valve Corporation people]]&lt;br /&gt;
[[Category:American video game programmers]]&lt;br /&gt;
[[Category:Id Software people]]&lt;br /&gt;
[[Category:1957 births]]&lt;/div&gt;</summary>
		<author><name>2A00:23C5:F23A:7701:70C2:7150:3943:7966</name></author>
	</entry>
</feed>