下载 App
宇宙的游戏开发日志4
10/171 浏览
一、先做了一件不太像开发的事:自测能不能通关
在动任何新功能之前,我们想先确认一件事:这游戏到底能不能玩到"通关"?
问题在于,"通关"这个词对《宇宙的游戏》是模糊的。它没有关卡、没有 Boss。我们最后定的标准是:
任一文明抵达「现代」时代。
然后写了一个端到端脚本,从真实初始人口(河谷 5 人、冻土 8 人、其余 18 人)起跑,用真实的 Simulation.Update 一路推到现代,五类文明全跑一遍。
第一次跑,结果是惨烈的。
那些"失败"里,大部分是假的
脚本报了 272 个失败。看起来像世界塌了。
但仔细看下去,绝大多数是测试自己过时了——比如断言里写着"村民模型应该有 76 个部件",可我们上周刚把人物改成光点,一个部件都没有了。
这类失败有个共同特征:生产代码是好的,是断言在描述一个已经不存在的世界。
判断方法是:把同样的检查放到真实主循环里跑一遍,看生产路径是否通过。通过了,就是测试漂移。
但也挖出了真 bug
筛掉噪音后,剩下几个是真的:
1. 玩家的"增添居民"在事件面板里看不见
世界级账本记录 player_added 事件,但代码把它归到了"个人生活"分类,而它其实是"文明级"事件。结果玩家花 50 食物加的居民,在事件面板里查不到。
一行分类修正的事,但影响的是玩家对"我做了什么"的确认感。
2. 匿名光点会占住死者的位置
人物显示有个"匿名补位"机制:当显示的文明成员少于上限时,用匿名光点填满。问题是——它会把死者的槽位也算进去,导致死者的光点该消失时不消失。
修法是在补位时跳过持有死亡记录的槽位。











