唯一封神的遊戲程序員——Doom的前世今生(上)

前言:微軟旗下新作《毀滅戰士:黑暗時代》,即將在5月15日正式發售,首發加入XGP,可能很多新盒友對毀滅戰士這個IP不太熟悉,但是在老玩家的心中,毀滅戰士絕對是FPS里程碑式開創性史詩級大作,今天就和大家來聊聊傳奇遊戲公司id Software的創始人、歷史上唯一可以封神的程序員——約翰·卡馬克!

01 FPS之父

1993年,當約翰·卡馬克(John Carmack)用28小時不眠不休的編程,完成《毀滅戰士》(Doom)的引擎時,他或許未曾想到,這款遊戲將徹底改寫電子遊戲的歷史,卡馬克本人也被冠上了“FPS遊戲之父”、“3D遊戲圖形設計之父”、“首款遊戲引擎締造者”、“MOD社區開源發起者”這一大串頭銜。

卡馬克的職業生涯始於對技術的癡迷。1970年8月20日,卡馬克出生於美國堪薩斯州,父親斯坦·卡馬克是當地電視新聞記者,在父親的影響下,童年時期卡馬克對計算機表現出濃厚興趣,可以接觸到大量非常新穎的科技產品——

卡馬克8歲時,父親帶他進街機廳玩遊戲,卡馬克第一次玩到了《太空侵略者》和《喫豆人》,這些遊戲點燃了他對電子遊戲的熱情,卡馬克回憶,自己童年時的偶像正是任天堂設計師宮本茂。

02 傳奇經歷

70年代,個人PC還是非常稀缺的玩意兒,而卡馬克對計算機的癡迷已近乎偏執,14歲那年,卡馬克聽聞附近一所大學新引進了史蒂夫·喬布斯發佈的Apple II,Apple II是蘋果公司第二款產品,也是首款內置彩色圖形與聲音功能、專爲遊戲與教育軟件開發而生的個人電腦。

爲了將這臺“夢寐以求”的機器據爲己有,他與幾位同伴聯手潛入校園。卡馬克親手調製了一種由鋁熱劑和凡士林混合而成的熔融劑,小心翼翼地在夜色中融化了教室窗框,藉此將整機取出。儘管現場無人察覺,校方的無聲監控卻在暗地裏記錄下了這一切,不久之後,卡馬克被捕,並被送往接受精神評估。

評估報告中,心理學家將卡馬克形容爲“理性如野獸、缺乏同理心”,隨之而來的判決是他要在青少年管教所度過整整一年。令人意外的是,獄中生活並未削弱他的學習熱情:卡馬克自學成績優異,出獄後順利考入密蘇里大學堪薩斯城分校的計算機專業。

03 大學輟學

可真正踏進課堂後,他發現學術體系難以滿足對代碼的狂熱追求,僅兩學期便毅然輟學,走上自由程序員之路。一個有前科、少年成名、性格乖張卻卓爾不羣的 19 歲少年,也正是在此刻,開始譜寫他改變遊戲世界的傳奇生涯。

在路易斯安那州的一家軟件雜誌出版公司 Softdisk,卡馬克迎來了自己的第一份“正式”工作:一面銷售與 Apple II 相關的軟硬件,一面開始接觸 Apple II、Apple IIGS、IBM PC 以及 Commodore 64 等多個平臺的軟件開發環境。

正是在這裏,他遇到了人生中的第一位貴人——同爲程序員的阿方索·約翰·羅梅洛。羅梅洛立刻被卡馬克對編程的狂熱與天賦所折服,卻囿於公司資源有限,無法支持他們想要開發的更大項目。

04 離職創業

卡馬克和羅梅洛決定在下班後偷偷“借用”Softdisk的設備:每到週五夜裏,他們便把公司電腦裝上車,驅車前往租在郊外的小屋,徹夜攻關。在狹小的房間裏,又陸續有同事被他們的熱情與構想吸引,紛紛加入這支“地下開發團隊”。

第一年的努力結出了碩果:以任天堂《超級馬里奧兄弟》爲靈感,他們打造了 PC 平臺上流暢滾動的 2D 平臺遊戲——《指揮官基恩》(Commander Keen),卡馬克發明的“平滑滾動”技術,讓當時笨重的 PC 也能媲美主機的遊戲體驗。

指揮官基恩20496

20

496

隨後的第二年,他們推出了續作《指揮官基恩:夢想機器入侵》(Commander Keen in Invasion of the Vorticons),一舉成爲軟體市場的熱門爆款,爲團隊積攢了足夠的啓動資金。1991 年,年僅 21 歲的卡馬克和羅梅洛正式從 Softdisk 離職,憑藉《指揮官基恩》的成功經驗與雄厚資本,創立了新公司,正式開啓他們改變整個遊戲行業的新篇章。

05 技術革新

沒錯,這屆公司就是id Software工作室,源自“Ideas from the Deep”的縮寫,同時結合弗洛伊德精神分析學中的“本我”概念,卡馬克給新公司命名爲簡簡單單的id社,志在打造開創性的遊戲作品,希望在軟件技術領域留名。

在1990年代初,PC遊戲受限於硬件性能,早期 PC 多采用CGA彩色圖形陣列,由於硬件本身對全屏連貫滾動支持不足,往往只能卡頓式重繪或整屏切換,橫向卷軸效果幾乎無法實現。

當時主機遊戲(如任天堂《超級馬里奧》)通過專用芯片實現流暢滾動,而PC開發者只能依賴屏幕切換或卡頓式僞滾動,卡馬克非常敏銳發現了這一點需求,於是決定自己動手解決問題,順手還推出了兩項創新型技術。

06 硬件加速

第一是局部重繪算法,卡馬克深入研究顯存佈局與光標偏移能力,開發了自適應平鋪渲染技術(Adaptive Tile Refresh),構建了一個比屏幕略大的緩衝區,通過像素級偏移指針控制畫面滑動,並在邊緣瓦片到達緩衝區邊界時,動態重繪下一行/列數據,大幅降低CPU負載。

第二是內存管理機制,利用分塊加載地圖數據與預渲染背景,在《指揮官基恩》,卡馬克用分段式地圖存儲,在滾動時動態加載相鄰區塊,避免遊戲突然出現斷崖式的崩潰,PC內存容量不足的問題也被卡馬克完美解決。

要知道當時還沒有老黃的N卡顯卡,這種方法直接實現了“硬件加速”般的效果,讓PC首次實現媲美主機的60幀平滑滾動,日後老黃也坦言,卡馬克這種對硬件的巧妙利用,恰恰就是3D圖形加速卡的前身思想,在硬件受限情況下,通過軟件+硬件協同的方式來提升渲染效率。

07 3D遊戲之父

遊戲界很快就被這位橫空出世的程序員震驚,當別家公司還在忙着做遊戲圈錢時,卡馬克直接在技術上實現降維打擊,自適應平鋪渲染技術直接解決了PC平臺卷軸流暢性問題,更恐怖的是,以上的這些創新對於卡馬克還只是一個開胃菜。

90年代初期遊戲界的霸主,毫無疑問還是任天堂,爲遊戲界提供了大量開創性的技術創意。而卡馬克希望推出一款能夠真正顛覆世界的遊戲,“早期的橫向卷軸和《指揮官基恩》風格固然優秀,但技術上的突破纔是驅動後續發展的關鍵。我們需要一種能真正把玩家置入角色視角的體驗。”

在卡馬克看來,單純的平面滾動已無法滿足“沉浸式體驗”的需求,他們要做的,是讓玩家能“穿越屏幕”,真正感受到三維空間的深度與動感,這個理念直接促成了卡馬克團隊將目光投向了3D領域。

08 射線追蹤技術

1992年的5月5日,卡馬克發佈了大名鼎鼎的《德軍總部3D》,這款遊戲也被視爲FPS遊戲的開山之作,立即在玩家與媒體中引發轟動,在德軍總部之前,很多遊戲的牆體與角色看似立體,但其實都是二維貼圖(textures),而卡馬克首推了一種名叫射線追蹤(ray‑casting)的算法。

以前遊戲程序員多數使用的是全場景光線追蹤,即計算玩家在一個遊戲場景中的所有光線,而卡馬克在計算機有限的資源下,僅僅計算玩家視野內的牆面投影,僅對撞擊牆面的點進行深度與紋理查表運算,從而快速生成透視牆面。

《德軍總部3D》總開發成本僅爲 2.5 萬美元,團隊月薪及租賃開支佔絕大部分,硬件投入約 6500 美元,商標費 5000 美元,遊戲上線首日突破10萬份,到1992年底銷量超過20萬份,收入超百萬美元,打破當時的PC遊戲紀錄,而且也驗證了PC遊戲的商業化潛力。

9.1德軍總部3D201660

德軍總部3D

20

1660

09 遊戲引擎之父

卡馬克的射線追蹤極大降低渲染開銷,從而實現前所未有的實時“身臨其境”3D效果,卡馬克自己只花了6周時間就完成了德軍總部射線追蹤技術的原型“Hovertank 3D”,再用6周改造爲“Catacomb 3‑D”,初步驗證了3D渲染引擎的可行性。

在《德軍總部3D》發售的同年,卡馬克在德州梅斯基特的“Suite 666”辦公室正式展開《毀滅戰士》(Doom)的開發,開發初期,卡馬克放棄了完整劇情設計,轉而主張“只有技術革新才能造就快感體驗”,並在幾周內拋棄遊戲的複雜敘事和分集結構,改爲無劇本、快節奏的連續關卡設計。

在1992年5月至9月間,卡馬克利用從《指揮官基恩》和《德軍總部3D》積累的經驗,設計並實現了數個實驗性引擎原型,用於賽車遊戲、內置斜坡地面與多面貼圖的“雷神外包”引擎(ShadowCaster)等,來研究不同功能在486CPU上的性能表現,最終他認爲這些改進不適合實際射擊遊戲,於是決定重頭開始設計專用引擎,爲下一代作品打下基礎。

10 DOOM

(未完待續)

深度學習入門——圖靈獎AI三巨頭

AI編年史——深度學習的發展史(收藏向)

AI編年史2——GPT是如何誕生的?

AI學術巨佬——何愷明,從遊戲中獲得論文靈感

AI領軍人物——孫劍,重劍無鋒的經典之作

AI傳奇巨佬——湯曉鷗,中國人工智能領袖人物!

AI女神李飛飛——從成都七中,到頂級AI科學家!

山姆·奧特曼——從遊戲編程,到OpenAI之父!

張益唐——黎曼猜想,華人數學家再創重大突破!

柏原正樹——日本數學巨匠,成亞洲首位獲獎者!

B站大學——線代不掛科,MIT傳奇教授的最後一課!

華爲——盤古大模型解讀,專注“小模型”工業落地!

英偉達——跟着老黃學AI,英偉達官方免費推出AI課!

微軟免費AI課程——18節課,初學者入門大模型!

機器學習——科學家周志華,成爲中國首位AI頂會掌門人!

機器學習入門——數學基礎(積分篇

機器學習入門——數學基礎(代數篇

機器學習入門——數學基礎(貝葉斯篇

遊戲&AI系列:

AI——是遊戲NPC的未來嗎?

巫師三——AI如何幫助老遊戲畫質重獲新生

AI女裝換臉——FaceAPP應用和原理

AI捏臉技術——你想在遊戲中捏誰的臉?

Epic虛幻引擎——“元人類生成器”遊戲開發(附教程)

腦機接口——特斯拉、米哈遊的“魔幻未來技術”

白話科普——Bit到底是如何誕生的?

永劫無間——肌肉金輪,AI如何幫助玩家捏臉?

Adobe之父——發明PDF格式,助喬布斯封神

#gd的ai&遊戲雜談#

更多遊戲資訊請關註:電玩幫遊戲資訊專區

電玩幫圖文攻略 www.vgover.com