评论随笔 · 2026-06-14
Zachtronics 的文法——将编程翻译为谜题
从 SpaceChem 到 Opus Magnum,以指令序列为动词的11年
引言
说自己是通过游戏而非教科书学会编程,听起来可能有些夸张。但玩过 Zachtronics 作品的人,一定对这种感觉有所共鸣。在 SpaceChem 的反应炉中排列指令,在 TIS-100 的微型计算节点上写代码,在 Opus Magnum 的炼金机器里组装机构——这些并非对编程的比喻,而是将真实的编程体验翻译为谜题的设计。本文想从独立游戏开发者的视角,解读 Zach Barth 自2011年至2022年持续打磨的这套「编程谜题」文法。
大多数思考型解谜游戏逐步推进盘面状态。仓库番的「推」这个动词,Baba Is You 的文字,本质上都是在问「此刻应该做什么」。在元谜题的系谱中,我梳理过这一脉络。Zachtronics 的文法则偏了一步。玩家操作的不是盘面本身,而是驱动盘面运作的「流程」。不是落子,而是设计落子的方式。这一层抽象,从根本上改变了这一类型的手感。
指令序列作为动词——SpaceChem 与 TIS-100 的文法
SpaceChem 是 Zachtronics 2011年推出的第一部商业作品。玩家在反应炉中放置两条机械臂,分别排列「抓取」「旋转」「结合」等指令,形成循环序列。一旦排好,指令序列就会无限循环,直到按下停止键。换言之,玩家写的不是一步棋,而是无限循环的程序本身。仓库番问的是一步的重量,SpaceChem 问的是整个流程的自洽性。动词依然寥寥,但将这些有限的动词铺排在时间轴上的那一刻,状态空间便以数量级膨胀。
2015年的 TIS-100 将这一思路推向极致。屏幕上只给出微型计算节点和一套类汇编指令集。将 MOV、ADD、JRO 等简洁命令写入各节点,让数据在相邻节点间传递。游戏连说明书都以虚构规格书的形式呈现,故事以零散注释的方式散落其中。这里几乎没有视觉装饰。即便如此,这部作品依然成立,因为有限指令集这一减法,正如减法设计的系谱所述,引发了组合爆炸。
将指令序列作为动词,谜题的问法随之改变。盘面谜题问的是「哪一步正确」,Zachtronics 问的是「哪种流程能运行」。而且在多数情况下,能运行的流程不止一种。这里藏着这一类型最重要的发明。
放弃唯一解——Opus Magnum 的柱状图优化
大多数思考型解谜游戏以唯一解为前提。仓库番、Snakebird、Stephen's Sausage Roll 的正解流程基本上只有一种。设计者通过保证解的唯一性来确保发现感的可靠性。学习曲线的雕刻方式中提及的「卡关设计」,也是建立在唯一解前提之上的。但 Zachtronics 毅然放弃了这一前提。「能跑即正解」这一大胆的割舍,将这一类型的体验整体改写。
2017年的 Opus Magnum 是这一判断结晶得最为美丽的作品。组装炼金机器、合成指定物质,规则就这么简单,解法却有无数种。但游戏会在通关后以柱状图的形式呈现三项指标——循环数(速度)、成本(零件数量)、面积(占用空间)——让你看到自己的解在所有玩家分布中的位置。这一张图,静静地推着玩家不断前行。
这一刻,谜题从「解开」变成了「打磨」。玩家会在通关后的关卡上花上数小时,为了削减一个循环而重组机器。放弃唯一解,Zachtronics 换来了没有终点的优化游戏。抹去「通关」这个终点,开辟了与自己竞争的地平线。这与把 Undo(撤销)当作理所当然的宽容不同——这是一种鼓励改进而非容许失败的设计。
抽象的阶梯——从图标到伪代码,再到 Shenzhen I/O
Zachtronics 的11年,也是一级一级攀登抽象阶梯的历史。2011年的 SpaceChem 将指令以视觉图标的形式排列;2015年的 Infinifactory 将其扩展为三维工厂流水线;同年的 TIS-100 中,指令终于变成了文字代码;而2016年的 Shenzhen I/O,玩家要在接近真实电子元件规格的芯片上阅读数据手册、编写代码。每一部作品,都向现实中的编程迈近一步。
这一顺序并非偶然。从图标到伪代码,再到真正的汇编语言。Barth 一边等待玩家观察精度的提升,一边逐步提高抽象层次。从视觉化指令入手的人,不知不觉便开始阅读手册、调试代码、追求优化。这与动词最小化系列的方向相反,在这里,词汇反而在增长。但增加的每一个词汇都对应现实中的编程概念,因此学习能够直接衔接到现实技能。
在阶梯的每一级,Zachtronics 都在悄悄改变「难度」的质地。从视觉谜题的空间把握,到代码的逻辑自洽性。同一位作者以同一套文法,排列出手感如此迥异的作品——这本身就诉说着「指令序列」这一动词的宽广射程。
将编程翻译为谜题——Exapunks 与可读的世界设定
直接用编程做谜题,容易流于枯燥。Zachtronics 的作品没有变冷的原因,在于世界设定和说明书这两重装置。2016年的 Shenzhen I/O 将玩家设定为跳槽到深圳某电子制造商的工程师,以公司内部邮件和产品规格书的形式分发虚构文本;2018年的 Exapunks 中,玩家扮演身患绝症的黑客,以治疗药物为筹码接受非法委托。代码背后,始终透着某个人的处境。
在此发挥作用的,是纸质说明书。Zachtronics 的作品常常附带以纸质阅读为前提的厚重手册。到了 Exapunks,更是将载有攻略信息的虚构黑客杂志《Trash World News》连同版式一起精心制作。写代码的手与阅读规格书的眼同时运转——这与将观察转化为游戏的谱系不同,但在将「阅读」融入推进流程这一点上,有着远亲之情。
虚构设定也充当了难度的缓冲。被要求写类汇编代码,但想到「这是某个虚构世界里的设定」便会释然。Zachtronics 深知如何用世界观来化解编程这一题材的门槛。将编程翻译为谜题,并非翻译语法,而是将编程所具有的成就感与挫败感,迁移到游戏的语境之中。
结语
2022年7月,Zachtronics 发布 Last Call BBS 后宣告「这大概是最后一部作品」,随即收摊。此后 Barth 等人组建了 Coincidence,并于2025年发布了 Zachtronics 风格的工厂谜题 Kaizen: A Factory Story。2026年2月,Opus Magnum 更是公告了新 DLC《De Re Metallica》,证明这套已然「关门」的文法依然生机勃勃。指令序列这一动词,在作者退场后仍未老去。
如果我下一次要做谜题,我想从 Zachtronics 身上学习的是「放弃唯一解的勇气」。将正解收窄为一个,设计会变得容易,成就感也更加明快。但一旦开放解法、设置没有终点的优化地平线,谜题才第一次成为「打磨的游戏」。正如The Talos Principle 的记录机制将流程本身变成了游玩,以「流程」而非「步骤」作为操作对象的设计,仍有许多尚未被挖掘的余地。我也想把这个问题留给读者:你的谜题的正解,真的必须只有一个吗?
Reactions (no login)
Anonymous • one of each per visitor per day