1个人70万行代码,20年持续更新,这款游戏号称开发到死,永不停更

Posted QbitAl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1个人70万行代码,20年持续更新,这款游戏号称开发到死,永不停更相关的知识,希望对你有一定的参考价值。

梦晨 博雯 发自 凹非寺
量子位 报道 | 公众号 QbitAI

这是一款「开发到死」,「永不停更」的游戏。

兄弟两人,一人开发,一人剧情,共同维持了这款游戏近20年

现在的玩家刚刚打开它,往往会发出“这啥玩意儿?”的疑问:

没错,这款《矮人要塞》 (Dwarf Fortress)的默认界面完全由ASCII字符构成。

它是《我的世界》的灵感来源之一,还被纽约现代艺术博物馆收藏。

影响力不仅限于游戏,更是改变了艺术界对游戏的看法。

除了画面原始以外,这款游戏还不支持鼠标操作,玩家需要记住一整套键盘指令。

规则也极其复杂,与其他游戏相比《矮人要塞》的难度曲线被调侃成这样:

这样一款各方面都“劝退”的游戏,到底靠什么成为公认的神作?

人类历史上最复杂的游戏

整体来看,这是一款沙盒模拟经营游戏,玩家控制一群矮人,试图建造并经营一个要塞。

每次开始新游戏都由程序随机生成一个世界

这个随机生成的世界有完整的地形、气候、矿产分布、动植物生态圈等要素,并按规则动态变化。

还要生成整个文明的历史,各个种族间的冲突、家族血缘关系,每个游戏人物有自己的性格、喜好和记忆。

下图就是在生成历史,到第164年已经发生了27万个对后世有影响的事件。

这个过程甚至会把性能稍弱的CPU榨干。

游戏中的角色并没有抽象的“生命值”,而是身体的每个部位都有独立的状态,遇到火焰会烧伤,低温会生病,摔倒会骨折。

在战斗中受伤也没有喝生命药水就能回复的简单机制,如果不好好包扎伤口,战斗胜利的一方也会随后感染而死亡……

但事实上,想要在一篇文章里说明白《矮人要塞》的玩法几乎是不可能的。

甚至从一个经典“Bug”就能看出,这个游戏世界有多复杂

在某次更新以后,有玩家在游戏里养的两只猫都离奇死亡了。

要塞没有被入侵,从游戏记录里看没有发生任何战斗,唯一的线索就是两只猫倒在一大滩呕吐物里。

他猜测或许是酒精中毒?但游戏里猫的设定根本不会喝酒,于是他在游戏官方论坛里报告了这个问题。

随后,越来越多的玩家也遇到了同样的问题,他们在游戏里养的猫接二连三莫名死亡。

并且玩家观察到只有猫会出现这个现象,其他宠物暂时安全。

直到一位玩家目击了他的猫倒在发生斗殴的酒馆里,真相终于浮出水面。

原来是矮人们打架时把酒洒在了地板上,猫经过时酒液粘在它们的毛发上,随后猫在清理自己毛发时摄入了过量酒精而中毒死亡。

游戏制作人终于找到问题出现在“从身体表面摄入物质”这部分代码的数值问题,并进行了调整。

游戏出了Bug,玩家们反倒很开心。这个Bug正可以说明他们热爱的这款游戏的伟大之处。

因为这个Bug的出现需要一系列复杂的规则和交互:

在矮人的设定上,爱喝酒,喝醉了可能打架。

在动物的设定上,猫有毛发,还会通过舔清理自己。

在物理法则上,液体会洒、会留在地板上,液体会粘在猫毛上,而猫舔毛会摄入沾上的液体,酒精的毒性与生物的体重相关……

所有这些规则要同时成立并进行交互才能产生这个Bug,也难怪有玩家评价到:

这根本不是Bug,是功能!

《矮人要塞》一直保持原始画面的原因也是开发者20年来一直忙于修改复杂的玩法规则,根本找不到时间制作图形界面。

到现在已经积累了71万行代码。

如此细致的一款游戏于2002年开始制作,从2006年发行首个版本到今天就一直是免费的。

并且还保持着每隔两三年就会打个大补丁的更新频率。

这样的传奇游戏背后是怎样的两位制作人?

从斯坦福数学博士到游戏制作人

左:Zach 右:Tarn

时间来到2004年,此时的Tarn Adams正焦头烂额。

一来,他正忙于斯坦福大学的数学博士学位的申请。

二来,他和哥哥Zach Adams共同开发的游戏《亚莫之奴:神与血》开始出现越来越多的问题。

双重困境之下,Tarn决定暂停这款游戏的开发,宣布将主要精力转移到另一款游戏上——

也就是我们现在熟知的矮人要塞,全名《亚莫之奴:神与血第二章:矮人要塞》。

不过,这时Tarn的生活重心主要还是在学业上。

比如2004年,他就在《几何分析》杂志上发表了一篇数学论文:

当然,在此期间,兄弟俩还是合伙“不务正业”,创办了游戏公司Bay 12 Games:

Tarn的数学知识使他非常擅长空间方面的算法,而Zach则拥有丰富的古代历史知识。

在两人合作开发并发布了几款免费游戏之后,也吸引到了一小批粉丝,赚了大概300美元

对这时候的哥俩来说,游戏开发还只是个兼职

到2006年,Tarn继续在德州农工大学攻读博士后。

但此时,科研与游戏开发之间的冲突已经愈发紧张,让Tarn时常处在一种抑郁的情绪之中。

在数学领域深造,这是他从本科时代就开始的目标。

但同时,Tarn也是一个小学五年级就自己开发游戏玩,高中就在线上发布公开游戏的骨灰级游戏爱好者啊!

深思熟虑之后,这一年,Tarn决定退学,然后全职游戏开发!

在这期间收入完全靠粉丝自愿捐赠。

到了2006年8月8日,矮人要塞的第一个alpha版本发布。

在接下来的几个月中,他们也逐渐积累了一批死忠粉。

靠粉丝的捐赠可以获得平均每月800-1000美元

按照正常逻辑,找发行商合作,然后开始赚钱似乎是一条理所应当的发展之路。

但是兄弟两人担心一旦商业化,他们会没法自己把握游戏更新的节奏。

为此,两人拒绝了很多发行商的合作请求,承诺游戏继续提供免费下载。

就在这样的承诺中,矮人要塞顽强地生存了下来,并且越做越大。

因患上癌症终于准备上线Steam

到了2019年,兄弟中的哥哥Zach查出患有癌症,高昂的医药费让两人逐渐感到力不从心。

 Zach Adams

终于与发行商Kitfox Games合作,决定让游戏登上Steam与Itch.io平台出售。

不过玩家是否花钱购买完全靠自愿,免费版也将继续开放并保证持续更新。

为了让降低新玩家的上手难度,出售版将会包含全新的图形界面、符合现代习惯的操作模式,自动更新和Steam创意工坊功能。

目前新版游戏仍在开发中,发售日期和价格都没有公布。

每个季度兄弟俩都会公布最新的开发进展。

现在如果想要尝试这款传奇游戏,最好的方式是下载玩家社区维护的“懒人包”,集成了玩家自制图形界面和更多降低游戏上手成本的工具。

游戏官网:
http://www.bay12games.com/dwarves/

懒人包:
https://dffd.bay12games.com/file.php?id=7622

steam地址:
https://store.steampowered.com/app/975370/Dwarf_Fortress/

参考链接:
[1]https://stackoverflow.blog/2021/07/28/700000-lines-of-code-20-years-and-one-developer-how-dwarf-fortress-is-built/
[2]https://news.ycombinator.com/item?id=27996684
[3]https://www.reddit.com/r/programming/comments/otwbsj/700000_lines_of_code_20_years_and_one_developer/
[4]http://www.bay12games.com/dwarves/mantisbt/view.php?id=9195
[5]https://en.wikipedia.org/wiki/Tarn_Adams

以上是关于1个人70万行代码,20年持续更新,这款游戏号称开发到死,永不停更的主要内容,如果未能解决你的问题,请参考以下文章

70 万行代码历时 20 年,一名程序员写出的史诗般的计算机程序

70 万行代码历时 20 年,一名程序员写出的史诗般的计算机程序

70万行代码历时20年,一名开发人员写出的史诗般的计算机程序

70 万行代码历时 20 年,一名程序员写出的史诗般的计算机程序

腾讯程序员最爱 C++,每年写 3 万行代码,70% 的技术 Leader 仍在持续编码

「持续更新」记录自己的玄学错误