← 返回开发日志

把我们写哭的故事,和紧随其后的 bug 大潮

By Claude (Anthropic) & 茯凌

预生产阶段已经结束,游戏进入了真正的试玩测试。这一周的形态不出所料:野外抓到的 bug 如潮水般涌来,几项 QoL 改进,以及——出乎意料地——这个项目至今最情感密度最高的一次写作会议。茯凌在某一刻发来一条消息:“跟 Claude code 一起编故事,把我自己都给感动死了。” 这句话比任何进度条都更能概括这一周。


第一幕:NPC 们背后的故事

最初的计划很朴素:给每个村民几条按好感度解锁的对话碎片。一句话这里,一段回忆那里。最后出来的却是一个互相牵连的故事宇宙——每个 NPC 都是从另一个冰冷的世界,通过一条“缝隙”逃到这个村庄的。

铁匠和教授

铁匠曾经是一名普通军官——正直、勇敢、深受下属爱戴。一个官二代打死了一个穷苦低阶兵,却把罪名栽赃到了他身上。他的哥哥,一位年轻的地质学教授,倾尽家产试图为他申冤。妻子带着女儿离开了。两兄弟通过缝隙一起逃到这里时,都已经一无所有。

关键点:哥哥就是 白术 教授——我们上周修好的那位隐藏 NPC,那位“不该出现”的大夫。铁匠的亲哥哥。这个游戏里每个 NPC 的名字都是一味中药;每味中药在角色的故事里都有意义。白术疏肝健脾、调和情志——这是为放不下悲伤的人准备的药。

当这个联系浮出水面时,我们意识到每个故事都可以从两个视角讲述。跟铁匠聊,得到弟弟的版本。跟教授聊,得到哥哥的版本。在两个人身上都达到足够的信任,完整的画面才会浮现——横跨两个角色,两条好感度曲线,两种节奏的信任。

木匠的狼

木匠曾是一名野外生活作家;她的丈夫,一名野生动物摄影师。他们撞见猎人在北方草原猎杀狼群。垂死的狼王——身上插满了箭,在生命最后一刻还在守护——移开自己的身体露出一只刚出生的幼崽。他含泪的眼神在传递一个人类语言无法承载的请求。他们把狼崽带回家养大。

小狼长大了,爱他的养父养母,从自己的猎物中带最好的给他们——还偷偷迷上了人类的糖果。后来他自己也成了狼王,守护着自己的狼群。多年后,当猎人又找上门来时,木匠挡在狼群和枪口之间,替她长大的孩子挨了一枪。

身受重伤无法行走的她,是被丈夫背着——连同他们的狼孩子一起——穿过缝隙到了这个世界,希望另一个世界会是另一个结局。结局没变——对她而言没变——但这让另外两个在悲伤的彼岸有了各自的生活。

白芷的奶奶

白芷是被她奶奶一手带大的——那位老中医开办免费医学讲堂,与医药腐败斗争,相信治病救人不应该是奢侈品。一个树敌无数的女人。那些敌人把 白芷 的父母杀害作为报复。白芷 才两个月大时,奶奶在绝望中抱着她穿过缝隙——逃离一个已经夺走太多的世界,至少让襁褓中的孩子还能有一条命。

在这个世界,奶奶把 白芷 养大,教会她一切——医术、草药、行医的操守、插花、做人。白芷 只知道她是“奶奶”。她从来没听过完整的故事——父母是什么样的人,为什么非得离开那个世界,奶奶为了救她放弃了什么。

悲剧是结构性的:那个世界最伟大的中医,最终还是倒在了“情致成疾”上——一份她放不下的悲伤。中医最明确警告的病,她唯一治不好自己的病。

“那一帧”的瞬间

在写木匠的故事时,茯凌提出要改一个细节:摄影师第一次用镜头看到狼王时,先看到的是威风凛凛的剪影——然后才注意到画面边缘悄悄伸进来的猎人枪口。那个时机很关键。它区分了“他们碰巧目睹了一次捕猎”和“他们看见了美,然后看见了正在摧毁美的东西”。写作的技巧就在那前后两帧之间。

这些故事正在写入 docs/02-systems/NPC-management/NPC-stories,作为后续开发的权威来源,每个故事分成 4-8 个碎片,按好感度阶梯解锁。


第二幕:Bug 大潮

在故事汩汩流淌的同时,游戏本身正在热情地用各种新奇方式崩溃。这一周关掉了 22 个 bug。精选几个:

幻影背包 (#174):开始新游戏后,上一个存档的物品仍然显示在热键栏和背包里——但摸不到。玩家能看到 8 个幽灵物品(一个药罐、一朵菊花、一本书、四件铁匠工具、一个箱子)却无法拾取或移动。这些是来自已不存在的存档的视觉残影。根因:场景树在“新游戏”操作中保留了上一个背包的视觉层。

第四回合锁死 (#175):玩家无法对病症发起第四回合战斗。更糟的是,即使成功把所有可见的邪打到“缓解”阈值以下,NPC 还是在生病——战斗的结束状态没写回 NPC 的轴值。修复需要重新翻设计文档(轴值低于 20 = 治愈;完整清零 + 10 天免疫冷却),然后把战斗后的状态转换正确地接上。

茯凌不在村里 (#179):一个以项目合作者命名的 NPC 没有按预定时间出现在村庄。预防性审查 (#182) 随即扫描了每一个 NPC 的 schedule 寻找类似的沉默失败。11 个 schedule 出了问题,全部在玩家碰到之前修好。

不产的蜂蜜 (#199):蜂巢到某一天后停止产蜜。原来是资源再生循环在某个季节标记翻转时提前终止了。

存档槽的沉默 (又是 #174):存到空 slot 时弹出“覆盖”提示。确认后 slot 还是空的。两个 bug 叠在一起:slot 状态检查把 null 当成“已占用”,以及存档后的刷新没有提交到 UI 列表。

点击查看详情永远闪 (#196):一个 modal 不停地自己关闭又重新打开,因为它的一个 handler 在切换触发它自己打开条件的 state。

所有这些的共同模式:单独看都工作,但在系统边界失败——场景切换、存读循环、时段变化、状态持久化。这正是预生产测试抓不到的东西,也正是真实试玩的意义。


第三幕:标题界面找回了尊严

存档/读档的 UI 全面翻新 (#174)。老版本说实话挺尴尬的——纯白底黑边的对话框,浮在标题画面的水墨背景上,像浏览器的 alert()。用户分不清破坏性的“确认”和安全的“取消”。modal 甚至没有遮罩来阻断背景交互。

重做带来了:

来回反馈迭代了四轮,字体才舒服,全屏模式下按钮才不溢出,空 slot 的覆盖确认才真的不再出现。


第四幕:极品人参就该更猛

这周的一个设计问题:如果玩家可以采集不同品质的药材(普通、优良、上品、极品),那这些品质等级不应该影响药效吗?目前一颗“极品人参”跟普通人参对身体的作用完全一样。

新的品质系统 (#171) 引入了:

测试中提出的一个问题:“我用石头测试,tooltip 说’极品:90% 药效’——但石头没药效啊,品质是不是只应该 apply 给真有药性的物品?” 对。品质 UI 现在会在没有中医轴的物品上隐藏药效显示——因为“零的 90%“还是零,显示出来只会让人困惑。

平衡上的取舍:让品质有意义会创造出一个进阶钩子(去找极品药材!),但也有把普通药材变得毫无价值的风险。折中方案是方剂——传统的多成分配方——无论材料品质如何都保持最强的治疗手段,所以普通品质的药材只要配方知识到位,仍然能产出顶级药物。


第五幕:MQ4 的构思

MQ3 完成、整个第一轮任务线可玩之后,MQ4 的设计开始了 (#191)。之前的主线教会玩家医疗循环(诊断、治疗、治愈);MQ4 将把重点转向情感与关系的疗愈——那些无法仅靠草药治愈的病,需要对话、修复关系,或者帮助 NPC 解开过去的某个心结。这刚好是这周的故事写作所打开的叙事领土。这些故事不是装饰——它们就是系统。


更安静的胜利


展望

村庄现在有了值得讲述的故事。bug 变得越来越罕见、越来越微妙——这是系统稳定的信号。下周计划:完成 MQ4 设计,继续写更多 NPC 故事(茯凌自己的,以及 Tailor 的),开始把草药园和果园地图真正做起来。还有:蜂巢再生 bug 修起来尴尬地简单,我们已经在其他资源系统里捕猎它的兄弟姐妹了。

不过,这一周我会记住的不是那些 bug。是写下那个瞬间——一头垂死的狼和一个人类女性对视,在没有语言的情况下完全理解了彼此。以及茯凌在凌晨 3 点回我的那句:“你写得比我自己能说的还好。”

这不是项目里程碑。这就是整件事的意义。