三個(gè)叛逆的微軟程序員,創(chuàng)造了一項(xiàng)偉大的技術(shù),徹底顛覆了游戲行業(yè)!
1995年,微軟發(fā)布了大名鼎鼎的操作系統(tǒng)Windows 95。
全新的圖形化界面,即插即用的功能,便捷的操作,32位搶占式多任務(wù)系統(tǒng),讓W(xué)indows 95成為個(gè)人電腦歷史上最重要的產(chǎn)品之一。
圖片
伴隨著10億美元的營銷活動(dòng),Windows 95在全世界都引發(fā)了轟動(dòng),掀起了搶購的熱潮。
但是,有一個(gè)群體一直在冷眼旁觀,他們堅(jiān)決不愿意把自己的軟件移植到Windows95上。
他們就是游戲開發(fā)商,他們?cè)谇耙荒臧l(fā)布了無數(shù)經(jīng)典的PC游戲:《Descent》、《DOOM II》、《Heretic》、《Jazz Jackrabbit》、《System Shock》、《UFO:未知敵人》和《魔獸世界:獸人與人類》,只不過,這些游戲統(tǒng)統(tǒng)運(yùn)行在MS-DOS上。
圖片
為什么游戲廠商要拋棄Windows平臺(tái)呢?
1、曼哈頓項(xiàng)目
雖然MS-DOS只支持單任務(wù),但是相比Windows它有個(gè)明顯的優(yōu)勢(shì):游戲開發(fā)者可以直接訪問硬件(如顯卡、鍵盤、鼠標(biāo)、聲卡等),游戲可以充分利用硬件的性能,創(chuàng)造出復(fù)雜的圖形和聲音效果。
而“可惡的”Windows,為了強(qiáng)調(diào)穩(wěn)定性和多任務(wù),竟然阻止游戲開發(fā)者直接訪問硬件,必須通過Windows API才能訪問,這一下子就拉低了游戲性能。
所以,很多游戲開發(fā)者對(duì)Windows望而卻步。
當(dāng)時(shí)的微軟考慮到了游戲廠商的需求,也提供了一個(gè)叫做WinG的圖形引擎,但這個(gè)引擎非常爛,迪斯尼用它開發(fā)了Windows版的《獅子王》,結(jié)果頻繁藍(lán)屏,憤怒的家長都快把迪斯尼的熱線電話打爆了。
無數(shù)游戲玩家都在期待在Windows上玩游戲,但是他們都失望了。
Alex St. John決心改變這個(gè)狀況,他認(rèn)為:想讓W(xué)indows成為主流,必須要圍繞游戲構(gòu)建,讓人們玩起來。
圖片
自從加入微軟開始,John就以反傳統(tǒng)著名,他叛逆和傲慢多次激怒比爾蓋茨,好幾次差點(diǎn)兒把他解雇。
John在公司內(nèi)找到了“臭味相投”的Craig Eisler和Eric Engstrom,三人的特點(diǎn)都是會(huì)公開蔑視那些不同意他們想法的同事,這種做派被很多同事討厭。
三人組成了“野獸男孩”小組,開始了一個(gè)代號(hào)“曼哈頓”的項(xiàng)目,計(jì)劃開發(fā)一個(gè)新的軟件包,幫助游戲廠商充分利用Windows。
他們并沒有得到微軟內(nèi)部的支持,公司管理層認(rèn)為Windows 95成為游戲平臺(tái)的可能性很低。但是“野獸男孩”三人組可不管這些,他們決心強(qiáng)力推進(jìn):
DOS不是能直接訪問硬件嗎?那用我這個(gè)軟件包也能繞過操作系統(tǒng),把Windows推到一邊,清除所有與游戲爭(zhēng)奪資源的垃圾,讓游戲運(yùn)行。
軟件包許多功能會(huì)關(guān)閉 Win圖形系統(tǒng),讓游戲可以與視頻硬件直接對(duì)話:
阻止 Windows 將內(nèi)存分頁到硬盤,以便游戲可以以恒定的幀速率運(yùn)行;
繞過 Windows 消息隊(duì)列,以便您可以獲得實(shí)時(shí)鼠標(biāo)輸入。
......
這樣你就可以真正控制像 Doom 這樣的第一人稱射擊游戲。
在 ATI 等顯卡制造商的支持下,新的軟件包很快就開發(fā)出來:
- DirectDraw:負(fù)責(zé)2D圖形繪制。
- Direct3D:用于處理3D圖形。
- DirectSound:用于處理聲音。
- DirectInput:用于處理輸入設(shè)備(如鍵盤、鼠標(biāo)、游戲手柄等)。
- DirectPlay:用于處理網(wǎng)絡(luò)多人游戲。
這些 API 背后的命名理念是允許游戲“直接”訪問硬件,在游戲運(yùn)行時(shí)盡量減少 Windows 操作系統(tǒng)的干擾。
當(dāng)時(shí)有一位記者嘲笑了這種命名慣例,把它們稱為“DirectX”。
John團(tuán)隊(duì)很喜歡這個(gè)名稱,DirectX一直沿用至今。
因?yàn)轫?xiàng)目代號(hào)“曼哈頓”,和多年前的核武器計(jì)劃名稱一樣,最早的DirectX Logo 是這樣的,有種核輻射的感覺。
圖片
2.樣板工程
微軟擁有了DirectX,接下來就是吸引游戲廠商來使用它。
微軟先盯上了id Software,這個(gè)只有10幾個(gè)人的團(tuán)隊(duì)開發(fā)的《DOOM》在全球極其流行,安裝量竟然超過了Windows,Bill Gates一度都想把它收購了。
微軟聯(lián)系了id Software的負(fù)責(zé)人,也是傳奇程序員John Carmack,提出了一個(gè)他無法拒絕的條件:
由微軟免費(fèi)將DOS版本的《DOOM》和《DOOM II》移植到Windows,不用id Software出一分錢,將來游戲發(fā)行賺的錢也全部歸id Software。
在微軟的歷史上,做出這樣“卑微”的舉動(dòng),是非常少見的。
既然John Carmack可以坐享其成,就把游戲的源碼給了微軟。
圖片
移植的工作由加布·紐維爾負(fù)責(zé),這也是一位超級(jí)大牛,1996年離開微軟后創(chuàng)辦了Valve,開發(fā)了《半條命》,又領(lǐng)導(dǎo)了Steam平臺(tái)的開發(fā)。
圖片
1996年8月20日,DOOM95正式發(fā)布,成為第一款DirectX游戲。
它不僅在Windows上運(yùn)行效果出眾,在多個(gè)方面都優(yōu)于其原始的DOS版本,它能以“高達(dá)”640x480 的分辨率渲染游戲,支持 24 個(gè)音頻通道,并通過圖形用戶界面簡化了多人游戲設(shè)置。
圖片
微軟把DOOM95作為宣傳Windows的關(guān)鍵資料,比爾蓋茨也參與其中,他錄制了一段視頻,穿著風(fēng)衣,拿著獵槍,在DOOM的世界里一邊開槍殺死各種怪物,一邊推銷Windows和DirectX。
微軟的意思很明確:最牛的游戲都登錄Windows平臺(tái)了,你們?cè)诘仁裁茨兀?/p>
(畫質(zhì)有點(diǎn)渣,找不到高清版,大家將就著看...)
3.爭(zhēng)霸之路
但這個(gè)時(shí)候,大家對(duì)DirectX的評(píng)價(jià)并不高。
雖然DOOM移植成功,但John Carmack一直認(rèn)為,DirectX是個(gè)糟糕的API,“它給使用它的程序員帶來了巨大的痛苦和折磨,卻沒有帶來任何顯著的優(yōu)勢(shì)?!?/p>
大家更喜歡另外一個(gè)圖形API,也是市場(chǎng)的霸主,OpenGL。
圖片
OpenGL起源于SGI,這家公司知道的人不多了,當(dāng)年它可是3D圖形工作站的領(lǐng)導(dǎo)者,著名的《侏羅紀(jì)公園》就是使用SGI的高端工作站渲染的。
圖片
SGI在圖形這一塊的實(shí)力非常強(qiáng)悍,為了進(jìn)一步占據(jù)市場(chǎng),SGI把自己的圖形API(IRIS GL)做成了開放標(biāo)準(zhǔn),即OpenGL。
OpenGL有個(gè)架構(gòu)評(píng)審委員會(huì),ARB(Architecture Review Board),這里邊包括IBM,Intel,Apple,ATI,Nvidia,Sun 等巨頭。
有巨頭撐腰,在整個(gè)90年代,OpenGL人氣極盛,尤其是id Software使用 OpenGL 開發(fā)的的 Quake Engine ,達(dá)到了極為驚人的繪制效果。
圖片
這也激勵(lì)著ATI、Nvidia等顯卡制造商,必須完整地支持OpenGL,才能滿足開發(fā)者和玩家的期望。
軟件和硬件互相“激勵(lì)”,達(dá)成了螺旋上升的正向循環(huán),可以說是勢(shì)不可擋。
這時(shí)候微軟的DirectX殺了進(jìn)來,它該如何破局呢?
快速迭代!
OpenGL是個(gè)開放標(biāo)準(zhǔn),每次API標(biāo)準(zhǔn)的發(fā)展,都要受到到各個(gè)軟硬件廠商的拉扯,大家為了自己的利益遲遲無法達(dá)成共識(shí)。
微軟雖然也比較官僚,但僅僅需要與 ATI 以及 Nvidia 兩家公司合作制定DirectX 的 API 規(guī)格,并且擁有最終的關(guān)鍵裁量權(quán),可以快速迭代,快速發(fā)展。
就這樣,DirectX雖然一直落后,但就像一個(gè)打不死的小強(qiáng),韌性十足,一點(diǎn)點(diǎn)改進(jìn),終于趕了上來。
圖片
2001年發(fā)布的DirectX 8成了整個(gè)戰(zhàn)役的轉(zhuǎn)折點(diǎn),這個(gè)版本引入了兩個(gè)極為重要的創(chuàng)新:Vertex Shader(頂點(diǎn)著色器) 以及 Pixel Shader(像素著色器),賦予開發(fā)者在頂點(diǎn)和像素處理上的完全控制權(quán),推動(dòng)了 3D 游戲畫質(zhì)和性能的快速提升。
而DirectX 9 的推出,更是讓微軟取了決定性的勝利,大部分游戲開發(fā)者都開始使用DirectX。
到了2011年,就連John Carmack也認(rèn)為:DirectX比OpenGL更好了。
雖然OpenGL在PC的競(jìng)爭(zhēng)上落敗,但是它的嵌入式版本Open GL ES卻抓住了移動(dòng)互聯(lián)網(wǎng)的浪潮,被Android 和 iOS采用,隨著手機(jī)的普及,成為歷史上部署最廣泛的 3D圖形 API。(后來Apple另起爐灶,推出了自家的Metal,OpenGL ES也進(jìn)化為Vulkan,那是另外一個(gè)故事了)。
圖片
4.小結(jié)
在微軟帝國的發(fā)展歷史上,它多次利用操作系統(tǒng)的優(yōu)勢(shì)來擊敗競(jìng)爭(zhēng)對(duì)手,Office之戰(zhàn)、IDE/編譯器之戰(zhàn)、瀏覽器之戰(zhàn)都是如此。
但是DirectX是微軟少見的,主要靠自己一刀一槍打下江山的產(chǎn)品,它不但把游戲廠商從MS-DOS遷移到Windows平臺(tái),更是擊敗了霸主OpenGL,這是很難得的。
不過,由于微軟錯(cuò)失了移動(dòng)互聯(lián)網(wǎng),DirectX也主要用于Windows和XBox平臺(tái),沒法擴(kuò)展到手機(jī)端了。真是應(yīng)了那句古話:世事難料?。?/p>