oss

ScummVM 为老冒险游戏换上新解释器

8 条来源 6 条一手来源 已翻译 2026年10月21号

正在加载阅读与收藏统计…
正文

曾经运行游戏的电脑早已消失,一款老冒险游戏却还能以一整个文件夹的形式留存下来。有些游戏的图像和对白仍在,负责让它们响应鼠标点击的程序却已无法运行。ScummVM 处理的正是这类问题。这个开源项目开发替代游戏引擎,让受支持游戏的原始数据能在较新的系统上被读取和使用。[1]

2026 年 10 月 11 日发布的周年纪念版本 2026.4.0,给了我们重新认识它的契机。团队公布,这次发布新增了对 194 款游戏的支持,并加入 12 个新引擎,其中包括对 Star Wars: Rebel Assault 和 Dungeon Master 的支持。不过,初次了解这个项目,可以从更小的地方入手:选一款熟悉的游戏,看看它需要哪些文件,再追问究竟有哪些东西得到了保存。[2]

房间还在

SCUMM 最初的设计就将解释器与它所解释的内容分开。图像、对白,以及描述物件行为的指令,都存放在游戏数据中;解释器则负责呈现这些内容,并处理玩家的输入。项目留存的参考指南介绍了这种分工,也记录了后续游戏不断增加功能时,数据格式随之发生的变化。[3]

想想在冒险游戏里点击一扇门的情形。画面让门出现在眼前,但还得有程序理解游戏指令:门是否打开,角色说些什么,接下来通向哪个房间。如果只保存画面,场景就会停在那里,毫无反应。ScummVM 的工作,也包括重建让场景作出回应的那套程序。

这一区别也解释了它能做什么,以及能力所及的范围。ScummVM 接替原版游戏执行程序的工作,重建范围落在游戏引擎上,未涉及整台旧电脑的模拟。因此,每一款游戏都需要有对应的引擎实现,才能获得支持。如今,项目涵盖的游戏早已超出 LucasArts 冒险游戏的范围;常见问题文档同时提醒,硬件或软件条件的限制,仍会让某些已受支持的游戏在特定设备上无法运行。[1]

摩托车战斗也得有人弄懂

开发这样的替代引擎,有时需要极大的耐心。在 Damiano Gerli 于 2022 年为 Film Stories 所作的访谈中,Eugene Sandulenko 回忆,他在 2003 年买下俄语版 Full Throttle 后接触到了 ScummVM。他先修复了一处字体问题,随后发现,摩托车战斗部分尚未实现。为了重建负责这部分内容的 INSANE 引擎,他又花了四个月。[7]

ScummVM 开发者 Eugene Sandulenko 的肖像照片。
CppCast 为 2021 年 4 月的 ScummVM 节目刊登的嘉宾照片,图中为 Eugene Sandulenko。他重建 Full Throttle 摩托车战斗的经历,让一款游戏获得支持所需的工作,有了具体可感的尺度。[7][8]

启动器看起来简单,这段经历却揭示了背后的复杂工作。能显示房间和对白的游戏,也会有整类交互尚待完成的情况。Sandulenko 描述的逆向工程,是在一批没有名称的函数和变量中逐步摸索。他的经历说明,对游戏的热情,还需要时间和技术能力相伴。[7]

在我看来,这段历史表明,ScummVM 保存着让游戏得以继续运行的条件,也保存着人们逐渐积累的理解。引擎的行为一旦在共享源代码中得到重建,下一位贡献者就有了接着工作的起点。周年纪念版让这份持续的工作清晰可见:发布说明在列出新引擎的同时,也列出了已受支持游戏中的修复,包括寻路、行走音效及其他行为。[2]

先准备文件,再添加游戏

第一次尝试,可以选用自己已经拥有、且在支持范围内的某个游戏版本。复制文件前,先查看兼容性信息和必需文件清单。在启动器中点击 Add Game(添加游戏),就会打开目录浏览窗口,用来选择存放游戏数据的文件夹。如果 ScummVM 检测出多个版本,启动前应选定与手头文件相符的版本。官方文档将这一步版本识别列为添加游戏过程的一部分。[4]

游戏文件处理指南给出了一个具体例子:Day of the Tentacle 的文件夹中包含 TENTACLE.000、TENTACLE.001 和 MONSTER.SOU。看到这些文件名,就容易理解游戏依赖的究竟是什么。下载 ScummVM 得到的是读取冒险游戏的软件,游戏本身的内容仍须备齐。[5]

请保留一份未经改动的原始文件副本。“替代执行程序”描述的是 ScummVM 运行游戏的方式,并没有要求用户删除遇到的每一个 .exe 文件。如今的文档已介绍如何直接从部分安装程序中加载游戏,另一些游戏则仍须先提取文件。具体操作要遵照相应游戏及版本的说明。[5]

多光盘版本还会带来另一层问题。ScummVM 需要读取分布在各张光盘上的必需数据,因此指南要求用户将这些文件集中放进本地文件夹。有些文件虽然同名,在不同光盘上的内容却不同,需要按指定方式重命名。开场能够运行,只能说明开场所需的资源齐备,后续场景还要另行确认。[5]

对个人玩家来说,第一次试运行可以从几件小事做起:启动游戏,听一段对话,在房间之间走动,然后保存并读取存档。这是我建议用来检查整套配置的方法,检验范围也止于这次试运行,整款游戏仍有其余内容待测。小型博物馆或教学收藏机构还需要有人负责记录游戏版本、软件版本,以及每次安装后用来检查的场景。

游戏进度有自己的存放位置

游戏文件夹和存档各管一件事:前者装着游玩所需的内容,后者记录玩家走到了哪里。ScummVM 在 Paths(路径)配置中设有 savepath 选项,文档也分别列出了 Windows、macOS 和 Linux 的默认存档目录。[6]

换电脑时,这一区别就很实际。只复制游戏数据,有时足以让游戏再次启动,却会把此前的进度留在旧电脑上。应找到实际使用的存档目录,单独备份。对于支持此功能的游戏,在桌面端按 Ctrl+F5 可以打开全局主菜单(Global Main Menu);部分引擎则使用游戏自身的保存和读取界面。[6]

原版游戏生成的存档,在替代引擎中能否使用,也要逐一确认。常见问题文档说明,只有部分游戏兼容原版存档。[1] 因此,一次有用的迁移演练,应以恢复真实存档、确认房间和物品栏都回到预期状态为终点。看到标题画面,只是此前的一步。

重新走进冒险

ScummVM 很适合作为认识开源项目的起点,因为它的目的直观而亲切:记忆中的地方,又能进去游玩了。项目开放源代码,也让其他人能够查看这些重建成果,并继续扩展。[1]

落实到日常使用,就要把三样东西一同照看好:游戏数据、能正常工作的引擎,以及玩家的进度。分清它们各自是什么、存在哪里,一款老冒险游戏就更容易被带到未来。回报细小而直接:点一下门,听到回应,发现这间房依然通向别处。

资料来源

  1. ScummVM 文档,《常见问题》——替代引擎、GPL 许可、平台限制及原版存档兼容性;查阅于 2026 年 10 月 21 日。
  2. ScummVM,《ScummVM 2026.4.0 “Never-slop” 于 25 周年之际发布》,2026 年 10 月 11 日——新引擎、受支持游戏及修复内容。
  3. 《SCUMM 参考指南》,“引言”,留存的 2002 年文档——解释器与数据的区别,以及游戏格式的演变。
  4. ScummVM 文档,《添加与运行游戏》——兼容性检查、数据目录选择及版本识别。
  5. ScummVM 文档,《处理游戏文件》——必需数据、安装程序处理及多光盘文件安排。
  6. ScummVM 文档,《保存与读取游戏》——存档位置、savepath 设置及各引擎的专用菜单。
  7. Damiano Gerli,《ScummVM:通往经典冒险游戏宝库的入口》,Film Stories,2022 年 12 月 13 日——独立报道及对项目开发者的访谈。
  8. CppCast,“Eugene Sandulenko”——嘉宾简介,以及 2021 年 4 月 23 日发布的第 296 期节目所附肖像照片的来源。
Previous ArgyllCMS 将屏幕调校与特性描述分开处理 Next 快门响过之后,gPhoto2 继续追踪照片的去向

Recommended In oss

Matched by subject and format