第十四章 火种测试
布娃娃的小女孩写的字歪歪扭扭,有的笔画写反了,像刚学写字的孩子。

    第二轮测试在一周后进行。

    陈声从橘猫社区招募了三十名志愿者,签了保密协议。三十个玩家同时涌入测试服,服务器负载瞬间飙升。林子轩盯着监控面板,手指悬在扩容按钮上方。负载最高冲到将近九成,但没崩。

    外部玩家的反馈比内部测试更直接。有人发帖说玩了四个小时没吃午饭,有人问这个游戏什么时候上线。陈声把这些外部反馈单独整理成一份文档,标题写了四个字:玩家声音。

    苏景辰看到一篇帖子。发帖的是个大学生,他说他让一个叫老周的角色连续加了三天班,老周没有抱怨。第四天老周病倒了,医疗室没有床位。他把老周调到轻症区,老周头上冒着生病的图标还在工作。他盯着那个图标看了很久,然后退出游戏发了这篇帖子。

    帖子的最后一句是我对我爸也这样。

    苏景辰把这篇帖子转发给许知意。许知意看完之后沉默了很久,然后打开绘图板,在留言板彩蛋里加了一条新留言:老周说别担心他,他只是有点累。她把触控笔放下,去了趟洗手间。

    第三轮测试聚焦AI行为树。

    这是林子轩在第二轮测试后决定推倒重写的模块。原本的行为逻辑基于简单的状态机,居民在饥饿、疲惫、恐惧之间切换,触发条件线性排列。但外部玩家的反馈暴露了一个问题,居民的行为太过机械,不像人。

    “他们需要记忆。”

    他把行为树从状态机改为加权决策模型。每个居民有一个隐性的记忆值,会根据过去几天的经历改变行为倾向。被饿过的人会更频繁地去仓库查看存粮,生过病的人会主动减少工作量,被别人帮助过的人会在对方困难时伸出援手。

    沈连河看着他的架构图。

    “这会让行为更难预测,更难调试。”

    “对。”

    林子轩把棒棒糖从左边挪到右边。

    “所以才像人。”

    第三轮测试用了十天。十天里测试服跑了上万个小时的模拟数据,陈声把每次模拟的结果导出成表格,逐行标注异常行为。有一行数据让他停了下来,一个叫小谷的居民,在食物危机中把自己那份口粮分给了一个从未交谈过的陌生人。

    陈声查了小谷的记忆值。发现他刚来避难所的第一天被一个老居民送了一碗热水。那个老居民现在不在了,但小谷的加权模型里有一项权重特别高,付出善意。

    他把这行数据截图发到群里。

    许知意回了消息,问小谷送水的那天是什么时候。陈声查了时间戳,是测试模拟的第二十一天,在游戏里是一个冬天。

    许知意说她要在留言板上加一条新的留言,小谷写的,大概就一句话。

    她打完字发到群里。陈声说这句话太长了。许知意说那就删到只剩一句,删完之后她说留着那句就好。

    测试最后一天,孟缘把所有反馈汇总。内部反馈加外部反馈,扣除重复后总共四百多条,优先级最高的将近五十条。陈声列了一张倒计时修复表贴在公屏上。

    “两周修完,修不完不准下班。”

    “谁规定的。”

    “我规定的。我是测试负责人。”

    林子轩把棒棒糖咬碎,没有说话。但当天晚上他是最后一个走的,沈连河陪他加班到凌晨两点,两个人在死磕一个内存泄漏的问题。沈连河说内存泄漏的根源在AI模块的序列化逻辑,改了这里可能会影响存档兼容性。

    “那就把存档也一起改,一次性改到位。”

    “这样改动太大。”

    “改到位比改两遍简单。”

    他一边说一边已经开始重写序列化接口。沈连河看了他一会儿,然后打开自己的笔记本开始画新的内存分配流程图。房间里只剩下键盘声和偶尔的讨论。

    十一月第二周,《避难所》进入最终封版阶段。苏景辰和许知意完成了所有美术资源的整合,陈声跑完最后一轮全流程测试,沈连河把性能优化了将近三成,林子轩把所有模块检查了一遍,确认没有遗留的致命问题。

    当天晚上,陈声在工作群里发了一条消息。

    “《避难所》封版。下周一进入宣传预热。”

    孟缘回了一句。

    “版本号多少。”

    “1.0。”

    林子轩打了四个字。

    可以上线。