第 14 章

内容饥渴

晨会刚过九点,沈明远推开会议室的门,手里捏着一份刚从打印机上扯下来的进度表。纸张还是热的。他把表摊在桌上,用食指点了点中间那片用红色标注的区域——那不是什么警告色,那是缺口本身的形状。

支线任务完成度百分之十二。可交互NPC实装数量四十七,目标一百八十。植被覆盖面积勉强达到规划的三分之一。而历史考据条目支撑的文本量缺口最大:道具描述、散落书籍、NPC对话,完成度不足一成。表格右下角的总计栏里,红色数字像一道还在扩大的裂缝,从纸面上往外渗。

陆辰坐在会议桌另一侧,面前摊着一本翻开的《宋史·地理志》,旁边是半杯凉透的咖啡。他没有看那张进度表。他不需要看,那些数字他在前一天晚上已经对着屏幕盯了三个小时。赵铮坐在靠窗的位置,椅子往后仰着,手指无意识地转着一支笔。许程没坐,他站在投影幕布旁边,双臂交叉,目光落在幕布上还残留着的上周版本对比图上——清河镇垂柳的两种精度方案,左边是原精度,右边是移动端削减后的版本。

许程先开了口。他的语气不算激烈,但用词很准。他提了一个新方案:恢复清河镇垂柳的原精度,但砍掉动态天气系统。垂柳是玩家进入游戏后看到的第一个标志性场景元素,它的视觉冲击力直接决定玩家对“宋画滤镜”的第一印象。动态天气系统在移动端的性能开销太大,而且大部分玩家在大部分时间里根本注意不到云层的变化。

赵铮把椅子放下来,往前探了探身。“动态天气不只是视觉,它影响战斗。雨天地面湿滑,角色翻滚距离会变长;雪天视野受限,远程武器的判定范围会收缩。这是战斗系统的一部分,不是单纯的美术装饰。”他说到“战斗系统”时,声音明显加重了。那是他的领地。

许程没有直接回应他,而是转向沈明远。“性能预算就那么多。要么保住一个核心视觉锚点,要么保住一套大多数玩家不会在意的天气机制。这不是美术和战斗的对立,这是资源分配的优先序问题。”

沈明远没有立刻表态。他把那张进度表往桌子中间推了推,让所有人都能看到那片红色。“垂柳和天气的问题下周全员会上再表决。但今天我要谈的不是一棵树或者一片云的问题。”他的手指重新落回进度表上,“我要谈的是这片红色。它不会因为我们在垂柳问题上达成任何妥协就自动消失。”

他直起身,目光扫过会议室里的每一个人。“过去四周我们解决了很多问题。战斗手感延迟修了,新手引导的碎片化逻辑保住了,移动端的性能优化也勉强达标了。但那些都是‘改’——是把已经存在的东西调到一个可接受的状态。现在我们要面对的是‘造’。造足够多的内容,填满二十平方公里的燕云地图。这不是设计理念的问题,这是生产管线的能力问题。而我们的管线,坦白说,还没有准备好。”

会议室里安静了几秒。空调出风口的嗡嗡声突然变得很清晰。

陆辰合上那本《宋史》,开了口。他的声音不高,但语速比平时快。“目前的支线任务模板要求每个任务至少包含三段NPC对话、两处环境叙事线索、一件有独立背景描述的道具,以及至少一处与主线或其它支线形成互文的文本节点。这个标准放在蔚州主线上是成立的,它确实产生了我们想要的那种碎片化但彼此呼应的叙事效果。但问题在于,这个模板无法快速复制。一个策划按照这个模板从头到尾做完一个支线,平均需要四天。我们需要至少八十个支线任务来覆盖整个地图。按现在的产能,光是支线这一项就要十个月。”

坐在陆辰斜对面的顾知远补充了一句。这位历史顾问平时在会议上发言不多,但每次开口都直接切中要害。他面前摊着一本《辽史·营卫志》,书页间夹满了彩色便签条。“目前每一条NPC对白在进入录制之前,需要经过我的考据审核。地名、官职、称谓、器物名称、当时的语言习惯——每一项都要核对。这个流程单条对白平均耗时四十分钟。如果支线任务数量翻倍,对白量会同步增长,我的审核时间也会线性增加。这不是加人就能解决的问题,因为熟悉五代史和宋辽关系史、同时又能理解游戏叙事逻辑的人,市场上没有现成的储备。”

许程从投影幕布旁走回来,在桌边坐下。“美术这边的情况类似,只不过瓶颈不在审核,在制作本身。一个符合宋画笔触标准的单体场景——比如一座中等规模的村镇院落,带完整的室内陈设和室外植被——从概念设计到最终在引擎里通过验收,目前需要六到八个工作日。这个标准是我们在蔚州阶段定下来的,确实产生了很好的视觉效果,但可复制性很低。每一个场景都有大量的手调工作,从瓦片的排列方式到墙面剥落的位置,都需要美术人员逐一手动调整。程序化生成工具可以铺大面积的植被和地形,但一旦进入建筑和人工构筑物的范畴,程序化产出的结果和手调版本之间的品质落差非常明显。”

沈明远走到投影幕布前,把上周的版本对比图关掉,打开了一个新的文件夹。幕布上出现了两张并置的引擎预览截图。左边是一棵手绘的银杏树,树干纹理清晰,叶片边缘带着刻意保留的笔触痕迹,树下的石凳上刻着半首磨损的诗。右边是同一位置的程序化生成版本——树是标准的银杏模型,叶片排列均匀,石凳干净得像刚出厂。

“这是技术美术组做的对比测试,同一个坐标点,同样的光照条件。手绘版本的成本是程序化版本的十七倍。”沈明远停顿了一下,用激光笔圈出左边那棵银杏树下方的地面,“玩家未必能说出这十七倍的成本花在了哪里。他们只会感觉到左边那个场景有味道,右边那个场景像模版。”

陆辰说:“那我们就应该让所有场景都有味道。”他的语气不像是在反驳,更像是在陈述一个他明知无法实现的标准。

沈明远的回答很干脆:“做不到。按照目前的场景制作标准,要在预定时间内填满整个地图,美术团队需要再扩编一倍。而我们的编制是锁死的。”他没有展开解释编制为什么锁死,在座的人都知道原因——《燕云十六声》在网易内部的项目优先级是B级,B级项目能拿到的资源上限就摆在那里,这不是沈明远能突破的天花板。

赵铮把笔放在桌上,往前坐了坐。“我说一句可能不太中听的话。玩家在开放世界里的大部分时间,不是在欣赏场景,是在跑图。他们从A点跑到B点,中间经过的那些树、那些石头、那些野花,在他们的认知里是环境,不是内容。花十七倍的成本去做一棵他们不会停留超过两秒的树,这个投入产出比本身就不成立。”

陆辰的声音冷了下来。“那要看怎么定义‘内容’。如果认为只有触发战斗、完成任务、获取奖励才算内容,那确实,一棵树不重要。但如果认为沉浸感本身就是内容的一部分——玩家在跑图时偶然看到一棵姿态奇特的古树,树下有一块残碑,碑上的文字隐约指向某个已经消失的村落——这种东西构成了他们对这个世界的信任。信任不是靠任务列表建立起来的。”

赵铮回了一句:“信任是靠帧率建立起来的。移动端锁三十帧,这是硬指标。一棵十七倍成本的树在移动端上跑,帧率会掉多少,你算过没有?”

许程插进来,试图把话题拉回他的方案。他再次提议砍掉动态天气,把性能预算留给更重要的视觉元素。

沈明远打断了他。他的声音不高,但会议室立刻安静下来。他走到桌边,拿起那张进度表,把有红色缺口的那一面翻过来对着所有人。“争论品质和成本的平衡是必要的,但我们今天面临的问题比这个争论本身更紧迫。进度表上的红色缺口意味着,按照目前的产能,我们在下一个里程碑节点之前,无法交付一个内容密度达标的地图。这不是品质高低的问题,是数量够不够的问题。一个开放世界如果大部分区域是空的,再好的战斗系统、再精妙的叙事结构,都撑不起来。”

他把进度表放下,走回投影幕布前,调出了一份新的文档。那是一份“支线任务快速生成模板”的草稿,标题下方标注着“V0.1 内部讨论版”。文档的结构很简单:左侧是一列任务类型下拉菜单——“寻物”“送信”“清剿”“护送”“调查”;中间是历史背景标签库,从“五代十国时期”到“宋辽边境”再到“地方传说”,每个标签对应一组预设的文本素材;右侧是奖励配置选项。整个模板的逻辑清晰得近乎粗暴:策划在左侧选择任务类型,在中间勾选适用的历史标签,在右侧设定奖励数值,系统自动生成一个可用的支线任务框架。

“这是上周我让系统策划组做出来的东西。它的设计目标是,将一个支线任务的平均制作周期从四天压缩到六个小时。”

陆辰盯着那份文档看了很久。他的表情没有明显变化,但放在桌上的那只手,手指慢慢收拢了。他问:“这个模板生成的支线任务,还有留白和互文吗?”

沈明远承认:“没有。它生成的是一个标准化的任务单元。玩家接到任务,去指定地点,完成指定动作,回来交任务,拿到奖励。NPC对话会被压缩到两到三句,道具描述会使用预设的通用文本,不会和主线或其它支线产生深度关联。”

陆辰说:“那它就是孤立的。意义稀薄。”

沈明远看着他,回答:“是的。但它可以填满地图。而且玩家在完成这些任务的过程中,至少能获得基本的成长资源和经验值。对于那些不追求叙事深度、只想要一个有事可做的开放世界的玩家来说,这已经足够了。”

陆辰反问:“足够什么?足够让他们觉得这个世界是活的吗?”

沈明远的回答很平静:“足够让他们不觉得这个世界是空的。我们不是在讨论理想状态下的最佳方案,而是在讨论,在资源上限锁死、时间表不可更改的前提下,如何让燕云地图在玩家眼中是一个完成了的世界,而不是一个还在施工中的世界。这些标准化的支线任务是注水内容,但注水内容至少是内容。一片空地不是。”

会议在十一点半结束。没有形成最终决议,但方向已经清晰了。沈明远要求各组在三天内提交各自领域的内容生产提速方案,包括具体的工具需求、流程调整和品质底线的重新定义。他说“重新定义”这四个字的时候,语气里有一种很淡的、刻意压平的疲惫。

散会后,陆辰没有立刻离开。他坐在会议室里,面前那本《宋史》还翻在刚才那一页。顾知远收拾好桌上的书和便签条,走到门口时停了一下,回头看了他一眼。

“那个快速生成模板如果真按那个逻辑跑起来,”顾知远说,“我从《宋史》《辽史》里批出来的那些人物和事件,大部分都会被简化成标签。标签是没有上下文的。”

陆辰点了点头,没有接话。他知道顾知远说的是对的。过去几个月,历史考据组从典籍中批量提取了上百个可用的事件原型和人物素材——边关贸易纠纷、地方宗族械斗、流民迁徙路线、寺院田产争端。这些素材原本被设计为支线任务的叙事锚点,每一个都带着具体的时代背景和社会关系网络。但如果套进那个快速生成模板,它们就会被压扁成“送信”“调查”“清剿”的变体,背后的历史肌理在标准化流程中被稀释殆尽。

他站起来,把《宋史》合上,走出了会议室。

下午两点,陆辰去了文案组的工位区。这片区域和他上次来时相比,变化不大——每个人的桌上都堆着书,《宋史》《辽史》《五代会要》《资治通鉴》,有的翻开着,有的夹满了便签条。但今天多了一样东西:每张桌子的角落都放着一份打印版的“支线任务快速生成模板V0.1”。

文案组长周濛正对着屏幕,在引擎编辑器里调整一段NPC对话的文本位置。她看到陆辰过来,摘下耳机,指了指桌上那份模板。

陆辰拉过一把椅子坐下。周濛说:“我试着用这个模板跑了一个样本。”她在屏幕上打开了一个文档:任务类型选“调查”,历史标签选“宋辽边境”,奖励配置用默认值。系统生成了一个任务框架——玩家在边境村落接到任务,调查附近山谷里可疑的商队活动,发现商队实际上是辽国探子伪装的,击败探子后回去交任务。全程三段对话,两场战斗,一件通用道具。

“历史质感呢?”陆辰问。

周濛没有直接回答,而是打开了另一个文档。那是她之前按照原始模板手写的一个支线任务方案,同样发生在边境村落,同样涉及可疑商队。原始版本里,商队贩卖的是辽国禁止出口的铁器,他们的接头人是村里一个因为欠了赌债被胁迫的铁匠。铁匠的妻子知道内情但不敢说,玩家需要通过环境线索——铁匠铺里多出来的辽国钱币、妻子晾衣服时刻意避开邻居的眼神——来拼凑真相。任务完成后,铁匠被带走,他的妻子会在后续另一个支线里出现,变成了一个沉默的、不再和任何人交谈的NPC。

她切回那个快速生成版本。“这个版本里,商队就是辽国探子,探子就是敌人,敌人就是战斗,战斗就是完成。没有铁匠,没有妻子,没有后续。”

陆辰看着两个文档的对比,沉默了一会儿。他问:“这个模板是谁主导设计的?”

“系统策划组,沈明远直接下的需求。他们上周三开始做,周五出了V0.1。效率很高。”

陆辰重复了“效率”这个词,声音里有一种很克制的苦涩。

同一时间,在美术组的工位区,许程正在和技术美术林铮看一组引擎内的对比测试结果。屏幕上并排跑着两个版本的燕云地图局部——一块约两平方公里的区域,包含一段长城残墙、一片河谷和三个小型村落。左侧版本是纯手调场景,右侧版本引入了程序化生成工具辅助铺设植被和地形,但建筑和核心场景仍由手调完成。

林铮指着右侧版本的数据面板。“植被覆盖率上去了。这版用了程序化生成来铺草地、灌木和远景树木,效率提升了四倍。近距离的乔木和标志性树木还是手调的,所以核心视觉区域没有明显降级。但问题出在过渡带。”他放大了画面中手调区域和程序化生成区域的交界处。在一片手绘的松树林和程序化生成的草地之间,过渡很不自然:松树的阴影落点突然中断,草地的密度从疏到密的变化缺乏手调版本中那种经过设计的节奏感。

许程问:“这个过渡带玩家在跑图时会注意到吗?”

林铮说:“取决于他们的移动速度。如果是步行,可能会感觉到这片区域有点怪。如果是骑马或者快速传送,大概率注意不到。”

许程说:“那就先这样。过渡带的问题后续再调。优先级是把植被覆盖率提上去。一块空地比一块过渡不自然的草地更致命。”他说这句话的时候语气很平,像是在陈述一个已经被反复验证过的工程结论。

但站在他旁边的另一个美术组成员,一个负责场景细节的年轻女孩,嘴唇抿了一下。她花了两周时间手调了左侧版本里那片松树林——每一棵树的姿态、每一块岩石的位置、林间小径的弯曲程度,都是她一棵一棵、一块一块调出来的。现在那些树被保留下来了,但它们周围的草地和灌木变成了程序化生成的统一材质,像一块绿色的地毯从松林边缘铺开,整齐、干净、没有性格。她没有说什么,只是把视线从屏幕上移开了。

接下来三天里,各组提交的内容生产提速方案陆续汇总到沈明远的桌上。系统策划组提出了支线任务快速生成模板的V0.2版本,增加了更多历史标签选项和对话变体,但核心逻辑没有变——标准化、模块化、牺牲深度换速度。美术组提出了“分层手调”方案:将场景分为核心层、过渡层和填充层,核心层保持全手调标准,过渡层采用手调加程序化辅助,填充层以程序化生成为主,仅对关键视觉锚点进行手调修正。文案组提出了“文本分级”制度:主线剧情和核心支线的文本保持全额考据审核,边缘支线和通用道具描述使用预审过的文本模板库,不再逐条审核。

每一份方案都指向同一个方向——在品质和数量之间划出一条妥协线。

周四下午,沈明远把三份方案摊在桌上,和许程、陆辰、赵铮开了一个小范围的碰头会。会议室里没有开投影仪,桌上只有几份打印文件和三个杯子。

沈明远说:“方案本身没有大问题,但有一个后果我们需要提前想清楚。”他指了指文案组的文本分级方案,“按照这个方案跑下去,三个月后,燕云地图上会有大约百分之六十的支线内容使用标准化模板生成。这些内容在功能上是完整的——玩家可以接任务、做任务、拿奖励。但在叙事品质上,它们和那百分之四十的核心内容之间会有一条肉眼可见的鸿沟。”

陆辰抬起头:“肉眼可见?”

“我的意思是,玩家能感觉到。”沈明远说,“一个在蔚州主线上花了四十个小时、沉浸在碎片化叙事里的玩家,当他走进一片由标准化模板填充的区域时,他会突然发现NPC的对白变短了,道具描述变泛了,任务之间的关联消失了。他不会知道我们内部用了什么模板、做了什么妥协,但他会感觉到——这个区域没味道。”

赵铮问:“然后他会怎么做?”

“他会跑过去,快速清完任务,拿完奖励,然后回到核心区域。或者更糟——他会觉得这个游戏后面水了,然后在社区里说出来。”

会议室里沉默了几秒。

许程开口:“但如果我们不用这些模板,三个月后他连‘后面’都没有。地图上会有大片的区域根本没有内容,他跑过去只能看到树和石头。那他在社区里说的话会更难听。”

这是一个死结。

陆辰靠在椅背上,眼睛看着天花板。他的表情很复杂——不是一个被击败的人,而是一个清楚知道自己正在做出什么选择、并且知道这个选择会带来什么后果的人。他终于开口,视线回到桌面上:“我只有一个要求。核心的那百分之四十,标准不能降。蔚州主线的叙事密度、碎片互文的结构、每一件道具背后的历史依据——这些是我们最初向玩家承诺的东西。如果连这些也妥协了,那我们就不是在做一个有历史质感的开放世界,只是在做一个有古装皮肤的标准开放世界。”

沈明远点了点头。“核心区域的标准不动,这一点我可以在下周全员会上明确。”

许程问:“移动端的性能预算呢?垂柳和动态天气的问题还没定。”

“那个问题下周全员会上一起表决,但方向已经清楚了——我们必须做取舍。不是在一棵树和一片云之间取舍,而是在精工细作的少数内容和标准化的大多数内容之间取舍。这个取舍一旦做出,燕云十六声的内容结构就会定型。之后想要再调整,成本会非常大。”沈明远说这句话的时候,语气里有一种很淡的、被压得很平的警觉。像是在提醒在座的人,又像是在提醒自己。

碰头会在下午五点结束。陆辰走出会议室,回到自己的工位。桌上那本《宋史》还在,旁边多了一摞新打印出来的文档——那是文案组根据文本分级方案整理出来的“预审文本模板库”第一版。他翻了几页。每一页都是一个标准化的文本模块:通用道具描述、通用NPC问候语、通用任务完成语。每一条都经过了顾知远的考据审核——用词符合宋代语境,称谓没有穿越,器物名称准确。但每一条都没有具体的指向。它们可以被插入任何地点、任何NPC、任何任务中,像预制件一样严丝合缝,也像预制件一样没有面孔。

陆辰把文档放下,打开了自己的工作文件。屏幕上是他正在写的蔚州主线第三章的剧本。这一章的故事发生在一座边境寺院里,寺院的住持暗中为辽国传递情报,但传递的方式不是传统的密信,而是通过寺院每日晨钟的敲击次数——钟声的数量对应不同的军情信息。这个设计来自顾知远从《辽史》中找到的一条记载:辽国曾在边境寺院中安置“钟谍”,以钟声为号传递军情。陆辰花了两天时间把这条记载编织进主线叙事里,让钟声的节奏成为玩家解谜的关键线索,同时让住持这个角色在僧人和间谍的双重身份之间保持着一种刻意的模糊——玩家直到任务最后都不能确定,他敲钟时心里想的是佛还是辽。

这就是碎片化叙事的核心:不直接告诉玩家答案,而是把线索分散在环境、道具、对话和玩家的观察中,让他们自己去拼凑。这种叙事方式的沉浸感极强,但它的代价也很明确——它需要大量的、彼此关联的、有具体指向的文本支撑。一个钟谍的故事背后,是寺院布局、钟楼结构、辽国军情传递体系、宋代边境寺院的政治处境等一系列考据工作的累积。而这个模式,无法在六个小时内复制。

陆辰把剧本往下翻了一页,开始写下一场戏。他的手指在键盘上敲得很快,节奏稳定,像是一个已经做出了决定、不再回头的人。

周五上午,沈明远在全员会上正式宣布了内容生产提速方案。他站在会议室前方,背后是投影幕布,上面显示着三组方案的要点摘要。他的语速不快,但每一条都说得非常明确。

支线任务将分为核心支线和标准支线两个等级。核心支线保持现有的手写模板和考据审核流程,标准支线采用快速生成模板。核心支线与标准支线的比例大约为四比六。场景制作将分为核心层、过渡层和填充层三个等级。核心层保持全手调标准,过渡层采用手调加程序化辅助,填充层以程序化生成为主。文本资产将分为全额审核和模板审核两个等级。主线剧情和核心支线文本保持全额考据审核,标准支线和通用道具描述使用预审文本模板库。

他每说一条,台下就有人低头记笔记,或者抬头看幕布上的要点。没有人打断他,也没有人提出激烈的反对意见。四周前那次关于战斗手感和新手引导的激烈争论似乎已经耗尽了大家的情绪储备,此刻会议室里的气氛不是认同,而是一种疲惫的、务实的接受。

但争议并没有消失,它只是转移了战场。

许程在沈明远讲完之后站了起来。他提了一个具体的问题:清河镇垂柳的精度和动态天气系统的取舍,建议在这次会议上表决。他的方案不变——恢复垂柳原精度,砍掉动态天气。理由也不变:垂柳是玩家进入游戏后的第一个视觉锚点,它的品质直接定义玩家对整个游戏美术水平的第一判断;动态天气系统在移动端的性能开销太大,而且对大多数玩家的体验影响有限。

赵铮立刻接上了。他还是反对。动态天气影响战斗系统的完整性。如果砍掉天气,雨天的地面反馈、雪天的视野限制、风天的远程弹道偏移,这些全部要重新设计。这不是砍掉一个美术效果,是砍掉战斗系统的一条腿。

许程走到投影幕布前,调出了一组数据。上一次移动端性能测试的结果显示,动态天气系统在移动端上的平均帧率开销是每秒四到五帧。在场景复杂度较高的区域——比如清河镇这种有大量建筑和植被的城镇场景——这个开销会上升到每秒六到七帧。移动端锁三十帧,七帧的波动意味着在天气切换时,帧率可能掉到二十三帧以下。这是肉眼可见的卡顿。

赵铮反问:“垂柳原精度呢?”

许程回答:“垂柳本身的开销不大,但它是场景入口的视觉锚点,它周围的环境——水面反射、光影交互、风吹叶片的动态效果——这些加起来也有三到四帧的开销。但垂柳是静态的,它不会像天气系统那样在运行时持续消耗性能。它的成本是一次性的,天气的成本是持续的。”

沈明远没有打断他们的争论。他站在一旁,让两个人把各自的数据和逻辑都摊在桌上。等到双方都说完之后,他才开口:“表决吧。”

表决的结果是五比三,许程的方案通过了。动态天气系统被砍掉,清河镇垂柳恢复原精度。赵铮在结果宣布之后没有说什么,只是把面前的笔记本合上,往后靠在椅背上。他的表情不算愤怒,更像是一个在牌桌上输了一局、但知道牌局还远没有结束的人。

会议结束后,沈明远回到自己的办公室。他把那张进度表重新拿了出来,在“动态天气系统”那一栏旁边用笔写了一个字——“砍”。然后在“清河镇垂柳精度”旁边写了“恢复”。最后他在整张表的右下角,那片红色缺口的位置,画了一个圈。

那个圈没有缩小。

他知道这是为什么。垂柳和天气的取舍,解决的只是一个具体的性能预算争议。但进度表上的红色缺口,根源不在性能预算,在生产管线的结构性瓶颈。支线任务快速生成模板可以把制作周期从四天压缩到六个小时,但它产出的内容在叙事深度上打了折扣。程序化生成工具可以把植被覆盖率提上去,但它在过渡带留下的品质落差会在后续测试中被玩家感知到。预审文本模板库可以让文案组的产出速度翻倍,但它同时也在燕云世界里埋下了大量没有面孔的文本——那些通用道具描述、通用NPC问候语、通用任务完成语,会在玩家眼中逐渐累积成一种模糊的、难以言说的廉价感。

这些妥协的后果,现在还没有完全显现。但它们会在接下来的版本中一层一层地浮现出来,像水下的暗礁,等着船只驶过。

下午,陆辰去了顾知远的办公室。那间办公室不大,靠墙的书架上塞满了书——《宋史》《辽史》《五代会要》《资治通鉴长编》《太平寰宇记》,还有一些更专门的著作,《宋代官制辞典》《辽代地理志汇释》《五代十国方镇年表》。桌上摊着一本翻开的《宋会要辑稿》,旁边是一叠便签条和一支红笔。

顾知远正在看一份文案组提交的预审文本模板。他抬起头,摘下眼镜,揉了揉眼睛。“这批模板我审完了。用词都合规,称谓都准确,器物名称都没问题。但你知道问题在哪里吗?”他指了指其中一条通用道具描述——“一件来自北方边境的旧物,上面残留着战火的痕迹”。“这条描述可以被用在任何一件道具上。一把刀、一面盾、一个酒壶、一块布。它没有错,但它也没有意义。玩家读完它,不会对这件道具的来历产生任何好奇,不会联想到任何具体的历史事件,不会觉得这个东西背后有一个故事。”

陆辰说:“但它合规。”他的语气里有一种很淡的讽刺。

顾知远把眼镜重新戴上。“对,它合规。这就是我们现在的标准。合规。不是有历史质感,不是能触发互文联想,不是让玩家觉得这个世界是真的。是合规。用词没错,称谓没错,器物没错。这就是及格线。”

他合上那本《宋会要辑稿》,靠在椅背上。“我花了三个月从典籍里提取了上百个事件原型。边关贸易纠纷、寺院田产争端、流民迁徙路线、地方宗族械斗。每一个都有具体的时间、地点、人物和社会关系背景。现在这些素材大部分会被塞进快速生成模板里,变成‘送信’‘调查’‘清剿’的变体。那些具体的背景会被简化成标签,那些复杂的社会关系会被压缩成任务描述里的一两句话。我不是说这样做不对——我知道管线压力有多大。我只是说,如果我们自己都觉得这些内容没味道,玩家会感觉不到吗?”

陆辰没有回答。他站在书架前,目光扫过那些书脊上的书名。窗外是杭州三月的天空,灰白色的云层压得很低,像是要下雨但一直没有下。

同一时间,在引擎测试室里,林铮正在跑一组新的对比测试。屏幕上同时运行着两个版本的燕云地图局部——同一块区域,左侧是两周前的手调版本,右侧是引入了程序化生成和快速模板之后的新版本。新版本在数据面板上的表现更好:植被覆盖率提升了百分之四十,可交互NPC数量增加了两倍,支线任务密度达到了规划目标的百分之七十。

但当你用肉眼去看的时候,差异就浮现出来了。手调版本里,每一个村落的布局都有独特的逻辑——铁匠铺靠近水源,因为打铁需要水;谷仓建在地势较高的地方,因为要防潮;村口的老树下总有一两块磨得光滑的石头,因为那是村民世代坐着聊天的地方。新版本里,村落是按模块拼接的——铁匠铺、谷仓、民居、水井,像积木一样按照预设的规则排列,整齐、合理、毫无意外。

林铮把两个版本的截图并排放在屏幕上,看了很久。然后他关掉了对比窗口,在测试日志里写了一行字:程序化版本在功能指标上全面达标,品质落差集中在场景叙事层面,具体表现为空间布局的去性格化。

他没有写结论或建议。那不是他的职责。他的职责是把数据跑出来,把对比做清楚,然后把结果交给能做决定的人。

能做决定的人此刻正在他的办公室里,对着那张红色缺口依然刺眼的进度表,思考一个他暂时还没有答案的问题。

沈明远知道,内容生产提速方案落地之后,燕云地图会在接下来的三个月里被快速填充。支线任务的数量会达到规划目标,植被覆盖率会达标,可交互NPC的密度会满足开放世界的基本要求。从项目管理的角度看,进度表上的红色会被一片一片地抹掉,变成绿色。

但他也知道,那些被快速填充进去的内容,有相当一部分是注水的。它们的品质和蔚州主线上那些精工细作的内容之间,存在着一条不可回避的鸿沟。这条鸿沟在内部测试中可能不会被完全暴露——内部测试的样本量太小,测试者的注意力往往集中在核心玩法上。但当这个版本被交付给更大规模的用户测试时,当那些沉默的多数玩家涌入燕云世界,他们会在意那些被稀释的历史细节吗?他们会注意到那个没有铁匠妻子的边境村落、那片过渡不自然的松林边缘、那些合规但无味的道具描述吗?还是会像赵铮说的那样——他们从A点跑到B点,中间经过的一切只是环境,不是内容?

沈明远把进度表翻过来,在背面写了几行字。他的笔迹很潦草,只有他自己能辨认。写完之后他把笔放下,靠在椅背上,看着窗外。

三月的杭州,天终于下雨了。雨点打在窗户上,声音很轻,像有人在远处敲一面很小的鼓。窗外的城市轮廓在雨幕中变得模糊,那些高楼和街道失去了清晰的边界,融成一片灰色的、潮湿的、没有细节的剪影。有点像引擎预览窗口里,那片由程序化生成工具铺出来的、整齐而缺乏性格的草地。