第 37 章

引擎废墟上的手工作坊

2023年,召回信有的已经送达,有的还在路上。人们已经知道,原先那条笔直的路不再存在。就在这种认知像裂纹一样扩散时,另一组数字仍在提醒所有从业者:标准化的工业管线依然可以稳定地产出成功。

《仁王》在发售后获得了多数媒体的好评。游戏的PlayStation 4版本在Metacritic网站上得到88分,Windows版本得到84分。全球累计出货量在2019年2月超过250万份,到2020年2月又越过300万份。

这部由光荣特库摩旗下Team Ninja与涩泽光团队开发的作品,从2004年初次公布到2015年东京游戏展重新亮相,再到2017年正式发售,走的是一条漫长但可辨认的道路:使用成熟的商用引擎,瞄准明确的主流平台,把动作角色扮演的框架与黑暗战国背景严丝合缝地接合起来。它的成功没有悬念,没有断裂,只有一条被验证过的生产管线在正确轨道上匀速推进的节奏。

这种成功一度被视作游戏开发的标准注脚,证明只要执行到位,工业体系就能兑现预期。镜头转向另一侧。

在同一年代,另一群人正从那条标准轨道上离开。他们没有聚集在灯火通明的零售店门口,没有出现在主流平台的销售排行里,甚至没有进入大多数行业观察者的视野。

他们散落在各自的工作台前,面对着截然不同的界面:一块分辨率极低的旧式掌机屏幕,一段由自己维护的轻量框架代码,一张等待写入只读存储器的卡带。这些物件没有《仁王》包装盒上的暗金色光泽,没有Metacritic分数的确定性,也没有三百万份销量的累积节奏。它们似乎属于已经过去的年代。

但正是在那个年代,虚幻引擎与Unity在2019年之后进一步把“可制作性”标准化为一种工业默认值,资产管线、物理模拟、光照方案、在线服务、跨平台适配被整合成几乎全包的工具集。游戏开发的门槛被大幅降低,更多人可以进入这个行业。

工具内部的偏好也悄悄变成了行业内部的偏好。引擎优化什么,大家就做什么;引擎顺手支持什么,大家就默认什么;引擎的教程怎么写,新人的第一行代码就怎么起。标准化从来不只是效率问题。

标准化也是审美问题,是权力问题,是“什么值得做”的问题。当引擎的默认设置开始替制作人回答这些问题时,一部分人从那条宽阔、明亮、保养良好的大路上拐了出去。他们主动选择“不用主流引擎”。

这个选择不是技术保守,不是对旧时代的多愁善感,而是对更早时期引擎教义分裂的一次实践回应。工具选择背后早已积累起一系列尖锐矛盾:商业与创意、开放与控制、效率与表达。这些矛盾在商用引擎的每一次版本更新中被反复折叠,最终把一部分制作者逼到了一个简单而费解的起点:如果便利本身已经变成一种规训,那么坚持某种不便,是否反而能够保住最后一点操作空间?

这个起点带着巨大的前期投入。自研工具意味着要面对数不清的琐碎问题:资源管线怎么搭、画面如何渲染、输入怎样处理、音频如何同步、不同硬件之间怎么适配。每一层都要人亲自去摸清楚。

效率上的劣势是绝对的、可以量化的。一个在Unity里几天就能完成的原型,在自研框架里可能要花费几周甚至几个月。

任何正常计算成本的人都会问:为什么要这样做?答案藏在限制本身。当一个人不再使用那套全包的工具集,他首先失去的是便利,但随后重新获得的,是边界的可见性。

以那些为旧式掌机制作原生格式作品的开源工具为例,它们面对的是一个被硬件锁死的世界:低分辨率、极少的色彩数量、有限的精灵容量、压缩到极致的音频通道。在这些条件下,每一个像素都必须是一个决定。色彩之间的过渡本身就承载叙事含义。一段旋律的出现或消失,不再只是背景声音的取舍,而可能构成整个场景的情绪支点。

在主流引擎中,这些限制都被抹平了。你可以调整抗锯齿,可以调用整个色域,可以在音轨中叠加任意数量的层次。限制被抹平之后,决定也被抹平了。什么都可以做的时候,做什么就不再是一个必须被认真回答的问题。效率提高了,但选择的分量变轻了。

工具替你消化了复杂度,同时也替你删掉了那些原本会迫使你直面自己意图的时刻。

自研工具和旧式硬件之所以被这些制作者选中,恰恰是因为它们拒绝替人做那些决定。

它们把复杂度摆回桌面,逼着制作者重新去问:我究竟要表达什么,而这些材料又允许我表达什么。技术限制因此不再只是障碍,它变成了游戏规则的边界。主动接受限制,反而让表达有了形状。

这是一种古怪的逆转。在主流叙事里,技术进步意味着表达手段的增加,意味着自由的扩大。但在这条反向路径上,一群制作者发现,当手段增加到一定限度之后,自由也可能变成一种负担。选择太多,决策成本骤增,表达反而涣散。

而一个被老旧硬件或轻量自研工具框定的空间,虽然狭小,却足够具体。它的限制清晰可辨,制作者必须在其中找到一条可行的路。

这种寻找本身重新产生了作者性的痕迹。痕迹不在引擎提供的高级功能里,而在那些被工具逼迫出来的排除与坚持中。

一个场景为什么只用两种灰阶,一个交互逻辑为什么放弃更直接的实现方式,一段代码为什么绕开现成的物理库而手写碰撞检测——这些决定在商业引擎中可能根本不出现,因为引擎已经替你把最优解准备好了。最优解很好,但它不是你的。

它属于引擎的开发者,属于写下那一行行底层代码的人,属于定义默认参数的人。制作者虽然使用了它,却不一定理解它,更不一定在其中看见自己的判断。手工作坊式的退却,从表面看是放弃了速度,实际上是要从最优解手中夺回判断权。

这种夺回不只是心理安慰。它有具体的物质后果。当作品以卡带、ROM和专用掌机为载体时,它重新拥有了物理形态。一张卡带被插进一台旧掌机,游戏开始运行。这个动作不经过任何平台橱窗,不进入订阅服务的统计,不被算法排序,也不弹出评分气泡。它发生在作品与玩家之间,中间没有推荐引擎、没有商店页面、没有“猜你喜欢”。

物理形态在这里承担了一种抵抗功能:它让作品无法被轻易地折叠成数字货架上的一个缩略图。一个缩略图可以被无限复制,可以被后台重新排序,可以在平台变更条款时突然消失。但一张卡带不同。它有自己的重量、厚度、表面纹理。它占据了空间,要求被插入某个具体的机器,要求玩家用身体去完成一次操作。

这种物理层面的存在,对抗的正是平台橱窗日益严重的失明。当数字分发平台用无尽的内容流吞噬每部作品的独立面目时,卡带和专用掌机至少保留了一个最低限度的确定性:作品就在这里,它没有被混入同一片列表,没有被压缩成一场促销活动的备用商品。它被一个人从桌上拿起,递到另一个人手中。这个传递方式的改变,不只是怀旧趣味,也是一次对数字过滤的顽强抵抗。

抵抗并不孤独。这些制作人之间形成了一个松散但持久的协作网络,其基础不是公司合同,也不是平台分发协议,而是他们共同选择的“不兼容”。选择自研工具的人,必须在网上寻找同样为那个旧硬件或那条轻量框架写作的人。选择复古硬件的人,必须依赖与自己共享技术框架的少数同行的文档。这个共同前提把他们聚在了一起。

版本管理平台的提交历史显示,维护者长期进行着琐碎而持续的修改,提交说明往往只有寥寥几个词,用于标记一次缺陷修复、一处背景层优先级的调整,或者一个渲染逻辑的细微改动。这些记录单看毫不起眼,甚至有些顽固。

但把它们拼在一起,一层累积一层,就变成了一部微型的技术史。一个人从对某个硬件特性一无所知,到逐步摸索出一套可行的绘制方案,再到把这段思路整理成文档,让下一个人能在几小时内理解他花了几周才弄明白的东西。这个链条不通过商业公司运转,不产生销售面板上的数字,甚至不一定要走向完成。但那些写进注释里的思路,会变成另一个人起点的地基。

线下同样如此。在一些小型展会的角落,复古游戏集会的展示桌上,常常同时摆着自制卡带和打印出来的电路图。与会者围在桌旁,讨论烧录速度、边缘扫描、制版批次这些在主流游戏论坛里可能被自动折叠为“技术分支”的话题。这些话题不性感,也不适合放在发布会的大屏幕上。但它们构成另一种交流方式:作品不是被算法推荐给一百万人的,而是被一个人在桌子前亲手递到另一个人手里。

工作坊、小型聚会、开源社区的问答页面,这些场域的共同点是它们不要求作品为了被发现而改变自己的面貌。它们允许一部用旧硬件写成的小品,以它本来的样子存在。

这种协作网络不以商业发行为唯一目标,甚至不以发行为首要目标。它的目的首先是让制作者之间的知识能够流转,让一个人摸索出来的路子不被埋没在庞大的引擎文档和商业论坛的噪声里。这种网络虽然松散,却在很大程度上决定了这些手工作坊能否持续。没有它,每一个选择“不兼容”的人都会独自面对整个工业体系的沉默。

沉默并非没有理由。一种最常被提起的反方解释是:游戏史的演变更多地取决于技术平台、商业周期和玩家社群等结构性力量,制作人仅作为执行者,其个人作用被夸大。按照这种看法,这一群在引擎边缘工作的人,不过是在技术周期的缝隙中捡拾碎片,既没有改变平台,也没有改变市场,更不能被称作真正意义上的作者。他们没有创造出新的文件格式,没有颠覆分发制度,没有赢得大规模受众。他们的作品销量小到可以忽略,他们的工具影响力局限在几个论坛板块,他们的协作网络在更广的产业版图中几乎不可见。

如果他们只是执行者,那么所谓作者性也不过是一种自我感动。这个解释抓住了许多事实。

但它忽略了最要紧的一点:这些人恰恰是在拒绝执行。他们并非没有能力使用主流引擎,真正的问题在于,当他们使用主流引擎时,他们的个人判断会被淹没在工具的默认偏好里。他们的“不兼容”不是被动地适应环境,而是主动地改变自己与工具之间关系的行为。行为一旦发生,就不能被还原为结构性力量的简单结果。

一个制作者选择在低分辨率下用两种灰阶完成一个场景,这不是平台要求,也不是市场要求,而是他自己的选择。这个选择会影响他后续所有的工作:他要如何设计规则,如何组织视觉,如何把玩家的注意力引向某个特定的交互节点。结构力量可以解释为什么主流引擎会占主导,可以解释为什么数字平台会失明,可以解释为什么商业周期会压迫小规模制作者,但它无法解释为什么在所有这些压力之下,仍有人愿意花几周时间去解决一个旧式音频通道的同步问题。这个“为什么”恰恰是作者性所在。

作者性并不需要表现为对行业走向的颠覆。它可以表现为一个人在自己的作品里留下了什么,也可以表现为他拒绝留下什么。

在这条手工小径上,制作者通过自研工具和复古硬件,把技术限制转化为表达优势,用物理形态抵抗数字过滤,并在一个不以商业发行为唯一目标的协作网络中维持着判断的持续在场。这种做法没有改变平台,没有改变引擎市场,但它改变了这些人自己与游戏的关系。对于一部群像传记而言,这就足够构成一节有意义的记录。

不过,这条小径上有一个裂缝,而且裂缝在2021到2022年间越拉越大。当一个用复古硬件开发的作品获得小众成功后,制作者会突然面对一个尖锐的问题:要不要放大?如果一段用旧式调色板绘制的叙事片段在社交平台上被关注,或者一张自制卡带在展会后的交换圈子卖出几百份,制作者很快就会发现,围绕作品生长的期待开始超越手工网络本身。有人希望它在更多设备上运行,有人希望它适配商业引擎以便登上更大的数字商店,有人带着资金和发行方案找过来。这个时刻没有统一的剧本,但它会真实地摆在多个从手工网络里长出来的项目面前。要不要接受这些机会?

要不要放弃原本那套“不兼容”的工具,以便覆盖更广大的玩家群体?平台方的拜访邮件被转发进个人邮箱,开发者在深夜反复权衡。

两条路都被尝试过。一些人接受邀约,把作品适配到商业引擎,从而获得新的受众与收入。另一些人拒绝,继续用自己那套工具维护边界,接受更低的销量和更慢的增长。两种选择都能找到合理的理由。

但无论选择哪一条,那个最初的“不兼容”姿态都会被重新定义:选择适配,它就可能被改写为成功前夜的一次无害倔强;拒绝适配,它就可能被长期固定为一种边缘化的自觉。无论哪一种,都不再是单纯的工具选择,而是涉及经济、受众、劳动强度和可持续性的复合判断。

作者性于是不再只是“我是否用了自己的工具”这类表面上的独立。它变成了一种持续的、不稳定的劳动。你必须不断重新决定:哪些效率可以接受,哪些高效会让你失去边界;哪些受众值得进入,哪些平台会把你的作品变成它橱窗里的一个缩略图;哪些收入值得接受,哪些收入会连带要求你改变作品的物理形态。

这些问题没有标准答案,也不可能由某个开源社区的里程碑或某次工作坊上的交流来解决。它们属于商业与伦理的交界处,属于手工作坊与外部世界接壤的地方。一个人用焊枪和闪存芯片组成的卡带,可以抵抗数字过滤,却难以抵抗一个简单的事实:如果他想让更多人玩到这部作品,他就必须面对一套完全不同的算术。这套算术不会一次性地呈现。

它会被拆散成若干个必须回答的问题:要不要雇佣第二个人?要不要把放在个人网站上的版本移植到某个带有支付通道的系统里?要不要为多语言做出预算?要不要接受某个发行商提供的本地化与主机适配服务?每一个问题都指向同一种可能性:你亲手做出的东西,正在变成一个需要经营的单位。一旦它变成单位,算术就开始了。

你不再只是决定这个场景该用哪几种灰度。你还要决定这个月的服务器费用、下一批卡带的制版批次、回应技术支持邮件的优先级。这些数字和那些像素灰阶一样真实,一样具有重量。有些人能承受这份重量,有些人不能。

有些人在承受之后还能保持最初选择的清晰度,有些人则在算术的推拉中慢慢丢掉了最初那个强烈的反问。那个反问曾促使他们从大路上拐出来,现在却可能在商业适配与规模扩张的反复计算中被慢慢稀释。这恰恰回应了前几章累积下来的那个更大追问。

当资金端、制作端、发行端、消费端同时向作者施压时,这些手工制作者给出的回答是:即便在最底层、最物理、最与现代生产逻辑格格不入的位置上,一个人仍然可以重新组织自己与工具、作品、玩家之间的关系。这个回答在人数上很小,在规模上很小,在销量上更小。

但它真实。它被固化在一行行仍由人自己去维护的代码里,被固化在一张张由焊枪和闪存芯片组成的卡带里,被固化在几小时几小时的工作坊交流里。这些载体不像《仁王》的销量曲线那样平滑可期。它们由许多突然开始又突然中断的项目组成,由许多在论坛中留下几段说明文字就再没上线的身份组成,由许多在二手市场被转卖的旧硬件组成。

但把这些碎片拼在一起,一个清楚的形状浮现出来:当主流工具变得越来越便利,便利到足以替人做大部分决定时,坚持不便利就成了一种关于自由的实践。实践并不总是令人振奋。它有时不过是深夜与一段无法导入任何主流管线内的旧代码搏斗,不过是在一个只有几百人浏览的帖子里寻找某个兼容问题的答案。

但正是这种低沉、琐碎、不体面、不具规模的劳动,保住了“做游戏”这件事在极端标准化的年代里最后一点可辨识的个人痕迹。这个痕迹在《仁王》的光泽里找不到,在那些手工卡带上却清晰可见。它甚至经得起摩擦。

当一张自制卡带从展会的桌子被递到另一个人手里,对方拿到的那几秒钟里,不存在任何中间界面。只有塑料外壳的触感,以及那张标签纸上被喷墨打印机洒出的颜色。这是一个顽固的、带着物理重量的作者性。任何人想把它从作品里剔除,都得先把它插进一台真实的机器,重新开始考虑那些像素与色彩构成的全部条件。没有人能绕开这台机器。

所以,“不用主流引擎”作为作者姿态,从来不是要返回一个更旧的过去。它恰恰是为了在眼下这个“什么都能做”的年代找回“什么值得做”的尺度。尺度一旦被找回,它就会开始质疑那个悬浮在一切之上的方便。这种质疑也许无法改写整个行业的走向,但它足以让一部分人在大路的边缘,继续用自己那套不兼容的节奏工作下去。他们不是英雄,也不是先锋,更不构成一个可以被简单命名的运动。

把他们中的任何一个人单独立传,都可能重新滑入造神的循环。他们的共同点不是天才,而是一种对“可用性”的怀疑。这种怀疑一旦开始,就不会在任何一个平台上安分地停下来。它最终落到一个无人能替代的位置上:当一个人不再请求工具替他决定该做什么,他就得自己面对更大的东西——成本、时间、失败、不可复制、无人问津。这些压力中,有一个在2022年之后变得越来越具体。

手工作坊式作品获得小众成功后,商业化的算术就会找上门。它不会以一个整体的姿态出现,而是拆散成若干个必须回答的问题。

在2021年Notacon的展示桌上,这种物理传递的完整链条被压缩进一个下午。一张用喷墨打印机自制的标签贴在灰色卡带外壳上,标签边缘裁得不够整齐,留出大约半毫米的白边。卡带旁边放着一台已经停产的掌机,屏幕亮度调到倒数第二档,因为第三档会让灰阶过渡出现肉眼可见的色偏。制作者站在桌后,把卡带插进机器,按下开关。

启动画面不是Logo,而是一段用汇编手写的内存检测例程:屏幕快速闪过几条色块,然后进入标题界面。这个启动过程持续不到四秒,但它本身就是作品的一部分。它告诉靠近这张桌子的任何人:这部作品没有经过任何中间层的翻译,它直接与硬件对话。

围观的人里,有人问烧录设备型号,有人问制版批次,有人问那几条色块是不是故意留的。制作者逐一回答,语速不快,但每个答案都精确到具体的寄存器地址和时序参数。这些问答不会被录制成视频,不会被整理成教程上传到视频平台。它们只存在于那个下午,存在于那张桌子前半径不到两米的范围内。

但正是这种半径极小的交流,构成了另一种知识传递的密度。一个人花三个月摸索出来的时序问题,在五分钟的对话中被另一个人接住。接住的人回去之后,可能会在自己的项目里避开同一个坑,也可能会在那个基础上发现新的问题,然后在下一个展会、下一个论坛帖子里,把这层理解再传递出去。

这种传递方式与主流引擎社区的教程体系形成了一种几乎对称的差异。在商用引擎的生态里,知识被封装成标准化单元:官方文档、视频教程、问答平台上的高票回答、可复用的资产包。这些单元追求最大范围的传播效率,追求让尽可能多的人在尽可能短的时间内掌握同一种做法。效率本身没有错。

但这种效率的代价是,知识在传播过程中被不断剥离其产生的具体情境。一个关于光照方案的教程,不会告诉你作者在哪个凌晨、因为哪个具体项目的哪段叙事需求,才决定放弃引擎默认的全局光照而手写一套简化的漫反射模型。那个决定背后的犹豫、测试、推翻重来,全部被压缩成步骤一、步骤二、步骤三。步骤可以复制,但犹豫无法复制。

而犹豫恰恰是作者性最密集的所在。在Notacon那张桌子前的五分钟对话里,传递的恰恰不是步骤,而是犹豫。制作者会告诉对方,为什么在这个场景里选择关掉声音芯片的第三个通道,不是因为技术限制迫使如此,而是因为第三个通道的音色会让那段旋律的情绪偏移到一个他不想要的方向。

这个理由在教程体系里没有位置。它太具体,太个人,太不可复用。但它真实地发生了一次,然后通过对话进入另一个人的工具箱。工具箱里装的不是代码片段,而是一种判断方式:当你面对类似的选择时,你也要这样问自己,这个参数改动的后果是什么,这个后果是不是你真正想要的。

这种判断方式的传递,同样可以在开源社区的提交历史中找到痕迹。以某个为旧式掌机提供开发框架的代码库为例,它的提交历史从2019年延续到2022年,提交频率不高,有时一个月只有两三次,每次改动通常只涉及几个文件。

但把这些提交信息按时间顺序铺开,一条清晰的认知路径浮现出来。最初的提交集中在硬件初始化:如何正确设置显示模式寄存器,如何在有限的显存中分配精灵属性表。这些提交说明写得很短,有时只是“修复OAM写入时序”或“调整调色板加载顺序”。

但到了2020年中,提交说明开始出现另一种内容。一条关于背景层滚动逻辑的提交附带了一段注释:“之前的实现在快速卷轴时会出现接缝,原因是水平偏移量在扫描线中断中更新不及时。解决方案是把偏移量预计算到行缓冲区,代价是每帧多用128字节。这128字节本来可以留给精灵,但我选择留给背景。”这段注释不是写给机器看的,也不是写给某个抽象的“用户”看的。

它是写给那个可能在未来打开这个文件、试图理解为什么背景层占用了额外内存的人。它在解释一个选择,并把这个选择的代价和理由同时摊开。另一次提交涉及音频驱动的重写,注释更短:“放弃双缓冲,改用单缓冲轮询。延迟增加0.5毫秒,但代码量减少三分之一。对于这个项目,代码量比延迟重要。”这个判断同样不可泛化。换一个项目,延迟可能比代码量重要。换一个人,可能会做出完全相反的选择。但正是这种不可泛化的判断,构成了作者性在代码层面的指纹。指纹不会被引擎的默认设置抹去,因为它根本就不在默认设置的覆盖范围内。

这些提交记录拼在一起,揭示了一个比“自研工具更自由”更精确的事实:自研工具之所以能成为表达手段,不是因为它们功能更强大,而是因为它们的每一个功能都是一次显性的决定。在商用引擎中,光照方案、物理模拟、音频管线、内存管理全部被预先实现,制作者只需要调用。调用不需要决定,只需要选择。而选择发生在引擎预设的选项之间,选项的边界由引擎开发者划定。

自研工具则不同。当一个人必须亲手写出背景层滚动逻辑时,他不可避免地要面对那个128字节的取舍。这个取舍一旦被做出,就会留在代码里,留在注释里,留在后续所有基于这套代码开发的作品里。

它变成了一条可见的边界线:线这边是制作者认为重要的东西,线那边是他认为可以放弃的东西。边界线的形状,就是这个制作者在技术层面上的作者性轮廓。轮廓不一定优美,不一定合理,不一定高效。但它真实存在,可以被另一个人阅读、理解、质疑、继承或推翻。这种可阅读性,是自研工具与商用引擎之间最深的鸿沟。

商用引擎的底层代码同样存在,同样包含无数取舍,但这些取舍被封装在闭源模块或许可证背后,制作者看不见,也改不了。看不见的取舍仍然在影响作品,但它无法成为作者性的一部分,因为它从未进入制作者的意识。自研工具把取舍拉回意识层面,强迫制作者看见它、处理它、为它负责。这种负责是沉重的,但它同时也是自由的唯一基础。

复古硬件开发把这个逻辑推到了更极端的位置。当制作者面对的是一台屏幕分辨率只有160×144像素、同屏最多显示40个精灵、每个精灵只能用三种颜色加透明色的机器时,取舍不再是设计过程中的一个环节,它就是设计本身。每一个像素的用途都必须被反复掂量。一个精灵的位置移动一格,可能意味着另一个精灵必须被隐藏。一个场景的背景色从灰白改成浅灰,可能意味着前景角色的轮廓必须重新绘制,否则就会在交界处产生视觉融合。

这些限制在主流引擎中完全不存在。你可以把分辨率设为4K,可以叠加无数层半透明,可以在场景中放置几百个动态光源。限制消失之后,决定也消失了。当一切都可以同时存在时,没有什么东西需要被放弃。而没有什么需要被放弃时,选择就不再承载重量。重量消失之后,表达就变得涣散。

一部作品可以说很多东西,但每一样东西都说得不够坚决,因为说它的时候没有付出任何代价。复古硬件开发的冷酷之处在于,它重新给表达标上了代价。你要在这个场景里多放一个敌人角色?

可以,但你必须从背景中删掉一棵树。你要让这段音乐多持续四小节?可以,但你必须把音效采样率再压缩一轮。每一个“可以”后面都紧跟着一个“但你必须”。这种强制性的代价结构,逼着制作者不断追问:这个东西到底是不是必要的?

这个问题在资源无限的世界里很少被认真提出。在资源极度有限的世界里,它变成每一次创作动作的前置条件。追问的结果并不总是令人满意,但它至少保证了一件事:最终留在屏幕上的每一个像素、每一个音符、每一个交互逻辑,都经过了一次有意识的取舍。这种有意识的取舍,就是作者性在物质层面的沉积。

它不需要被声明,不需要被写在作品介绍里,不需要被评论家辨认。它就在那里,在灰阶的过渡里,在精灵闪烁的节奏里,在背景卷轴的速度里。任何一个愿意仔细看的人都能看见它。

这种可见性在2022年的一次小型展会上被推到了前台。一个制作者展示了一部用旧式掌机原生格式写成的叙事作品,全程大约四十分钟,使用同一块调色板,场景之间的切换通过简单的淡入淡出完成。作品的叙事线索围绕一个反复出现的意象展开:一面墙上的裂缝。裂缝在不同场景中以不同形态出现,有时是背景中的一条细线,有时是角色脚下地面的断裂,有时是菜单边框上的一处刻意留白。在主流引擎中,这个意象可以用高分辨率纹理、动态光照和粒子效果来呈现,可以做出一整面墙在物理模拟下逐渐开裂的壮观场面。但在这部作品里,裂缝只有几个像素宽,颜色只有两种灰阶。它的存在几乎不引人注目。

每一个问题都通向同一种可能性:你亲手做出的东西,正在变成一个需要经营的单位。而一旦它变成单位,算术就开始了。这个算术本身并不存在于引擎的废墟上。它发生在废墟与外部世界接壤的地方:当有人敲门,问你愿不愿意让更多人买它。

这个问题的全貌,不再仅仅关于工具,而是关于一个人、一套自研工具、一张卡带、一小群玩家与一条可能存在的可持续路径之间,如何计算彼此的重量。2023年之前,这些手工协作网络的公开记录停在那里:几个仍在更新的代码库,几次在小型展会上发生的见面,几十张被扫描进数字档案的卡带标签。

它们没有形成一个统一的宣言。它们只形成了一种能被人指认出来的路径——从《仁王》旁边拐出去,穿过一片面目模糊的低矮建筑,然后停在一扇不再通向任何平台橱窗的小门前。那扇门后面没有宏大的图景。它更像一个未完成的工作台,工具散落着,有些能用,有些不能。但它确实敞开着。敞开的意义在于,外面的人可以进来,里面的人也可以继续工作。

这个空间不提供出路,只提供保持提问的位置。提问仍然昂贵,但它没有被完全取消。从那个未完成的工作台向外看,一个具体的矛盾已经在等待被处理。它不是关于工具的,是关于算术的——关于一个人、一套自研工具、一张卡带、一小群玩家与一条可能存在的可持续路径之间,如何计算彼此的重量。这个计算本身并不存在于引擎的废墟上。它发生在废墟与外部世界接壤的地方。当有人敲门,问你愿不愿意让更多人买它。这个问题的全貌,是下一件必须被记录的事情。

但眼下,工作台上最后一块芯片刚刚焊稳。它还没经过测试。制作者看着它,不确定它能不能启动。这种不确定已经不同于那些大路上的确定性,但它是真实的。它足以让一个人继续坐在那里,再试一次。