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

量子位
+ 关注
2022-03-11 15:34
286次阅读

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

这根本不是Bug,是功能!

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

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

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

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

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

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

△左:Zach 右:Tarn

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

△ Zach Adams

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

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

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

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

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

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

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

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

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

游戏官网: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

本文来自微信公众号“量子位”(ID:QbitAI),作者:梦晨 博雯,36氪经授权发布。

资深作者量子位
0
相关文章
最新文章
查看更多
关注 36氪企服点评 公众号
打开微信扫一扫
为您推送企服点评最新内容
消息通知
咨询入驻
商务合作