成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

20年,1人寫出70萬行代碼!沙盒游戲「鼻祖」13年靠玩家捐贈維生

新聞 前端
矮人堡壘是由Tarn Adams(又名Toady One)一人開發,20年來,親自寫下70萬行代碼!

[[414412]]

 一款游戲,讓一位玩家皈依佛教。

這位玩家曾寄信開發者,因其開發的游戲理解了「眾生皆苦,世事無常」。

[[414413]]

究竟是什么游戲還能讓人看破紅塵?

Dwarf Fortress (矮人堡壘)!

20年,1人寫出70萬行代碼!沙盒游戲「鼻祖」13年靠玩家捐贈維生

在Roguelike游戲界,你一定不要錯過大名鼎鼎的矮人堡壘!

2006年面世的矮人堡壘可以說是「開創類的老游戲」,就連《我的世界》開發者們表示自己深受這款游戲的啟發。

你可知這個游戲背后的開發者如何將其建造出來?

矮人堡壘是由Tarn Adams(又名Toady One)一人開發,20年來,親自寫下70萬行代碼!

最「現實」的游戲,最有理想主義的開發者

Tarn Adams 從2002年開始就在矮人堡壘工作。最初,它只是一個兼職項目。

從2006年開始,Adams一心投入,自己編寫所有的代碼。

期間,Adams的兄弟還幫助他來設計和創建基于游戲的故事。

[[414414]]

圖右為Tarn Adams

目前,他正在開發一個帶有像素圖形和改進用戶界面的版本,可以在Steam上購買。

近13年來,矮人堡壘并未在任何游戲平臺上發售,這是因為「亞當斯兄弟」的信念。

他們希望這款游戲和市面上發布的商業版本有所不同,并且矮人堡壘也要以10年為單位,一直更新下去。

對于這漫長的更新,這對兄弟表示并沒有任何規劃。

「想到哪,做到哪。」

[[414415]]

開發后的游戲不賣錢,穩定的收入從何而來?

全靠玩家捐贈維持生計!據說,亞當斯兄弟每個月可以有幾千美元的捐贈收入,足以維生。

許多游戲玩家為此憤憤不平,但他們卻表示,「我們只是不想成為商人,賺錢對我們來說沒有意義」。

他們開發了最「現實」的游戲,卻是最有理想主義的開發者。

沙盒游戲「鼻祖」,70萬行代碼,亞當斯兄弟自述

矮人堡壘至今已持續開發20年,有3種游玩模式。

1、要塞模式(Fortress mode):玩家要幫助一小群矮人從無到有建造城市。

2、冒險模式(Adventure mode):該模式下到處都是中世紀武器和要命的怪物。

3、傳說模式(Legend mode):玩家能夠體驗逐漸演變的精巧歷史,親歷充滿英雄人物、橫跨幾代人的史詩戰爭。

那么僅憑一個人,如何敲下這70萬行代碼?

Adams表示,「我嘗試給變量和對象一致命名,并且留下足夠的注釋來提醒自己到了一個代碼點時會發生什么。有時候我需要多次搜索才能找到想要的線索。

當我去重溫一些已經十年沒有碰過的游戲片段時,這種情況經常發生。」

在矮人堡壘開發過程中,Adams 主要使用了2種編程語言,C和C++。

為了將其更容易地移植到OSX和Linux系統中,Adams使用OpenGL和SDL來處理引擎問題。

整個項目中,除了SDL以便我們可以做端口之外,所有這些都一直保持不變。

在游戲機制方面,Adams并沒有使用很多外部數據庫,但是偶爾會選擇一些隨機的數字原始資料—— 比如梅森旋轉算法(Mersenne twister),還有SplitMix64。

其它類似于矮人堡壘的游戲會因為算法問題「夭折」。

矮人堡壘用的是A*算法,速度很快,但Tarn認為還是不夠好。

一般而言,為了簡化操作,開發者會在地圖頂部添加各種大型結構。

但因為矮人堡壘的地圖非常大,而且還會不斷變化,用A*算法只會耗費大量維護時間。

20年,1人寫出70萬行代碼!沙盒游戲「鼻祖」13年靠玩家捐贈維生

所以Tarn決定,通過行走來追蹤可到達的連接組件。這樣就算地圖變化再快,更新也很容易。

雖然更新維護變快了,但這個方法還是有缺點:

維護的部件指數只能用于行走。

針對這個問題,Tarn做過一些嘗試,但都以失敗告終。

他留意到有些成功的游戲用了矩形覆蓋,覺得這個方法還蠻不錯,但又沒法確定那些游戲的地圖大小和穩定性。

Tarn認為,最簡單方法其實就是為飛行生物添加一個新索引。

但因為兩個索引都需要同時維護,而其中一個索引已經夠差了,所以這對內存和速度有很大影響。

又或者可以跟蹤它們的路徑屬性,但是隨著地圖的變化,維護起來還是會變得困難緩慢。

Tarn表示,在代理和地圖復雜性方面,目前已經盡最大能力來支持agent和復雜的地圖了,所以如果我們想從中得到更多,就必須做出一些讓步。

「失敗就是樂趣!」

除了矮人堡壘,Tarn在過去十年左右的時間里也嘗試做過其它游戲項目。

不多,也就大概90個吧。

不過,有些項目只能持續了幾天,有些就持續了好幾年。

這些游戲項目幾乎都是其它類型的游戲,但也有一些是矮人堡壘的輔助項目,比如神話生成器原型。

雖然基本上沒有多少個項目能夠持續運作下去,但Tarn認為,偶爾擺脫矮人堡壘,開開小差還是挺不錯的。

在這90個「隨便做做」的項目里,Tarn也想過用其它編程語言。

他認為有些語言是能夠加快實現設計,所以他覺得自己應該再學一點腳本語言,多玩一些線程。

不過人嘛,都是「想一套,做一套」。

對于更喜歡設計的Tarn來說,既然那90個項目是用來摸魚放松的,又怎么會去學編程語言呢。

bug是所有開發人員都逃不掉的坑。

在矮人堡壘這個游戲里,Tarn最喜歡的bug是那只永遠都打不贏的醉貓。

20年,1人寫出70萬行代碼!沙盒游戲「鼻祖」13年靠玩家捐贈維生

在酒館里的貓在地板上走來走去,貓爪就沾了不少灑出來的酒,結果貓在舔爪的時候就喝醉了。

這個bug是因為在貓舔爪攝入東西的代碼里,有個數字出錯了,結果這個bug就讓貓顯示出了酒精中毒的癥狀。

不過,這個bug反倒是被Tarn利用起來,添在了有毒生物的設計代碼里了。

 

責任編輯:張燕妮 來源: 新智元
相關推薦

2012-07-23 09:58:50

代碼程序員

2021-03-02 13:56:24

Linux 5.12代碼驅動

2019-01-03 09:29:15

Linux 系統 數據

2009-07-21 08:44:14

微軟Linux內核開源操作系統

2015-09-01 16:26:18

Linux內核

2020-05-27 14:10:50

代碼開發工具

2019-09-29 10:29:55

Python 開發編程語言

2009-07-21 08:51:33

微軟發布Linux設備微軟開源虛擬化

2009-08-20 16:34:50

Linux源代碼紅帽Linux內核

2024-03-13 15:48:43

2011-05-03 09:10:12

項目管理程序員

2020-10-13 14:43:33

智慧城市華為阿里

2009-11-30 09:17:00

IBM員工數量

2009-06-30 08:59:55

上海服務外包人才

2018-10-15 09:20:08

代碼軟件工程師

2015-08-24 13:46:17

2023-06-28 14:18:06

2019-04-19 13:01:12

Java代碼庫Go代碼移植

2020-02-24 16:27:19

開源大數據計算引擎

2011-08-23 10:03:23

萬維網Web
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产欧美精品一区二区色综合 | 在线免费小视频 | 色桃网| 黄色一级片aaa | 国产99久久精品一区二区300 | 亚洲高清视频在线观看 | 夜夜操天天干 | 成人精品一区二区三区四区 | 久草网站 | 欧美国产精品一区二区 | 在线观看免费av网站 | 亚洲视频免费观看 | 免费人成激情视频在线观看冫 | 久久久久久国产精品三区 | 黄色片免费看 | 天天干天天操天天看 | 精品一区二区三区免费毛片 | 三级在线免费观看 | 国产欧美一区二区三区在线看蜜臀 | 国产精品日产欧美久久久久 | 成人影| 午夜国产 | 成人夜晚看av | 欧美成人在线影院 | 日日做夜夜爽毛片麻豆 | 欧美婷婷 | 91精品国产91久久久久久密臀 | av一区二区三区在线观看 | 亚洲欧美中文日韩在线v日本 | 国产精品久久久久无码av | 亚洲九九色| 毛片免费观看视频 | 亚洲国产网址 | 在线国产一区 | 国产精品久久久久9999鸭 | 91精品国产综合久久久久 | 成人福利电影 | 人人人人干 | 日本小视频网站 | 影音先锋亚洲资源 | 91精品久久久久久久久99蜜臂 |