為了把遊戲接口做進Windows 這位大佬干翻了微軟的管理層

這個月 10 號,賽博朋克 2077 解禁,世超周圍的小夥伴有一個算一個,全部一頭扎進了夜之城,上起了夜班。

本來世超也想抽空玩來着,奈何顯卡版本太老,遊戲是能進,畫質確實沒法看。

為了把遊戲接口做進Windows 這位大佬干翻了微軟的管理層

換新顯卡吧,現在 RTX 的價格又被那群礦難孤兒炒到了天上,別提有多鬧心了。唉,快樂都是別人的,小丑竟是我自己。也是在這個月,有位叫Eric Engstrom微軟大佬去世了。

為了把遊戲接口做進Windows 這位大佬干翻了微軟的管理層

這位老哥沒有比爾蓋茨這麼大的名氣,但要是沒他,我們現在想要在夜之城夜夜笙歌,估計沒那麼容易。

甚至說 Windows 電腦,可能還只是一台主要的生產力工具,就像蘋果 Mac 一樣。Eric Engstrom 所創立的 DirectX 接口,把 PC 個人電腦,拽進了電子遊戲的世界。讓 「 玩電腦遊戲 」 成為了一種遊戲方式。

為了把遊戲接口做進Windows 這位大佬干翻了微軟的管理層

這事兒展開聊聊還挺有意思的。

大家小時候有沒有玩盜版遊戲的經歷?先是辛辛苦苦從 3XM 、游 X Sky 上找到資源,然後冒着被老媽發現的危險,電腦掛一晚上把遊戲下下來。

為了把遊戲接口做進Windows 這位大佬干翻了微軟的管理層

好不容易下完了解壓好,興奮的打開遊戲的 exe 文件,正準備抄起鼠標大殺四方,系統卻彈出了這麼一個窗口。。。

為了把遊戲接口做進Windows 這位大佬干翻了微軟的管理層

對那時還沒有被社會毒打的世超來說,看到它之後,一秒鐘前因為興奮而怦怦跳的心臟直接驟停。。。。。。三秒鐘後恢復心跳開始發瘋似的滿世界尋找這個拓展名 .dll 的文件。後來世超才知道,這個文件其實是 DirectX 的驅動文件,重新裝一下 DirectX 最新驅動就行了。

為了把遊戲接口做進Windows 這位大佬干翻了微軟的管理層

正版遊戲在運行之前會有一個自檢的環節,來確認電腦中是否有相關的驅動文件。

為了把遊戲接口做進Windows 這位大佬干翻了微軟的管理層

而上傳盜版遊戲的黑客,並不會把這部分自檢程序放到壓縮包里。這樣一來,用戶在解壓完遊戲之後就會發生文件缺失的情況,需要自己去網上找到對應的文件把它補上。沒有. dll 文件,遊戲就跑不起來。那個時候玩的單機遊戲,從CS 、紅警、魔獸爭霸 3 到GTA 罪惡都市、騎馬與砍殺、文明 IV 等等等等遊戲,都是基於DirectX 接口開發的。

為了把遊戲接口做進Windows 這位大佬干翻了微軟的管理層

DirectX 的存在,覆蓋了整個電腦遊戲發展史。那問題來了,為什麼在電腦上的遊戲離不開 DirectX 呢?要解答這個問題,我們得先了解一下圖形 API 的發展歷史。

為了把遊戲接口做進Windows 這位大佬干翻了微軟的管理層

早期的軟件開發沒有統一標準,往往是一個新的硬件出來,程序員就得為它定製開發一套軟件來用。

這就造成了硬件與硬件,軟件與軟件之間並不互通。打個比方來說,你跑到金拱門問服務員點單,要一份雙層天椒皇堡,外加一塊吮指原味雞打包帶走。。。

為了把遊戲接口做進Windows 這位大佬干翻了微軟的管理層

服務員可能會把你當傻子看,他們的炸爐根本就做不出原味雞,想要吃到這些東西,只能去不同的店買。那時候程序員們開發遊戲也是如此,為了讓遊戲能在不同的硬件上跑,就要一個個適配過來。比如《仙劍奇俠傳》,想要在不同的平台上玩,就需要程序員適配三次。

為了把遊戲接口做進Windows 這位大佬干翻了微軟的管理層

可以做,但沒必要,還掉頭髮。。。基於此,在人類的原始生產力 「 懶 」 的驅使下,程序員們發明出了 Application Programming Interface ( 應用編程接口 ),簡稱 API 。

為了把遊戲接口做進Windows 這位大佬干翻了微軟的管理層

它的出現統一了所有的開發規範,解決了不同硬件需要適配的問題,大大節省了開發的成本。要是用統一的API,就不需要重複開發了,直接適配。▼

為了把遊戲接口做進Windows 這位大佬干翻了微軟的管理層

這玩意的出現就好像是外賣平台,啥漢堡炸雞店都有,想吃啥直接動動手指下單就會送上門,不用親自跑去買。

不過那時候率先登場的 API 的並不是 DirectX ,而是大名鼎鼎的 Glide 和 OpenGL ,還沒微軟什麼事。Glide 的 API 標準是一家叫 3dfx 的顯卡公司創立的,在英偉達崛起之前, 3dfx 的 Voodoo 系列顯卡就是當初 3D 遊戲的絕對標杆。

為了把遊戲接口做進Windows 這位大佬干翻了微軟的管理層

不管是古早的《 DOOM 》、《古墓麗影》還是 FPS 始祖遊戲《雷神之錘》,都體現出了 API 接口的巨大優勢。原本分散的遊戲開發者,都聚集到了統一的平台上來做遊戲,人多力量大,無數的新技術和好遊戲就源源不斷的冒出來了。著名的 「 三角胸 」 勞拉。▼

為了把遊戲接口做進Windows 這位大佬干翻了微軟的管理層

這 3D 畫面,在當時算得上是跨時代的。而微軟這邊一開始其實並不看好遊戲領域,根本不想在遊戲方面投資。一方面 Windows 95 系統做的也差不多了,隨時準備發佈,管理層覺得這時候再做一個遊戲編程界面沒有太大必要。

為了把遊戲接口做進Windows 這位大佬干翻了微軟的管理層

另一方面從老的 MS-DOS 系統上轉移到新的環境里開發,誰也不敢保證會怎麼樣。Eric Engstrom 看到了這上面的前景,自己偷偷拉了個三人的小團隊,開發起了 DirectX ,頂着微軟管理層的壓力,把這個項目給做了下來。

為了把遊戲接口做進Windows 這位大佬干翻了微軟的管理層

到了 1995 年 4 月, DirectX 正式發佈,並在後面逐步融合進了 Windows 95 ,為微軟打入遊戲市場,立下了汗馬功勞。

有意思的是,在 Eric Engstrom 開發 DirectX 的過程中,不僅要面對技術上的難題,還要面臨微軟的上層百般阻撓,面對企業內鬥。這個過程還被寫成了一本名為《 Renegades of the Empire 》(《帝國叛逆者》)的書,記述下了那段時間微軟內憂外患的處境。內有管理層矛盾,外面臨反壟斷調查。▼

為了把遊戲接口做進Windows 這位大佬干翻了微軟的管理層

一群程序員腹黑起來玩 「 宮斗 」 ,也是挺可怕的。。。

不過至少結果是好的, DirectX 在經過了幾個版本的更新之後,已經穩坐了遊戲圖形 API 的頭把交椅。

半條命 2 在 DirectX6.0 上的表現已經相當好了。▼

為了把遊戲接口做進Windows 這位大佬干翻了微軟的管理層

而 Glide 和 OpenGL 卻被命運開了玩笑,相繼翻車,給 DirectX 佔領市場提供了很大機會。Glide 翻車是因為 3dfx 的沒落,支持 Glide 的遊戲及設備越來越少,它不及 Windows 系統有這麼多的開發者,又不開源,沒多久就頂不住了。OpenGL 倒是開源的,不過因為內部意見不統一,它逐漸轉向了專業圖形領域的方向,漸漸弱化了遊戲方面的更新。

為了把遊戲接口做進Windows 這位大佬干翻了微軟的管理層

在更新到了 DirectX 9.0 之後,微軟在圖形 API 的領域,基本坐穩了龍頭老大的位置。

為了把遊戲接口做進Windows 這位大佬干翻了微軟的管理層

順帶一提,微軟的 XBOX 主機用到的也是 DirectX ,這樣一來,就形成了一個閉環,但凡廠商想要在主機平台和 PC 平台上開發遊戲,就繞不過 DirectX 。

為了把遊戲接口做進Windows 這位大佬干翻了微軟的管理層

隨之而來的就是 N 卡和 A 卡長達 10 年的顯卡大戰,由於兩邊都要用到 DirectX 來優化,微軟的更新就成了制衡 N 、 A 兩家發展的砝碼。

為了把遊戲接口做進Windows 這位大佬干翻了微軟的管理層

微軟不愧是做 「 操作系統 」 的公司。不過這兩年,英偉達雄起,老黃推出了自家的圖形 API Vulkan ,意欲動搖 DirectX 的傳統優勢地位。

為了把遊戲接口做進Windows 這位大佬干翻了微軟的管理層

Vulkan 作為一個攪局者,他的強勢之處在於跨平台的兼容性,它能在 Windows、Linux、Android 三個平台上開發,連接了電腦和手機端。在底層硬件的兼容方面,Vulkan 會更好一些,遊戲開發者能更徹底的榨乾顯卡的性能。

未來的競爭或許會更勢均力敵一些。。。世超是覺得,我們在電腦游戲裏 「 突突突 」 玩爽的時候,也別忘了背後有成千上萬個像 Eric Engstrom 一樣的程序員,在默默努力。

為了把遊戲接口做進Windows 這位大佬干翻了微軟的管理層

對於世超來說,對於電子遊戲的啟蒙記憶就是在電腦上的。因為某些原因,我們小時候沒辦法接觸到遊戲主機,要是沒有電腦上的遊戲,世超的童年或許就錯失了一個精彩的世界。儘管很多都是盜版。。。

所有 PC 遊戲的開發人員,都值得感謝。