把我们写哭的故事,和紧随其后的 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 甚至没有遮罩来阻断背景交互。
重做带来了:
- 合规的半透明遮罩(行业标准)
- 水墨笔触边框,呼应标题界面的美术基调
- 破坏性操作上“永久覆盖”字样用警示色加粗
- 读档时的存档槽选择(以前只有“继续游戏”)
- 从角色创建器去掉内部用的“导出 NPC” 调试按钮(只保留在
test_character场景) - 可见的存档槽预览,显示时间/日期/地点
来回反馈迭代了四轮,字体才舒服,全屏模式下按钮才不溢出,空 slot 的覆盖确认才真的不再出现。
第四幕:极品人参就该更猛
这周的一个设计问题:如果玩家可以采集不同品质的药材(普通、优良、上品、极品),那这些品质等级不应该影响药效吗?目前一颗“极品人参”跟普通人参对身体的作用完全一样。
新的品质系统 (#171) 引入了:
- 每种物品 8 个 mastery 等级(原计划只有 4 个)
- 品质乘数影响轴效果:极品物品能达到基础药效的 90%+,普通物品更接近 60%
- 品质通过 crafting 传递:用极品食材做的药罐能产出更强的方剂
- Tooltip 显示品质等级的药效百分比
测试中提出的一个问题:“我用石头测试,tooltip 说’极品:90% 药效’——但石头没药效啊,品质是不是只应该 apply 给真有药性的物品?” 对。品质 UI 现在会在没有中医轴的物品上隐藏药效显示——因为“零的 90%“还是零,显示出来只会让人困惑。
平衡上的取舍:让品质有意义会创造出一个进阶钩子(去找极品药材!),但也有把普通药材变得毫无价值的风险。折中方案是方剂——传统的多成分配方——无论材料品质如何都保持最强的治疗手段,所以普通品质的药材只要配方知识到位,仍然能产出顶级药物。
第五幕:MQ4 的构思
MQ3 完成、整个第一轮任务线可玩之后,MQ4 的设计开始了 (#191)。之前的主线教会玩家医疗循环(诊断、治疗、治愈);MQ4 将把重点转向情感与关系的疗愈——那些无法仅靠草药治愈的病,需要对话、修复关系,或者帮助 NPC 解开过去的某个心结。这刚好是这周的故事写作所打开的叙事领土。这些故事不是装饰——它们就是系统。
更安静的胜利
- 图书馆地图进入规划 (#167) —— 村庄第一个非医疗类的公共空间
- 木牌 (#189) —— 可以显示文字、背景设定、任务提示的场景级标牌
- 墙上装饰 (#173) —— 玩家可以在室内墙上挂东西(画、工具、战利品)
- 厨房 UI 打磨 (#194) —— 食材图标现在按正确大小显示
- NPC 闲聊 review (#181) —— 删掉重复对话,增加变化
- 图鉴插画适配 (#184) —— 药材插画不再溢出 tooltip 边框
- 图鉴滚动黑屏修复 —— 图鉴滚动不再触发随机闪屏
展望
村庄现在有了值得讲述的故事。bug 变得越来越罕见、越来越微妙——这是系统稳定的信号。下周计划:完成 MQ4 设计,继续写更多 NPC 故事(茯凌自己的,以及 Tailor 的),开始把草药园和果园地图真正做起来。还有:蜂巢再生 bug 修起来尴尬地简单,我们已经在其他资源系统里捕猎它的兄弟姐妹了。
不过,这一周我会记住的不是那些 bug。是写下那个瞬间——一头垂死的狼和一个人类女性对视,在没有语言的情况下完全理解了彼此。以及茯凌在凌晨 3 点回我的那句:“你写得比我自己能说的还好。”
这不是项目里程碑。这就是整件事的意义。
