植物百科网
当前位置: 首页 农业百科

自己可以编写沙盒游戏吗(1人写出70万行代码)

时间:2023-07-24 作者: 小编 阅读量: 2 栏目名: 农业百科

期间,Adams的兄弟还帮助他来设计和创建基于游戏的故事。近13年来,矮人堡垒并未在任何游戏平台上发售,这是因为「亚当斯兄弟」的信念。他们希望这款游戏和市面上发布的商业版本有所不同,并且矮人堡垒也要以10年为单位,一直更新下去。对于这漫长的更新,这对兄弟表示并没有任何规划。据说,亚当斯兄弟每个月可以有几千美元的捐赠收入,足以维生。矮人堡垒用的是A*算法,速度很快,但Tarn认为还是不够好。

来源:外媒

编辑:yaxin Priscilla

【新智元导读】20年,他一人写下70万行代码,创造出沙盒游戏「鼻祖」Dwarf Fortress。13年,他全靠玩家捐赠维生,也不愿在任何游戏平台上发售。他,开发了世界上最「现实」的游戏,却是最有理想主义的开发者。

一款游戏,让一位玩家皈依佛教。

这位玩家曾寄信开发者,因其开发的游戏理解了「众生皆苦,世事无常」。

究竟是什么游戏还能让人看破红尘?

Dwarf Fortress (矮人堡垒)!

在Roguelike游戏界,你一定不要错过大名鼎鼎的矮人堡垒!

2006年面世的矮人堡垒可以说是「开创类的老游戏」,就连《我的世界》开发者们表示自己深受这款游戏的启发。

你可知这个游戏背后的开发者如何将其建造出来?

矮人堡垒是由Tarn Adams(又名Toady One)一人开发,20年来,亲自写下70万行代码!

最「现实」的游戏,最有理想主义的开发者

Tarn Adams 从2002年开始就在矮人堡垒工作。最初,它只是一个兼职项目。

从2006年开始,Adams一心投入,自己编写所有的代码。

期间,Adams的兄弟还帮助他来设计和创建基于游戏的故事。

图右为Tarn Adams

目前,他正在开发一个带有像素图形和改进用户界面的版本,可以在Steam上购买。

近13年来,矮人堡垒并未在任何游戏平台上发售,这是因为「亚当斯兄弟」的信念。

他们希望这款游戏和市面上发布的商业版本有所不同,并且矮人堡垒也要以10年为单位,一直更新下去。

对于这漫长的更新,这对兄弟表示并没有任何规划。

「想到哪,做到哪。」

开发后的游戏不卖钱,稳定的收入从何而来?

全靠玩家捐赠维持生计!据说,亚当斯兄弟每个月可以有几千美元的捐赠收入,足以维生。

许多游戏玩家为此愤愤不平,但他们却表示,「我们只是不想成为商人,赚钱对我们来说没有意义」。

他们开发了最「现实」的游戏,却是最有理想主义的开发者。

沙盒游戏「鼻祖」,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*算法只会耗费大量维护时间。

所以Tarn决定,通过行走来追踪可到达的连接组件。这样就算地图变化再快,更新也很容易。

虽然更新维护变快了,但这个方法还是有缺点:

维护的部件指数只能用于行走。

针对这个问题,Tarn做过一些尝试,但都以失败告终。

他留意到有些成功的游戏用了矩形覆盖,觉得这个方法还蛮不错,但又没法确定那些游戏的地图大小和稳定性。

Tarn认为,最简单方法其实就是为飞行生物添加一个新索引。

但因为两个索引都需要同时维护,而其中一个索引已经够差了,所以这对内存和速度有很大影响。

又或者可以跟踪它们的路径属性,但是随着地图的变化,维护起来还是会变得困难缓慢。

Tarn表示,在代理和地图复杂性方面,目前已经尽最大能力来支持agent和复杂的地图了,所以如果我们想从中得到更多,就必须做出一些让步。

「失败就是乐趣!」

除了矮人堡垒,Tarn在过去十年左右的时间里也尝试做过其它游戏项目。

不多,也就大概90个吧。

不过,有些项目只能持续了几天,有些就持续了好几年。

这些游戏项目几乎都是其它类型的游戏,但也有一些是矮人堡垒的辅助项目,比如神话生成器原型。

虽然基本上没有多少个项目能够持续运作下去,但Tarn认为,偶尔摆脱矮人堡垒,开开小差还是挺不错的。

在这90个「随便做做」的项目里,Tarn也想过用其它编程语言。

他认为有些语言是能够加快实现设计,所以他觉得自己应该再学一点脚本语言,多玩一些线程。

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

对于更喜欢设计的Tarn来说,既然那90个项目是用来摸鱼放松的,又怎么会去学编程语言呢。

bug是所有开发人员都逃不掉的坑。

在矮人堡垒这个游戏里,Tarn最喜欢的bug是那只永远都打不赢的醉猫。

在酒馆里的猫在地板上走来走去,猫爪就沾了不少洒出来的酒,结果猫在舔爪的时候就喝醉了。

这个bug是因为在猫舔爪摄入东西的代码里,有个数字出错了,结果这个bug就让猫显示出了酒精中毒的症状。

不过,这个bug反倒是被Tarn利用起来,添在了有毒生物的设计代码里了。

参考资料:

https://stackoverflow.blog/2021/07/28/700000-lines-of-code-20-years-and-one-developer-how-dwarf-fortress-is-built/

    推荐阅读
  • 突触名词解释(突触是什么意思)

    突触名词解释突触是指一个神经元的冲动传到另一个神经元或传到另一细胞间的相互接触的结构。突触是神经元之间在功能上发生联系的部位,也是信息传递的关键部位。在光学显微镜下,可以看到一个神经元的轴突末梢经过多次分支,最后每一小支的末端膨大呈杯状或球状,叫做突触小体。这些突触小体可以与多个神经元的细胞体或树突相接触,形成突触。从电子显微镜下观察,可以看到,这种突触是由突触前膜、突触间隙和突触后膜三部分构成。

  • 《守望先锋》对战局影响大招top一览 守望先锋对局战绩

    今天小编要为大家带来的是玩家“黑呦酱”分享的《守望先锋》对战局影响大招top一览,感兴趣的玩家赶紧一起来看看吧!守望先锋大招分为四类,控制类,自身BUFF类,辅助类以及伤害类,由于伤害类大部分使用大招时,本体无法进行有效杀伤,且控制类及自身BUFF类需要其他技能的配合,so,此间因素也要加入考量。

  • 运动后喝黑咖啡还能燃脂吗 运动时喝黑咖啡会加快燃脂吗?

    2、运动过程中身体脂肪会加速燃烧,从而具有一定减肥作用;而黑咖啡热量比较小,加上其中含有大量的咖啡因以及维生素、纤维素物质,适量喝可以促进人体肠胃蠕动,加速脂肪代谢分解,对减肥具有促进作用。

  • 斯威汽车质量怎么样(斯威质量好不好)

    2018年6月起,斯威“品质特工队”以四大火炉的重庆作为起点,途径海南、吐鲁番、格尔木三地,历时近一年进行了数十万公里极限环境适应性试验。极端干燥高温环境下,常见车内温度往往会狂飙到60℃以上,而在斯威G01的车厢里,却始终能够保持清新凉爽的状态。一整套严酷考验下来,斯威G01的性能表现完全得以充分认证。这样一算,斯威G01差不多完成了近百万公里的专业级严酷考验。

  • 春天兰花怎么养 春天兰花怎么养浇水

    白墨兰花哪个品种最好白墨兰花是墨兰的珍贵变异品种假鳞茎椭圆形,已有数百年栽培历史,流传至今,不下十数个品种,它叶色莹润、体态优雅、幽香静远、且抗病,白墨兰花比较好的品种一般分企剑和软剑两个品系。什么兰花开花最香兰花品种很多,按花香来排,在兰花界春兰居首,惠兰次之,随后便是建兰、墨兰和寒兰,春兰的花香味最正宗,持久性也极强。

  • 奔驰e300l前进挡总共有几个(你看了奔驰22款E300L升级这套原厂HUD抬头显示效果觉得怎么样)

    从行车安全的角度来考虑,加装一台HUD是非常有必要的。HUD的全称是HeadUpDisplay,中文翻译过来就是抬头显示器。今天星骏汇小陈通过以上的产品配件图了解,我们看到这台奔驰22款E300L升级HUD抬头显示所需要更换的配件有,抬显仪器,高配仪表盖板,高配仪表电脑,雨量传感器,空调管升级HUD抬头显示把仪表台上的那一块盖板换掉,换成高配的预留好显示器孔位的盖板,装上显示器,从而使仪表显示的内容投射到挡风玻璃上面。

  • 儿童葫芦丝表演(通城千人共奏葫芦丝)

    儿童葫芦丝表演香城都市报讯 10月27日,通城县隽水中学参加湖北省“黄鹤杯”美育节节目视频录制现场,七、八年级千名学生,同奏乐曲《龙的传人》。该校相关负责人介绍,本学期,每天下午预备铃响5分钟,七、八年级各班集体合奏葫芦丝。丝竹声声,已渐成校园一道靓丽的风景线。近年来,该校贯彻落实社会主义核心价值观,注重未成年人思想道德建设,坚持开设中华传统和特色民族特色教育课程,促进学生“德智体”全面发展。

  • 鸡娃时代孩子的成长之道(与其1岁就开始鸡娃)

    出生时大脑发育已经完成25%,1岁完成了50%,3岁完成了60%,6岁达到90%。现在小学虽然是零基础入学,取消了统一考试,但是它对学生的要求并没有降低。吃够了佛系养娃的亏,橙子家的老二断然不肯再佛系养了。北京卫视于2018年摄制的纪录片《起跑线》中,有一个7岁的北京女孩令人印象深刻。她的家庭,在北京三环内有一套房,一辆车。妈妈认为,孩子从小培养兴趣,靠的是父母的指引。

  • 环氧树脂的作用与用途(环氧树脂有什么作用与用途)

    环氧树脂的作用与用途具有优良的物理和电绝缘性能,强度高、收缩性低,耐腐蚀以及有高绝缘的优势,所以被称为万能胶。电器、电机绝缘封装件的浇注。从常压浇注、真空浇注已发展到自动压力凝胶成型。长时间接触胶水时,有人会有细微的皮肤过敏和细微瘙痒疼痛的情况,建议在运用时戴上防护手套,如果出现了这样的情况,需要用酒精擦洗,然后用清水冲洗干净。

  • 明月曾照江东寒剧情(明月曾照江东寒剧情介绍)

    明月曾照江东寒剧情剧情简介:美少女战清泓是武林副盟主战破敌之女,从小被父亲禁止涉及江湖事。十年一期的武林大会即将来临,战清泓瞒着家人偷跑下山,立志夺取武林盟主之位。战清泓与温宥也开始互生情愫,奈何最终被世俗礼法所阻碍。与此同时,江湖上风起云涌,战清泓发现自己自幼背诵的家训竟是人人趋之若鹜的第一神功《鹤羽剑法》。