第 24 章
裂缝的蔓延
《燕云十六声——上线前关键风险清单》的第十七版打印件摊在沈明远的办公桌上,页边距被调得很窄,十七个条目挤在两页纸里,每条后面跟着责任部门、影响评估和解决方案三栏。前六条是技术问题——服务器并发上限、客户端兼容性矩阵、支付渠道容灾方案——每条解决方案栏都填着具体姓名和截止日期。从第七条开始,措辞变了。
第七条,“核心叙事节奏与大众用户接受度错配风险”,风险等级标为“极高”,影响评估栏写着“可能导致前期用户流失率超过行业基准线30%以上”,解决方案栏只有五个字——“依赖版本调整”。第八条,“社区预期管理失效风险”,等级“高”,解决方案栏写着“待定”。第九条,“核心美术/文案人员流失风险”,等级“极高”,解决方案栏写着“已启动紧急沟通,暂无制度性保障方案”。第十条,“价值锚点从产品设计层向团队共识层蔓延风险”,等级“极高”,解决方案栏空白。这份清单的落款日期是2024年11月15日。
距离《燕云十六声》在PlayStation 5和Microsoft Windows平台上线还有四十二天。沈明远把清单从头到尾读了两遍。
他的办公室在网易大厦B座十七层,窗外是杭州十一月的灰色天空,办公桌上堆着三个版本的剧情分镜打印稿、一份未签字的数值调整方案和半杯凉透的咖啡。他把清单翻回第一页,在第七条上用红笔圈了个圈,然后在旁边的便签纸上写了两个字——“开会”。
会议定在当晚十点。不是正式的项目组例会,沈明远只叫了四个人:主策王涛、叙事总监陆辰、美术总监李想和运营负责人陈嘉卉。地点选在十七层尽头那间没有窗户的小会议室,白板上还残留着三天前战斗系统复盘会的笔迹,有人用蓝色马克笔在角落里画了个简笔的城墙垛口,旁边标注着“雁门关——最终版碰撞体积”。沈明远把风险清单的复印件推给四个人,每人一份。
“先读第七条到第十条,”他说,“技术问题我不担心。但这四条,没有一个是技术问题。”
王涛最先读完。他把文件搁在桌上,手指压在“依赖版本调整”那行字上,指尖因为长期敲键盘磨出了一层硬茧。“版本调整,”他说,声音不大但咬字很重,“三十九天,我们能调什么。序章剧情重写,战斗手感重做,还是把整个前期引导系统推翻。”
“序章。”陆辰接话。他坐在王涛对面,眼镜片反射着白板上方的日光灯管,脸色在灯光下显得发白。“测试数据出来之后,我把雁门关版本的支线任务脚本全部重审了一遍,完成率、留存率、用户评价都达标。但序章不行。序章的开场节奏太慢,前二十分钟的玩家流失率比行业均值高出十二个百分点。”
“序章是定调的。”李想的声音从角落传来。他没有看文件,而是盯着白板上那个城墙垛口的简笔画。“我们用了整整一节来呈现燕云十六州割让的历史背景,从后晋天福三年石敬瑭上表契丹,到幽州城头降下中原旗帜,每一帧画面都做了历史考据。砍掉这段,游戏的开场就不再是历史叙事,而是——”
“而是什么?”陈嘉卉打断了他。运营总监的声音不高,但语气里有一种精确的冷。“而是一款能让玩家在前五分钟就砍到第一个敌人的武侠游戏。李想,我不是在讽刺你。我是在告诉你社区里正在发生什么。”
她打开手机,调出一张截图,推到桌子中央。截图来自《燕云十六声》官方社区的玩家讨论区,一条标题为“科隆实机演示之后,我有点担心这游戏不够爽”的帖子被顶到了首页。帖子的发布时间是三天前,回复数已经超过四百条。楼主自称是《逆水寒》三年老玩家,从科隆展的实机演示视频入坑,但随后在几次线下试玩活动中感到“战斗节奏偏慢”、“剧情铺垫太长”,担心“这游戏最后会变成只有历史爱好者和考据党才玩得下去的小众产品”。
“这条帖子下面,”陈嘉卉说,“有一条回复被截图转发了超过两千次。回复的内容是:‘我是项目组内部的人,我只能说,有些坚持可能真的不适合这个市场。’这条回复在发布后四十分钟被删除,但截图已经扩散到了贴吧、NGA和B站评论区。”
会议室里安静了大约十秒钟。“查到是谁了吗?”王涛问。“没有,”陈嘉卉说,“用的是临时邮箱注册的账号,IP地址经过了VPN跳转。但问题的关键不是谁发的——而是这条回复说的内容,项目组内部有多少人认同。”
没有人回答这个问题。日光灯管发出细微的电流声,白板上的城墙垛口在灯下显得有些模糊。沈明远把风险清单翻到第九条。“李想,”他说,“你的组里,有几个人在接触猎头。”
李想沉默了几秒。他的右手无意识地转动着桌上的一支马克笔,笔帽在白板上轻轻磕了两下。“三个,”他说,“都是场景组的主力。一个被米哈游挖,一个在看莉莉丝的offer,还有一个——他自己还没决定,但他的妻子在深圳工作,他已经在考虑要不要回广东。”
“什么时候开始的。”
“科隆展之后。”李想说,“实机演示发布之后那两周,猎头的电话突然密集起来。不是因为我们做错了什么——恰恰相反,是因为那段视频太成功了。外面的人看到了美术质量,看到了历史氛围,看到了技术实力,然后他们开始挖人。他们不会看到我们内部的问题,不会看到测试数据里的流失率,不会看到——”
“不会看到这份风险清单。”沈明远接过了话头。他把清单翻到第十条,那行空白的解决方案栏在日光灯下显得格外刺眼。“价值锚点从产品设计层向团队共识层蔓延风险,”他读出了条目名称,然后把文件放下,“这条是我让项目管理组加上去的。措辞是我改的。”
“什么意思。”王涛问。“意思很简单,”沈明远说,“我们用了将近五年时间,在每一个系统评审会上争论同一个问题——这款游戏到底要为谁做。为历史考据的严肃性,还是为大众市场的娱乐需求。五年前在立项评审会上,我对陈言说,我们要做的是‘一款让玩家感受到历史的游戏’。这个表述本身就包含着张力——‘感受历史’和‘玩游戏’之间,从来就不是天然兼容的。”
“但我们在雁门关版本里解决了这个问题。”陆辰说,“雁门关的支线任务完成率达到了——”
“雁门关是支线。”沈明远打断他,“支线任务面对的是已经留存下来的玩家。他们愿意花时间,愿意读文本,愿意在城墙上走一圈只为了看落日的光影。但序章面对的是所有下载了游戏的用户,包括那些在应用商店看到评分不错就随手点进来的路人。他们不会给你二十分钟的时间来铺陈历史背景。他们会在前五分钟决定要不要继续玩下去。”
“所以我们要砍序章。”李想的声音提高了半度。“那段序章我们做了八个月。从《旧五代史》到《辽史》,从幽州城的城门建制到契丹使节的服饰纹样,每一个细节都做了考据。你现在告诉我,因为玩家没有耐心,这些都要砍掉。”
“我没有说砍。”沈明远说,“我说的是——我们需要一个方案。”
“什么方案。”李想问。沈明远没有直接回答。他从文件堆里抽出一张剧情分镜草图,上面用铅笔画着序章开场的第一组分镜——幽州城头,后晋天福三年冬,北风卷着雪粒打在城墙上,守城的士兵裹着单薄的戎服,望着远处契丹铁骑扬起的烟尘。分镜的右下角有人用红笔打了个叉,旁边写了三个字:“太慢了”。“这张草图,”沈明远说,“是陆辰三天前扔进垃圾桶的。我捡回来了。”
陆辰的眼神动了动,但没有说话。“我不是要否定考据的价值,”沈明远把分镜草图摊平在桌上,“但我们必须面对一个事实——这份风险清单上的第七条、第八条、第九条、第十条,本质上指向同一个问题:我们内部对‘这款游戏应该是什么’的判断,已经出现了根本性的裂痕。一部分人认为,上线版本必须守住历史严肃性的底线,哪怕代价是前期用户流失率偏高;另一部分人认为,活下去比坚持理想更重要,如果上线数据不好看,后续所有的历史考据、所有的叙事野心都会变成空谈。”
“你说的是‘一部分人’和‘另一部分人’,”王涛说,“但你自己站在哪一边。”
沈明远把分镜草图折好,放回文件堆里。他看了一眼窗外,杭州十一月的灰色天空正压向远处的建筑群,看不到地平线。“我站在上线日那边,”他说,“2024年12月27日,PlayStation 5和Microsoft Windows同步上线。那一天,我们在过去五年里做出的每一个选择、每一次妥协、每一场争吵,都会在几百万玩家面前接受检验。在那一天到来之前,我的工作是确保这个项目不会在内部先垮掉。
会议室里的日光灯管闪了一下,发出短暂的嗡鸣声。陈嘉卉把手机屏幕翻过来扣在桌上,屏幕的光透过外壳边缘漏出一圈暗白色的光晕。“社区那边,”她说,“负面情绪指数在最近一周上升了十四个百分点。触发点是那条内部匿名回复的截图,但真正的燃料是科隆展之后积累的预期落差。玩家看到了实机演示里的开封城、雁门关、战场叙事,他们期待的是一个能随时随地沉浸在五代十国历史中的开放世界。但线下试玩的反馈流出之后,有人开始意识到,真实的游戏体验可能和他们的想象不一样。”
“不一样在哪里。”陆辰问。“节奏,”陈嘉卉说,“还是节奏。玩家在开封城里可以逛一个小时不碰战斗,他们喜欢这种感觉。但一旦离开城市进入野外,游戏的节奏就变了——战斗系统要求他们做出快速反应,任务引导指向明确的奖励目标,叙事密度骤然下降。这种切换让一部分玩家感到不适。他们在社区里用的词是‘割裂’。”
“割裂。”王涛重复了这个词,语气像是在咀嚼一块嚼不烂的肉。“这个词从测试期就开始出现,我们一直在试图修补,但修补的方式是什么。是在城市里加更多战斗触发点,还是在野外加更多叙事元素。两个方向我们都试过,结果都不理想。”
“因为问题不在城市,也不在野外,”沈明远说,“问题在于我们没有想清楚——这款游戏的核心体验到底是什么。是历史沉浸,还是动作战斗。是开放世界探索,还是线性叙事推进。五年前我们回答不了这个问题,因为我们觉得可以兼顾。五年后我们还是回答不了这个问题,因为兼顾的代价已经超出了我们的承受范围。”
他把风险清单翻回第一页,用红笔在第七条到第十条旁边各画了一道竖线,四条竖线平行排列,像是一组栅栏。“这份清单,”他说,“明天会递交给网易互娱事业群的质量评审委员会。他们会看到这些条目,会看到‘极高’的风险等级,会看到‘待定’和空白的解决方案栏。然后他们会问我们一个问题——你们还需要什么。”
“我们需要时间。”陆辰说。“我们没有时间。”沈明远说,“三十九天。上线日不会等我们。”
会议在凌晨十二点四十分结束。四个人陆续离开会议室,白板上的城墙垛口简笔画被王涛顺手擦掉了,只留下一片蓝色的模糊痕迹。
沈明远最后一个走,他把风险清单的复印件收进文件夹,关灯之前回头看了一眼那张剧情分镜草图——幽州城头的雪,契丹铁骑的烟尘,红笔画的叉。他关掉了灯。
第二天上午,李想的办公桌上多了一份来自猎头的邮件。邮件的内容很简短,措辞客气而精确——某家上海的游戏公司正在组建一个历史题材项目,需要一位有大型开放世界项目经验的美术总监,年薪涨幅不低于百分之四十,附带期权。李想把邮件标记为已读,没有回复,也没有删除。
他的电脑屏幕上正打开着开封城朱雀门的最新一版贴图文件,城门上的铆钉数量按照《营造法式》的记载精确到了七十二颗,每一颗的锈蚀程度都做了差异化处理。他盯着那些铆钉看了很久,然后把邮件窗口最小化,继续调整贴图的色温参数。同一天下午,陆辰在叙事组的周会上提出了序章修改方案。
方案的核心是压缩——把原本二十分钟的历史背景铺陈压缩到八分钟以内,将幽州城陷落的过程从全CG过场改为可操作的逃逸关卡,玩家扮演一名试图穿越战场的平民,在躲避契丹骑兵追击的过程中,通过环境叙事和碎片化文本接收历史信息。方案保留了所有核心考据内容,但改变了它们的呈现方式——不再是“看”,而是“经历”。“这会让开场变得更具游戏性,”陆辰在方案文档的末尾写道,“但我们失去的是那种静默的、凝视式的历史感。这是一个代价。我不知道这个代价是否值得。”
方案发给沈明远之后,陆辰在下班前收到了一封来自网易内部人才发展部的邮件。邮件标题是“关于您的职业发展规划沟通邀请”,措辞例行公事,但发送时间恰好卡在项目上线前三十八天的节点上。陆辰没有点开邮件正文。他把电脑合上,拿起外套走出了办公室。
十一月二十日,社区舆情监控后台的数据曲线出现了一次明显的跳升。触发点不是新的爆料或截图,而是一条看似无害的官方动态——《燕云十六声》官方账号发布了一组开封城夜景的截图,配文是“灯火下楼台”。截图的质量很高,光影效果在移动端也能看出明显的技术优势。
但评论区的高赞回复偏离了官方预期的方向。“画面没得说,但能不能给个准话,这游戏到底好不好玩。”
这条回复在发布后两小时内获得了三千七百个赞。楼中楼的讨论迅速分化成两个阵营——一方认为“画面好就够了,我就是来逛风景的”,另一方坚持“游戏性才是核心,画面再好也只是截图好看”。两派在评论区争吵了超过四百层楼,最终话题滑向了那个已经扩散了两周的核心疑问:这款被工作室负责人描述为希望通过与世界的互动让玩家感受到自己如同英雄的游戏,到底是做给谁的。
十一月二十二日,项目管理组更新了风险清单的第十七版。第七条的状态从“依赖版本调整”改为“版本调整方案已提交,待评审”;第八条的状态仍然是“待定”;第九条的状态改为“已启动留任沟通,一人确认留任,两人仍在协商中”;第十条的状态没有任何变化,解决方案栏依然空白。
十一月二十五日,沈明远在网易互娱事业群的质量评审会上做了二十分钟的陈述。他没有回避风险清单上的任何条目,也没有用技术性措辞稀释问题的严重性。
他告诉评审委员会,《燕云十六声》在上线前夕面临的核心挑战,不是某个单一的系统缺陷或内容缺口,而是项目组在过去五年中做出的每一个关键选择,正在倒计时的压力下同时接受检验——关于历史真实性与游戏可玩性的取舍,关于核心受众与大众市场的定位,关于坚持与妥协的边界。评审委员会没有当场给出结论。主持会议的副总裁陈言在散会后单独留下了沈明远,问了两个问题。第一个问题是:“你的核心团队,还能撑多久。”
第二个问题是:“如果上线数据不好看,你的B计划是什么。”
沈明远回答了第一个问题——“至少撑过上线日。”第二个问题他沉默了几秒钟,然后说:“我们没有B计划。五年前立项的时候没有,现在也没有。”
陈言没有追问。他把风险清单的复印件折好放进公文包,拍了拍沈明远的肩膀,走出了会议室。
十一月二十八日,距离上线还有二十九天。网易大厦B座十七层的加班时长统计显示,项目组核心成员在过去四周内的平均周工作时长达到了七十六小时,超出公司规定的上限百分之二十。项目管理组在周报中标注了“人力资源风险”,但没有任何人因此减少工作时间。场景组的灯光师在连续加班三周后请了半天病假,第二天上午又出现在了工位上,因为开封城朱雀门的夜景灯光参数还没有调完。
十一月三十日,社区负面情绪指数再次上升,达到了科隆展以来的最高点。后台数据显示,关键词“割裂”的提及频率在过去一周内上升了百分之二百三十,关键词“节奏”的提及频率上升了百分之一百八十。运营组的舆情分析师在日报中写道:“用户对产品核心定位的困惑已经从核心社区扩散至泛用户圈层,预期管理窗口正在收窄。”
十二月一日,沈明远在项目管理组的周报上批了一行字——“所有系统性问题,上线前无法根治。上线后第一个版本周期内,按优先级逐条解决。当前任务是确保上线日不发生结构性崩溃。”
十二月三日,李想回复了那封猎头邮件。回复只有一句话——“项目上线后再谈。”他把邮件发送出去,然后打开开封城朱雀门的最终版贴图文件,将城门的铆钉数量从七十二颗调整为七十三颗——因为他在最新的考据资料中发现,朱雀门在五代时期的规格是单扇门四路钉,每路九颗,外加门楣装饰钉一颗。
十二月五日,陆辰的序章修改方案通过了内部评审。新方案的开场时长从二十分钟压缩到七分四十秒,历史背景的铺陈从CG过场改为可操作关卡,核心考据内容以碎片化文本的形式分散在关卡场景中。方案通过的那天下午,陆辰把最初那版被打了红叉的剧情分镜草图从沈明远的文件堆里找了回来,夹进了自己的笔记本里。
十二月十日,距离上线还有十七天。项目管理组更新了风险清单的第二十一版。第七条的风险等级从“极高”降为“高”,解决方案栏写着“序章修改方案已通过,等待版本集成测试”;
第八条的风险等级维持“高”,解决方案栏终于不再写着“待定”,而是一行小字——“运营组已启动社区预期引导专项,效果待观察”;第九条的风险等级从“极高”降为“高”,解决方案栏写着“核心岗位留任率回升至百分之七十”;第十条的风险等级依然是“极高”,解决方案栏依然空白。十二月十二日,网易互娱事业群的质量评审委员会给出了正式反馈。反馈文件只有一页纸,核心意见写在第三段——“项目组对产品核心定位的内部共识尚未完全达成,建议在上线后第一个版本周期内完成定位校准。上线版本以系统稳定性和内容完整度为优先,定位校准不影响首发上线评审结论。”
这份反馈文件被转发给了项目组全体核心成员。沈明远在转发邮件里加了一行批注——“先活过上线日。其他的,活下来再说。”
十二月十五日,距离上线还有十二天。加班时长统计显示,核心成员周均工作时长突破了八十小时。项目管理组在周报中用了“人力资源承压接近极限”的措辞。
同一天,社区舆情监控后台捕捉到一条新的趋势——关于“游戏可能跳票”的猜测开始在玩家社区中零星出现,虽然官方从未释放过任何延期信号,但玩家从官方近期的宣传节奏中嗅到了一种不同寻常的谨慎。十二月十八日,官方发布了一条新的预告视频,时长三分二十秒,内容是雁门关战场的实机演示。视频的质量很高,战斗系统的打击感、战场规模、光影效果都达到了项目组预期的最佳状态。评论区的前排回复终于出现了积极转向——“这个看着能打”、“战斗比想象中好”、“期待上线”。
但舆情分析师在日报中标注了一条提醒:“正面反馈集中在战斗系统,历史沉浸相关讨论热度持续下降。用户对产品核心卖点的认知正在从‘历史开放世界’向‘武侠动作游戏’偏移。这种偏移在上线后可能引发二次预期落差。”
十二月二十日,沈明远在最后一次全员上线动员会上没有做长篇发言。他把时间压缩到了十分钟,讲了三件事——第一,上线日的服务器压力测试已经通过了最后一轮模拟,技术侧不存在结构性风险;第二,序章修改方案的版本集成测试将在四十八小时内完成,所有已知的严重Bug已经清零;第三,上线后第一个月的工作重心是收集用户数据,根据数据反馈调整版本迭代优先级。
他没有提风险清单上的第十条。没有提那份至今空白的解决方案栏。没有提李想回复猎头邮件的那句话、陆辰夹进笔记本的那张分镜草图、社区后台那条仍在爬升的负面情绪曲线。
散会后,沈明远回到办公室,把风险清单的第二十一版锁进了抽屉。抽屉里还放着五年前那份立项评审会的会议纪要,封面上的标题是《燕云十六声——立项申请》,落款日期是2019年11月。他把两份文件并排放在一起,五年的距离在抽屉里只隔了几厘米的厚度。
十二月二十七日,上午十点,《燕云十六声》在PlayStation 5和Microsoft Windows平台同步上线。开服后第一个小时,同时在线人数突破了项目组预估上限的百分之四十。
服务器没有崩溃。支付渠道没有卡顿。客户端兼容性报错率低于千分之三。技术侧,上线日是成功的。
但那份锁在抽屉里的风险清单不会因为上线日的技术成功而自动失效。第七条、第八条、第九条、第十条——它们不是技术Bug,不是可以用热更新在二十四小时内修复的漏洞。它们是五年来每一个选择沉积下来的地层,在上线日这一天被同时揭开,暴露在数百万玩家的目光之下。
上午十一点零七分,第一条关于序章节奏的负面评价出现在社区。十一点二十九分,第二条。十二点十五分,第三条。下午两点四十分,“割裂”这个词重新回到了热搜关键词的前列。上线日还没有结束。裂缝刚刚开始承压。