2. Direct3D vs. OpenGL
在Andre LaMothe游戏编程的经典著作《Windows游戏编程大师技巧》中介绍DirectX的时候,作者以其特有的LaMothian式幽默感叹道:
“我开始感觉自己变成微软的传教士了,总在试图把我所有的朋友们都推向这个黑势力。但是有什么办法呢?微软这帮坏家伙总是能研究出更好的技术。”
这一说法集中体现了游戏程序员的矛盾心态。当然在今天,特别是在Google的光辉下,很多人会直截了当地反对“微软技术更好”的说法,但是在1990年代的中后期,微软的确在软件技术的所有领域都高歌猛进,在3D图形API领域也不例外。
1994年,微软的全部精力都集中在即将发布的Windows 95上。从各个领域传来的声音都表明,Windows 95将是一款划时代的极为成功的操作系统。但是在一片叫好声中,也存在一些不和谐音符,这就是来自PC游戏开发领域的质疑声。大部分视频游戏的开发者坚定地认为,DOS是比Windows 95更好的游戏开发平台。在DOS下,程序员可以独占机器的全部资源,不用担心同时运行的另外的进程的干扰。更重要的是,DOS允许程序员直接访问硬件设备,尽管这带来的沉重的负担(需要针对市面上流行的每一款显卡和声卡写驱动程序),但是却能保证最大的速度。相反,Windows 95采用了保护模式,在硬件之上建立了层层的抽象,限制了对设备的访问,对于性能敏感的游戏程序员来说,这是难以接受的。再加上当时Watcom C/C++和DOS4GW等技术已经非常成熟,DOS在PC游戏产业中的地位看上去是牢不可破的。事实上,这种情况持续到Windows 95发布后的最初几年里,那时候大部分游戏玩家为了玩高质量的视频游戏,不得不在硬盘上保留一个DOS操作系统。有人甚至据此断言说,DOS永远都会存在下去。
微软的高层对这种情况并不高兴,但是似乎并没有什么办法,WinG的失败使人不得不对Windows游戏领域谨慎从事。况且这个时候微软已经将OpenGL置入Windows中,就算是在Windows上开发游戏,OpenGL应该也是当然之选。一切似乎已成定局,如果不是三名微软程序员的冒险行动,历史将会是另一番模样。
大约在1994年的下半年,微软的三名工程师Craig Eisler、Alex St. John和