专栏名称: 码农翻身
工作15年的前IBM架构师分享好玩有趣的编程知识和职场的经验教训, 不容错过。
目录
相关文章推荐
程序员的那些事  ·  Linux ... ·  4 天前  
码农翻身  ·  三个程序员,六本硬核书! ·  1 周前  
51好读  ›  专栏  ›  码农翻身

三个叛逆的微软程序员,创造了一项伟大的技术,彻底颠覆了游戏行业!

码农翻身  · 公众号  · 程序员  · 2024-10-30 08:55

正文

1995年,微软发布了大名鼎鼎的操作系统Windows 95。


全新的图形化界面,即插即用的功能,便捷的操作,32位抢占式多任务系统,让Windows 95成为个人电脑历史上最重要的产品之一。



伴随着10亿美元的营销活动,Windows 95在全世界都引发了轰动,掀起了抢购的热潮。


但是,有一个群体一直在冷眼旁观,他们坚决不愿意把自己的软件移植到Windows95上。


他们就是游戏开发商,他们在前一年发布了无数经典的PC游戏:《Descent》、《DOOM II》、《Heretic》、《Jazz Jackrabbit》、《System Shock》、《UFO:未知敌人》和《魔兽世界:兽人与人类》,只不过,这些游戏统统运行在MS-DOS上。



为什么游戏厂商要抛弃Windows平台呢?



01
曼哈顿项目


虽然MS-DOS只支持单任务,但是相比Windows它有个明显的优势:游戏开发者可以直接访问硬件(如显卡、键盘、鼠标、声卡等),游戏可以充分利用硬件的性能,创造出复杂的图形和声音效果。


而“可恶的”Windows,为了强调稳定性和多任务,竟然阻止游戏开发者直接访问硬件,必须通过Windows API才能访问,这一下子就拉低了游戏性能。


所以,很多游戏开发者对Windows望而却步。


当时的微软考虑到了游戏厂商的需求,也提供了一个叫做WinG的图形引擎,但这个引擎非常烂,迪斯尼用它开发了Windows版的《狮子王》,结果频繁蓝屏,愤怒的家长都快把迪斯尼的热线电话打爆了。


无数游戏玩家都在期待在Windows上玩游戏,但是他们都失望了。


Alex St. John决心改变这个状况,他认为:想让Windows成为主流,必须要围绕游戏构建,让人们玩起来。



自从加入微软开始,John就以反传统著名,他叛逆和傲慢多次激怒比尔盖茨,好几次差点儿把他解雇。


John在公司内找到了“臭味相投”的Craig Eisler和Eric Engstrom,三人的特点都是会公开蔑视那些不同意他们想法的同事,这种做派被很多同事讨厌。


三人组成了“野兽男孩”小组,开始了一个代号“曼哈顿”的项目,计划开发一个新的软件包,帮助游戏厂商充分利用Windows。


他们并没有得到微软内部的支持,公司管理层认为Windows 95成为游戏平台的可能性很低。但是“野兽男孩”三人组可不管这些,他们决心强力推进:


DOS不是能直接访问硬件吗?那用我这个软件包也能绕过操作系统,把Windows推到一边,清除所有与游戏争夺资源的垃圾,让游戏运行。


软件包许多功能会关闭 Win图形系统,让游戏可以与视频硬件直接对话:


阻止 Windows 将内存分页到硬盘,以便游戏可以以恒定的帧速率运行;


绕过 Windows 消息队列,以便您可以获得实时鼠标输入。

......

这样你就可以真正控制像 Doom 这样的第一人称射击游戏。


在 ATI 等显卡制造商的支持下,新的软件包很快就开发出来:


- DirectDraw:负责2D图形绘制。

- Direct3D:用于处理3D图形。

- DirectSound:用于处理声音。

- DirectInput:用于处理输入设备(如键盘、鼠标、游戏手柄等)。

- DirectPlay:用于处理网络多人游戏。


这些 API 背后的命名理念是允许游戏“直接”访问硬件在游戏运行时尽量减少 Windows 操作系统的干扰。


当时有一位记者嘲笑了这种命名惯例,把它们称为“DirectX”。


John团队很喜欢这个名称,DirectX一直沿用至今。


因为项目代号“曼哈顿”,和多年前的核武器计划名称一样,最早的DirectX Logo 是这样的,有种核辐射的感觉。




02
样板工程


微软拥有了DirectX,接下来就是吸引游戏厂商来使用它。


微软先盯上了id Software,这个只有10几个人的团队开发的《DOOM》在全球极其流行,安装量竟然超过了Windows,Bill Gates一度都想把它收购了。



微软联系了id Software的负责人,也是传奇程序员John Carmack,提出了一个他无法拒绝的条件:


由微软免费将DOS版本的《DOOM》和《DOOM II》移植到Windows,不用id Software出一分钱,将来游戏发行赚的钱也全部归id Software。


在微软的历史上,做出这样“卑微”的举动,是非常少见的。


既然John Carmack可以坐享其成,就把游戏的源码给了微软。



移植的工作由加布·纽维尔负责,这也是一位超级大牛,1996年离开微软后创办了Valve,开发了《半条命》,又领导了Steam平台的开发。



1996年8月20日,DOOM95正式发布,成为第一款DirectX游戏。


它不仅在Windows上运行效果出众,在多个方面都优于其原始的DOS版本,它能以“高达”640x480 的分辨率渲染游戏,支持 24 个音频通道,并通过图形用户界面简化了多人游戏设置。


微软把DOOM95作为宣传Windows的关键资料,比尔盖茨也参与其中,他录制了一段视频,穿着风衣,拿着猎枪,在DOOM的世界里一边开枪杀死各种怪物,一边推销Windows和DirectX。


微软的意思很明确:最牛的游戏都登录Windows平台了,你们在等什么呢?


(画质有点渣,找不到高清版,大家将就着看...)


03
争霸之路


但这个时候,大家对DirectX的评价并不高。


虽然DOOM移植成功,但John Carmack一直认为,DirectX是个糟糕的API,“它给使用它的程序员带来了巨大的痛苦和折磨,却没有带来任何显著的优势。


大家更喜欢另外一个图形API,也是市场的霸主,OpenGL

OpenGL起源于SGI,这家公司知道的人不多了,当年它可是3D图形工作站的领导者,著名的《侏罗纪公园》就是使用SGI的高端工作站渲染的。



SGI在图形这一块的实力非常强悍,为了进一步占据市场,SGI把自己的图形API(IRIS GL)做成了开放标准,即OpenGL。


OpenGL有个架构评审委员会,ARB(Architecture Review Board),这里边包括IBM,Intel,Apple,ATI,Nvidia,Sun 等巨头。


有巨头撑腰,在整个90年代,OpenGL人气极盛,尤其是id Software使用 OpenGL 开发的的 Quake Engine ,达到了极为惊人的绘制效果。



这也激励着ATI、Nvidia等显卡制造商,必须完整地支持OpenGL,才能满足开发者和玩家的期望。


软件和硬件互相“激励”,达成了螺旋上升的正向循环,可以说是势不可挡。


这时候微软的DirectX杀了进来,它该如何破局呢?


快速迭代!


OpenGL是个开放标准,每次API标准的发展,都要受到到各个软硬件厂商的拉扯,大家为了自己的利益迟迟无法达成共识。


微软虽然也比较官僚,但仅仅需要与 ATI 以及 Nvidia 两家公司合作制定DirectX 的 API 规格,并且拥有最终的关键裁量权,可以快速迭代,快速发展。


就这样,DirectX虽然一直落后,但就像一个打不死的小强,韧性十足,一点点改进,终于赶了上来。



2001年发布的DirectX 8成了整个战役的转折点,这个版本引入了两个极为重要的创新:Vertex Shader(顶点着色器) 以及 Pixel Shader(像素着色器),赋予开发者在顶点和像素处理上的完全控制权,推动了 3D 游戏画质和性能的快速提升。


而DirectX 9 的推出,更是让微软取了决定性的胜利,大部分游戏开发者都开始使用DirectX。


到了2011年,就连John Carmack也认为:DirectX比OpenGL更好了。


虽然OpenGL在PC的竞争上落败,但是它的嵌入式版本Open GL ES却抓住了移动互联网的浪潮,被Android 和 iOS采用,随着手机的普及,成为历史上部署最广泛的 3D图形 API。(后来Apple另起炉灶,推出了自家的Metal,OpenGL ES也进化为Vulkan,那是另外一个故事了)。



04
小结


在微软帝国的发展历史上,它多次利用操作系统的优势来击败竞争对手,Office之战、IDE/编译器之战、浏览器之战都是如此。


但是DirectX是微软少见的,主要靠自己一刀一枪打下江山的产品,它不但把游戏厂商从MS-DOS迁移到Windows平台,更是击败了霸主OpenGL,这是很难得的。


不过,由于微软错失了移动互联网,DirectX也主要用于Windows和XBox平台,没法扩展到手机端了。真是应了那句古话:世事难料啊!


全文完,觉得不错的话点个或者在看吧!


近期爆文

1970年以来技术的发展趋势,怪不得程序员35岁就被裁......
这个大学生写了个免费软件,全世界网民抢着给他送钱,每月10万美元
全世界流浪的程序员,用最原始的技术,每月赚17.6万美元!
开源软件的叛徒,加入了微软
Chrome背后最大的秘密:印度人拯救了Google!
这两个程序员要花100万,彻底重写世界上最复杂的软件
造福无数打工人,世界第7大网站,为什么过得如此卑微

被哈佛扫地出门,他发明了让无数程序员痛不欲生的编程语言,获得了计算机最高奖!

这两个大龄程序员,打算搞垮一个世界软件巨头!
世界上最大的盗版网站,遇到麻烦了!
这个女生写的软件,解决了无数程序员最头疼的问题!