當(dāng)前位置:首頁(yè) > 公眾號(hào)精選 > 嵌入式微處理器
[導(dǎo)讀]“開發(fā)到死,永不停更?!比绻獑?wèn)有史以來(lái)最史詩(shī)般的計(jì)算機(jī)程序是什么,《矮人要塞》一定榜上有名。這是一款2006年面世的游戲,開創(chuàng)性地將“先設(shè)定好基本規(guī)則,剩下的就讓游戲和玩家自己去發(fā)掘”的理念帶到了電子游戲領(lǐng)域?!段业氖澜纭烽_發(fā)者曾表示《矮人要塞》深刻啟發(fā)了他的游戲設(shè)計(jì)思路。整個(gè)...

“開發(fā)到死,永不停更?!?span>
如果要問(wèn)有史以來(lái)最史詩(shī)般的計(jì)算機(jī)程序是什么,《矮人要塞》一定榜上有名。這是一款 2006 年面世的游戲,開創(chuàng)性地將“先設(shè)定好基本規(guī)則,剩下的就讓游戲和玩家自己去發(fā)掘”的理念帶到了電子游戲領(lǐng)域?!段业氖澜纭烽_發(fā)者曾表示《矮人要塞》深刻啟發(fā)了他的游戲設(shè)計(jì)思路。
整個(gè)游戲自始至終只有一名開發(fā)者:Tarn Adams,又名 Toady One。20 年來(lái),他一直沒有停止過(guò)開發(fā)。到目前為止,這款游戲的代碼量已經(jīng)多達(dá) 70 萬(wàn)行。最近 Adams 在采訪中分享了他對(duì)游戲創(chuàng)作以及如何管理一個(gè)不斷增長(zhǎng)的代碼庫(kù)的思考和經(jīng)驗(yàn)。
一套自然增長(zhǎng) 20 年、從不重構(gòu)的代碼
《矮人要塞》這款游戲由 Tarn Adams 及其兄弟 Zach 一起設(shè)計(jì),其中 Adams 負(fù)責(zé)開發(fā),Zach 負(fù)責(zé)劇情。Adams 原本是大學(xué)數(shù)學(xué)教授,最初只是將這款游戲當(dāng)作一個(gè)副業(yè)進(jìn)行,2002 年辭職開始全職開發(fā),直到現(xiàn)在都沒有停下過(guò)前進(jìn)的腳步。
截至 2020 年 2 月,游戲最新更新為 0.47.05 版本。按照 Adams 設(shè)置的“用進(jìn)度代替版本號(hào)”的命名規(guī)則,這個(gè)游戲目前完成度是 47%。Adams 表示,“現(xiàn)階段,我們制定的計(jì)劃很可能已經(jīng)超出了我們的能力,需要花更長(zhǎng)時(shí)間才能完成?!?/span>
這款作品支持三種不同游戲模式,包括堡壘建設(shè)模式,由玩家指揮一群矮人在荒地上建設(shè)一座城市;冒險(xiǎn)模式,類似于傳統(tǒng)的 rouguelike 地下城探索游戲,收集充滿中世紀(jì)韻味的武器、干掉危險(xiǎn)的怪物;最后則是傳奇模式,你可以觀看由游戲本身精心整理出的傳奇歷史,回顧你操作過(guò)的每一位英雄人物、跨越幾代人的史詩(shī)戰(zhàn)爭(zhēng)。這三種模式之間還會(huì)相互影響。當(dāng)你的矮人定居點(diǎn)年久失修之后,就可以以冒險(xiǎn)家的身份進(jìn)行探索,將兩種玩法的成果納入同一個(gè)世界背景下的傳奇當(dāng)中。
另外,由于整個(gè)環(huán)境都是用 ASCII 字符的形式呈現(xiàn),所以一切就變得更光怪陸離了。矮人用小小的笑臉表示,盔甲架對(duì)應(yīng)一個(gè)音符,日元標(biāo)志則代表著洞穴里的邪惡龍蝦人。

Adams 開發(fā)游戲使用的編程語(yǔ)言主要是 C 和 C ,開發(fā)工具此前是 Microsoft Visual Studio,現(xiàn)在改為 Visual Studio 社區(qū)版,用 OpenGL 和 SDL 作為游戲引擎?!爸皇褂?Windows 10 Toshiba 筆記本電腦”,而且“不確定 Linux/Mac 版本中發(fā)生了什么”。在游戲的機(jī)制方面,幾乎不使用外部庫(kù),只偶爾會(huì)使用一些隨機(jī)數(shù)生成器——“很久以前我放入了一個(gè) Mersenne Twister,最近我采用了 SplitMix64。”
在游戲的最初版本中,Adams 就已經(jīng)完成了所有編程工作,如今使用的代碼庫(kù)還是 2003 年構(gòu)建的那套。整個(gè)游戲的后臺(tái)需要一刻不停地瘋狂運(yùn)轉(zhuǎn),這也讓《矮人要塞》這款其貌不揚(yáng)的游戲成為有名的處理器“殺手”。有人開玩笑說(shuō),用于娛樂目的的高性能處理器的最佳用途之一是《矮人要塞》。
初版游戲如今被稱為《矮人要塞經(jīng)典版》,通過(guò) Bay 12 網(wǎng)站免費(fèi)提供。對(duì)于各個(gè)版本,Adams 需要根據(jù)原始代碼進(jìn)行大約 12 次相應(yīng)編譯,包括面向不同平臺(tái)的 32 位與 64 位操作系統(tǒng)版本。版本更新的間隔,最快的一次是 26 個(gè)月。
從開始到現(xiàn)在,項(xiàng)目幾乎就沒怎么經(jīng)歷過(guò)大的、嚴(yán)格意義上的重構(gòu),在 Adams 看來(lái),花幾個(gè)月重做某些數(shù)據(jù)結(jié)構(gòu)就是他為項(xiàng)目所做的最大的改變。
而隨著編碼知識(shí)和技能不斷更新?lián)Q代,Adams 還得推動(dòng)游戲的機(jī)制向前發(fā)展。與《我的世界》的 3D 界面比較起來(lái),《矮人要塞》顯得很古老。雖然現(xiàn)在的 3D 游戲開發(fā)已經(jīng)很成熟了,但對(duì)于類似 Unity 或 Unreal 之類的庫(kù),Adams 表示就算到現(xiàn)在,他也不確定自己是否會(huì)使用?!栋艘穼?shí)現(xiàn) 3D 的方式只是通過(guò)添加 Z 坐標(biāo)來(lái)完成。
歷經(jīng) 20 年的開發(fā),這款游戲的代碼庫(kù)已經(jīng)非常龐大,多達(dá) 711,000 行??咳祟惖拇竽X,已經(jīng)不可能完全記得住,就算這些全是 Adams 自己一行行實(shí)現(xiàn)的。
漫長(zhǎng)的開發(fā)過(guò)程中面臨的一個(gè)問(wèn)題是遺忘。項(xiàng)目出了問(wèn)題怎么進(jìn)行維護(hù),Adams 表示只能靠“搜索”:“我有一個(gè)一致的命名方式,而且我不會(huì)吝嗇更長(zhǎng)的變量和函數(shù)名稱,這樣即使在多年之后,一切仍然可讀。同時(shí)也需要留下足夠的注釋,來(lái)表示某個(gè)代碼點(diǎn)發(fā)生了什么。一般來(lái)說(shuō),我會(huì)注意對(duì)未來(lái)的自己更友善?!?/span>
“這是個(gè)規(guī)模巨大的項(xiàng)目,我們沒捷徑可走……”
這 20 年是如何度過(guò)的?
《矮人要塞》是一款免費(fèi)游戲。十幾年以來(lái),《矮人要塞》的開發(fā)者拒絕讓這款游戲在任何平臺(tái)發(fā)售。Adams 認(rèn)為《矮人要塞》和市面上那些商業(yè)化的游戲都完全不同,這款游戲要以十年為單位一直更新、發(fā)展下去,他擔(dān)心一旦商業(yè)化,會(huì)沒法自己把握游戲更新的節(jié)奏。為此,兩人拒絕了很多發(fā)行商的合作請(qǐng)求。
不上游戲平臺(tái)銷售游戲,自然就沒有穩(wěn)定的收入。Adams 這么多年全靠玩家捐贈(zèng)維生,據(jù)他們所說(shuō)每個(gè)月能有幾千美元的捐款收入,足以維持生活和開發(fā)。通過(guò) Bay 12 公司公司的官網(wǎng)頁(yè)面,粉絲可以設(shè)置一次性或定期的 PayPal 捐贈(zèng)。

向 Bay 12 Games 捐款的粉絲們,有機(jī)會(huì)獲得由 Tarn and Zach Adams 親自用蠟筆繪制的手工藝作品。

在 2006 年對(duì)外發(fā)布之前的幾年里 Adams 是沒有收入的, 各種花銷完全靠當(dāng)教授時(shí)積攢下來(lái)的 15,000 美元。2010 年,依靠粉絲捐贈(zèng),他總共掙到了 5 萬(wàn)美元。2014 年 11 月為 3,400 美元。2013 年 10 月為 4,727 美元。2014 年 12 月躍升至 8,181 美元。
Adams 將生活開支安排得很低,以滿足他“理想狀態(tài)中的開發(fā)者生活”。每月只花費(fèi) 860 美元的租金,幾百美元的水電費(fèi)和購(gòu)買食物的費(fèi)用,只要能自給自足就行。他對(duì)物質(zhì)也沒有什么要求,甚至在 2019 年才開始使用智能手機(jī),在此之前,Adams 對(duì)自己的翻蓋手機(jī)很滿意。
根據(jù)《紐約時(shí)報(bào)》的記載,Adams 的開發(fā)生活是這樣的:每天下午 3 點(diǎn)左右醒來(lái),然后通宵編碼,早上 6 點(diǎn)左右睡覺,周而復(fù)始。房間窗戶用膠合板遮起來(lái),阻擋陽(yáng)光以免影響睡眠。
Adams 還在 2011 年拒絕了一家頭部游戲開發(fā)商的工作邀請(qǐng),以及另一家開發(fā)商 30 萬(wàn)美元的游戲許可報(bào)價(jià),只希望用自己的方式開發(fā)自己的游戲。
這種理想主義的開發(fā)生活,讓許多游戲玩家憤憤不平,但 Adams 卻表示,“我們只是不想成為商人,賺錢對(duì)我們來(lái)說(shuō)沒有意義”。
“開發(fā)到死,永不停更”
過(guò)去 20 年當(dāng)中,Adams 一直忙于為《矮人要塞》編程,甚至根本沒有時(shí)間顧得上圖形設(shè)計(jì)。為了最大程度削減圖形設(shè)計(jì)帶來(lái)的工作量,他甚至直接從已經(jīng)三十歲高齡的 MS-DOS 中搬出了 ASCII 字符圖像。
Adams 坦言,“有些菜單確實(shí)很粗糙,我在設(shè)計(jì)功能鍵時(shí)基本就是亂選的。所以很多玩家抱怨,「為什么得在這個(gè)界面里按 U、H、J、K 來(lái)實(shí)現(xiàn)對(duì)應(yīng)功能?」好吧,有些設(shè)計(jì)已經(jīng)是 15 年前的東西了,但出于種種原因我一直沒來(lái)得及做出調(diào)整。”
由于游戲太過(guò)復(fù)雜,同時(shí)缺少現(xiàn)代游戲中常見的種種便利性設(shè)置,使得《矮人要塞》對(duì)新手玩家特別不友好。除了簡(jiǎn)短的介紹動(dòng)畫之外,游戲中沒有任何圖形元素,就連鼠標(biāo)都不支持。新人在看著老鳥通過(guò)神秘的鍵盤輸入控制界面時(shí),感覺就像在觀察上世紀(jì)八十年代初操盤手們使用的早期股票交易軟件。
但所有這一切,讓《矮人要塞》在游戲評(píng)論者及愛好者心中獲得了獨(dú)特的地位。它最近還被收錄至紐約現(xiàn)代藝術(shù)博物館中,改變了館方對(duì)于藝術(shù)的審視方式。這款游戲的巨大影響力既體現(xiàn)在講故事的方式上,也體現(xiàn)在對(duì)其他游戲開發(fā)者的啟發(fā)上。如果沒有《矮人要塞》,可能就不會(huì)有《我的世界》。

Steam 上的《矮人要塞》藝術(shù)展示圖。
雖然《矮人要塞》的開發(fā)工作已經(jīng)持續(xù)了相當(dāng)長(zhǎng)時(shí)間,但 Bay 12 給游戲打下的底子確實(shí)很好,后續(xù)更新一直相當(dāng)順利。Adams 會(huì)在社區(qū)內(nèi)以博文的形式發(fā)布更新、討論下一階段的開發(fā)目標(biāo)并說(shuō)明自己在發(fā)布前如何進(jìn)行代碼測(cè)試。
幾年前,他的兄弟 Zach 被診斷出患有癌癥。雖然已經(jīng)買了比較全面的醫(yī)療保險(xiǎn),但后期費(fèi)用仍然不低。這時(shí)候的 Adams 重新審視自己的開發(fā)計(jì)劃,突然被嚇了一跳?!拔覀円黄鹫J(rèn)真研究起治療價(jià)格。如果換作是我,那我絕對(duì)會(huì)傾家蕩產(chǎn)?!?/span>
出于對(duì)家族遺傳性癌癥的恐懼,且粉絲的捐贈(zèng)并不足以幫他們消化掉美國(guó)重癥醫(yī)療帶來(lái)的沉重負(fù)擔(dān)。Adams 這才做出了一個(gè)“違背初心的決定”——在 2019 年正式啟動(dòng)游戲的商業(yè)化運(yùn)營(yíng)計(jì)劃。這對(duì)他來(lái)說(shuō)也是一種“道德挑戰(zhàn)”。但登陸 Steam 市場(chǎng)的確幫助他渡過(guò)了危機(jī),Adams 總結(jié)道,“或者應(yīng)該說(shuō)是躲過(guò)了一劫。現(xiàn)在我們打算儲(chǔ)備一點(diǎn)能應(yīng)付緊急狀況的資源,然后安心回到創(chuàng)作中來(lái)?!?/span>
目前他正在開發(fā)一個(gè)改進(jìn)了 UI 的 Steam 付費(fèi)版本。對(duì)于未來(lái)的開發(fā)計(jì)劃,在將游戲打磨至完美之前,Adams 還有另外一項(xiàng)重要的更新任務(wù)得完成——在游戲里添加邪惡一派的非玩家角色。他以實(shí)事求是地態(tài)度向媒體講述了開發(fā)目標(biāo),在記者看來(lái)他的想法只能用超現(xiàn)實(shí)來(lái)形容。
這些反派們將在更龐大的游戲世界中由 AI 負(fù)責(zé)控制。他們會(huì)有自己的動(dòng)機(jī),策劃建立邪惡聯(lián)盟或者逐步滲透政府。Adams 還強(qiáng)調(diào),這些反派甚至能夠囚禁英雄、暗殺國(guó)王。當(dāng)然,反派們也會(huì)世代更迭,成為傳奇模式中世界歷史的一部分。最后,反派也將在要塞與冒險(xiǎn)模式中閃亮登場(chǎng),給玩家們制造或大或小的各種麻煩。
現(xiàn)在遠(yuǎn)遠(yuǎn)不是終點(diǎn),《矮人要塞》還是希望更多玩家加入其中,為了牢牢抓住用戶的心,Adams 需要花時(shí)間打磨這款作品。當(dāng)然,Steam 版本的推出也讓 Tarn Adams 和他的好兄弟 Zach Adams(兄弟二人創(chuàng)立了 Bay 12 Games 公司開展業(yè)務(wù))實(shí)現(xiàn)了財(cái)務(wù)自由。所以只要他們的健康狀況還允許,兩位就會(huì)繼續(xù)更新《矮人要塞》。
事實(shí)上,如果這樣一款游戲宣布“徹底完成”,對(duì)于粉絲們反而不是什么好消息。這款游戲的獨(dú)特之處與核心吸引力,正在于極高的復(fù)雜性。它的游戲內(nèi)容堪稱包羅萬(wàn)象、無(wú)所不有。也正因?yàn)槿绱?,?dāng)問(wèn)到這款自 2003 年起就一直處于開發(fā)狀態(tài)的游戲什么時(shí)候能最終完成時(shí),Adams 給出的答案近乎瘋狂:“完成代表著止步,止步代表著缺憾?!?/span>
在 Adams 看來(lái),這條更新之路應(yīng)該永遠(yuǎn)走下去:“開發(fā)到死,永不停更?!?/span>
END
參考鏈接:https://stackoverflow.blog/2021/07/28/700000-lines-of-code-20-years-and-one-developer-how-dwarf-fortress-is-built/https://www.polygon.com/features/2019/3/14/18264569/dwarf-fortress-steam-tarn-adams-villains-health-care版權(quán)歸原作者所有,如有侵權(quán),請(qǐng)聯(lián)系刪除。
嵌入式ARM

掃描二維碼,關(guān)注更多精彩內(nèi)容

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉