top of page

先一种,再五种:这个游戏是怎么长大的 🪨

作家相片: Marcel Dütscher
Marcel Dütscher
7月27日
讀畢需時 3 分鐘

看看我们的版本列表,你会发现五个多星期里有 29 次发布,从 6 月 20 日的 0.1.0 到昨天的 0.9.0。这是怎么做到的?肯定不是坐下来一口气做出一个完整的功能。我们是分阶段建造的:先做出真正能用的最小版本,等它稳定、好玩之后,再进入下一个阶段。眼下,小行星就是最好的例子。


第一阶段:它们总算存在了。小行星刚进入游戏时,只有一个问题重要:在一个几分钟就能绕一圈的小天体上,降落、行走和挖掘行得通吗?小行星不是缩小的星球,它有自己的尺寸等级、不同的重力、不同的地平线。这就是第一阶段,其他的一切都被故意放在了一边。所以当时只有一种:类型是写死的,又因为没有可选地表的列表,每一列都被盖上了水晶。整个银河系里的每颗小行星看起来都一样。唯一的变化只是周长,以及陨石坑碰巧在哪里。


第二阶段:现在允许不一样了。第二阶段从昨天起已经完成,它会随下一次更新进入游戏。到时会有五个小行星家族,每块岩石按加权概率抽取自己的家族。石质是主力,含有铁、硅酸盐、铜和锡。金属质几乎是实心金属,到处是钛,更深处有钴、钨和铂。冰质处在 −95 °C,含的是挥发物而不是金属:碳、锂、硫。富碳的烟灰般漆黑,洞穴密布,在很深的地方藏着铀和钻石。而结晶质,也就是以前每颗小行星的样子,现在成了稀有的发现。除此之外,每个天体还有自己的陨石坑地貌:密度、盆地宽度、深度、边缘高度,以及它们之间的尘土有多起伏。以前这些是全宇宙通用的五个固定数字,所以每个没有空气的天体看起来都一样。顺便说一下,卫星也受益,因为它们在代码里走的是同一条路。


真正的回报在之后。干净地做好第二阶段,美妙之处在于第三阶段:第六个家族不再是一项编程工作,而是数据文件里的一个条目:名称、地表、矿石、出现频率,搞定。“应该有人把那个加进去”变成了“我们可以哪天晚上试一试”。这就是重构的价值所在。


为什么我们总这样做。有三个原因,都是吃过苦头才学到的。第一:你事先并不知道一个点子好不好玩。一个小小的初版,一个晚上就能和 Justus 一起试玩,之后你就知道扩展值不值得,或者这个点子其实很无聊。第二:小步前进可以审查、可以测试,必要时还能撤回。一个同时伸进五十个地方的巨大功能,只能靠祈祷。第三,也是我们最看重的:这个游戏是孩子们在玩。对他们来说,做了一半的巨大功能,比一个小而可靠的功能更糟。


到处都是同一个模式。方块一开始是立方体,斜坡、楼梯和球体是后来才有的,然后是着色,再然后是精细的边缘倒角,这样就没有什么东西看起来像纸箱了。星球一开始是一块灰色岩石,真正的海洋、洞穴系统、随海拔变化的气候和火山是后来才有的,然后是寒冷世界上结冰的海,现在是小行星。在儿童安全方面,一开始只有聊天里的举报命令,然后是带理由和冷静期的封禁,最近是隐形的观察者模式。还有我们刚发布的强盗,它们本身还处在第一阶段:它们是通过近距离效果打到你,而不是用真正飞行的弹丸。这不是疏忽,而是写进了计划:等第一阶段证明了自己,再做第二阶段。


这种工作方式的代价。老实说有两点。第一,现有的世界会变:因为天体的类型每次加载都会重新计算,从不存储,所以你旧世界里的小行星会在下次更新后得到不同的家族和不同的地貌。你建造的方块会保留,但它们可能会突然悬在半空,或者嵌在岩石里。所以这类事情总会写进更新说明。第二,即使是第一阶段,也必须以第二阶段能够成立为前提来建造。对小行星来说,这意味着:代码里现在恰好只有一个地方回答“这是小行星吗?”,还有一个测试,对每个生成的家族检查它确实被归为小行星。漏掉任何一个调用方,一个讨厌的老漏洞就会回来:一块你一个方块都挖不了的岩石。


而且测试又一次救了我们。在做新家族的时候,一个存在已久的检查报警了:它保证在每个有矿藏的世界里,你都能做出电缆的配方。五个新家族里有三个根本没有铜,玩家会在那里卡住进度。没有人注意到这一点,几周前有人写的一个测试注意到了。现在所有家族都含有铜和硅酸盐。


接下来是又一个这样的阶段,大概在植物、动物和强盗之间。具体是哪一个,通常由 Justus 说了算。🌟

最新文章

查看全部
分析、计划、代码、检查:我们用 AI 开发的节奏 🤖

我们从来没有隐瞒过,我们在 Blocks Beyond The Stars 上大量使用了 AI,没有它,这么大的游戏根本不可能作为下班后的业余项目做出来。但对我们来说,“用 AI 开发”并不意味着:敲下一个愿望,拿走结果,然后碰运气。几个月下来,一套固定的模式逐渐形成,听起来出乎意料地老派,却正因为如此才管用。今天我们把它完整地讲给你们听。 一切总是从一个人和一个想法开始。在任何 AI 动手之前,

 
 
我们的游戏如何在一周内学会十四种语言 🌍

2026年8月10日 我们刚开始的时候,Blocks Beyond the Stars 正好只会说两种语言:德语,因为我们住在那里;英语,因为互联网说英语。今天它会说十四种。下面讲讲这是怎么发生的——还有一路上出的所有状况。🌍 一切从 Francesco 开始。几周前,从意大利寄来了一个 pull request:Francesco Quirino 开始把游戏翻译成意大利语。纯手工。一组一组地翻

 
 
看不见的守护者,还有终于会解释自己的封禁 👁️

不久前我们在这里写过为孩子而设计,包括举报、反馈和一双留意的眼睛。老实说,那双眼睛是其中最薄弱的一环:我们能收到举报,却几乎看不到一个世界里到底在发生什么。这就是我们一直在做的事,分成两块:一个用于监督的观察者模式,和一套彻底重做的封禁系统,它终于会告诉受影响的玩家发生了什么。 观察者模式。当收到举报时(“有人在乱建东西”“有人在说难听的话”),我们现在可以进入那个世界而不打扰它。而且是真正的隐形

 
 

留言


這篇文章不開放留言。請連絡網站負責人了解更多。
bottom of page