办护照这件事,被做成了一款游戏。

不是比喻意义上的"像打怪升级",而是真的把六个签名、荒谬的流程、街机式对抗、摇摇欲坠的机构、政治漫画式的角色,以及一个精疲力竭的普通公民,全部塞进了一个浏览器里。这款游戏叫 Civic Nightmare,用 Godot 4.6 开发,是一款小体量的开源浏览器 RPG,现在就能玩。

打开网易新闻 查看精彩图片

整个游戏的起点,是一个简单到不能再简单的问题:你需要续办护照。这本该是件容易的事。结果你被送进了一个超现实的行政世界,每一个签名都归属于另一台权力机器、另一套流程、另一种对现实的解释。最终成品是四不像:一部分 JRPG,一部分街机游戏,一部分政治讽刺,一部分官僚噩梦。

你扮演的不是英雄

你扮演的是一个普通公民。不是总统,不是亿万富翁,不是被选中的英雄。只是一个需要护照的人。可惜,那堆文书另有打算。

主线任务要求你穿越一片手工搭建的开放世界,去收集六个签名。每个权力机构都有自己的环境、性格和流程。有些遭遇直接变成了小游戏:一场谈判被改造成奇怪的黑杰克对局;另一处把 27 个审批变成了一台物理共识机器;还有一个场景让你用类似货币政策弹珠台的东西去稳定通胀;再有一处,把"三分钟特别行动"变成了一条刻意宽容的伪 3D 行政走廊。

笑点不只在对话里。开发者希望建筑本身在任何人开口之前就先把话说出来。房间、机器、纪念碑、队列、检查站和界面,都是讽刺的一部分。官僚主义就是关卡设计。

越往后越离谱

游戏里还藏着一些可选区域,它们和拿到护照几乎毫无关系——这大概正是它们该出现在游戏里的原因。那里有一架量子 UFO、一座机密地堡、一场不稳定的 AI 演示、一座控制论式的履约大教堂、一部红色电话,还有若干场景:官方对正在发生之事的解释,比屏幕上物理发生的事更不可信。

开发者刻意让这个世界感觉像是好几种游戏类型被强行塞进了同一套行政表格里。他给这种效果起了个名字:公民超现实主义。

浏览器版本就是完整游戏,不是精简过的演示页。当前版本直接在浏览器里运行,包含开放世界、签名遭遇、小游戏、可选调查、持久化进度、带版本号的本地档案、情境触控操作、最终裁定,以及 CRT/VHS 呈现层。进度存在浏览器本地,可以随时离开再回来。游戏也能通过 Godot 在桌面端运行。

为什么选择开源

对开发者来说,Civic Nightmare 作为一个完整的实验,比作为一款商业游戏更有意思。它小、怪,但完成度足够撑起自己的身份。同时,它留出了大量空间,让别人把它推向他自己想不到的方向。所以源码是公开的。

他现在最想扩展的,是让别人一起来"添乱"。贡献可以是技术性的、视觉性的,或者完全荒诞的。真正有用的东西包括:

  • 新的小游戏
  • 新的可选遭遇
  • 对话
  • 翻译
  • 像素美术
  • 无障碍改进
  • 浏览器兼容性
  • 触控操作
  • 音效
  • Bug 修复、测试、工具链
  • 他没想到的奇怪行政流程

你不需要理解整个项目才能贡献。仓库里已经划出了一些范围明确的工作区,不用碰整个游戏就能上手。代码库里包含贡献指南和架构文档。

做这款游戏学到的事

最大的一条心得是:讽刺变成机制时,比只停留在对话里更有效。让一个 NPC 说点荒谬的话很容易,有意思得多的是让玩家亲身参与这种荒谬。共识流程变成一台机器,经济稳定变成弹珠台,政治主张变成计分规则,行政拖延变成关卡结构。正是在这个节点上,Civic Nightmare 不再像一堆笑话的集合,而开始像一款游戏。

另一条心得是:小体量游戏从"视觉上敢有主见"里获益巨大。这个项目混合了像素尺度角色、大幅手工环境、CRT 呈现、街机式遭遇和夸张的市政建筑。它不打算看起来中立,这一点帮了大忙。

技术层面,游戏用 Godot 4.6 构建。主组合根负责协调开放世界和更大的剧情转场,具体模块各管一摊。项目还把运行时资源和可编辑源素材分开,并记录了贡献边界。浏览器版本使用 Godot Web 导出,持久化数据保存在浏览器本地存储中。仓库里包含无头冒烟测试,覆盖主要游戏流程、存档与恢复、签名进度、触控状态和场景切换。