1999 年,Valve 原本准备把《半条命》带到 Mac OS 9,却在临近发布时取消项目。如今,开发者 doctashay 用社区代码把这件旧事补完了。

这不是 Valve 官方版,也不是拿到原始 GoldSrc 源码后的商业重制。它建立在 GoldSrc 开源重实现项目 Xash3D FWGS 的分支之上,目标很直接:让 G3、G4 PowerPC Mac 真正运行《半条命》。

G3、G4 可以安装,流畅与否要看显卡

项目面向 Mac OS 9.0 及以上系统。项目说明称,游戏已经可以从头到尾完成,也支持多人模式。

内容覆盖《Half-Life》,以及《Blue Shift》《Opposing Force》相关内容,并提供《Uplink》演示内容。不过,“支持这些内容”不等于移植包可以合法附带全部商业游戏资源。现有材料没有讲清安装包构成、原版数据文件要求和授权状态,下载前仍应核对项目文档,并自行准备合法游戏数据。

项目当前信息现实限制
处理器G3、G4 PowerPC Mac支持架构不等于所有机型都流畅
系统Mac OS 9.0 及以上具体扩展、驱动要求需查项目文档
单人模式可从头到尾游玩不同关卡和特效场景仍可能出现性能差异
多人模式已支持服务器兼容、局域网设置和版本匹配仍需实测
扩展内容涉及《Blue Shift》《Opposing Force》商业资源是否随包提供不能想当然
显卡高度影响实际帧率显存低于 8MB 的设备可能运行吃力

最后一项最容易被标题掩盖。

不少早期 iMac、iBook 虽然使用 G3 处理器,也能满足纸面上的系统条件,但集成显卡和不足 8MB 的显存可能成为瓶颈。CPU 型号只是入场券,显卡才决定你是在 Black Mesa 里行动,还是在等画面追上鼠标。

如果你准备把 Power Mac G4 或老 iMac 从柜子里搬出来,先查显卡型号和显存,再确认硬盘空间、系统版本与数据文件。不要因为看到“支持 G3/G4”,就直接理解成“所有 G3/G4 都能顺畅运行”。

从 1999 年取消,到社区把空缺补上

这段历史有一个容易混淆的数字。

Valve 在 1999 年取消 Mac OS 9 版。若项目发布时间按相关页面标注的 2026 年 7 月 27 日计算,中间是约 27 年;“28 年”通常是从《半条命》1998 年问世算起。由于来源日期仍需核验,标题不宜把“28 年后”写成毫无争议的事实。

时间线其实很短:

时间发生了什么
1998 年《半条命》正式问世
1999 年Valve 取消接近发布阶段的 Mac OS 9 移植
2013 年Valve 推出面向 Intel Mac 的 Mac OS X 官方版本
项目页面标注 2026 年doctashay 的社区移植让 PowerPC Mac OS 9 获得可运行版本

2013 年的官方 Mac 版没有偿还 1999 年那笔账。它服务的是 Intel Mac 和 Mac OS X,早已绕开 PowerPC 与经典 Mac OS。今天这个项目填补的,正是被技术迁移留在后面的那一段。

这里也能看出 Xash3D FWGS 这类开源引擎重实现的价值。它们不只是给老游戏换一个现代启动器,还能反向适配早已退出商业支持的平台。ScummVM、DOSBox 一类项目做过相似的事:厂商停止维护后,社区继续整理运行环境、修复兼容问题,让合法持有的数据文件还能被执行。

两者并不完全一样。《半条命》涉及 3D 渲染、显卡驱动和多人网络,硬件变量更多,维护成本也更高。把程序编译出来,只完成了第一步。

怀旧只是入口,稀缺的是“还能运行”

经典 Mac 玩家得到的是一项很具体的收益:过去只能在论坛里讨论“当年如果没有取消”,现在可以检查机器、准备数据文件,然后实际进入游戏。老硬件不再只是陈列品。

游戏保存与开源引擎社区面对的任务更重。他们需要观察这个分支有没有公开构建说明,能否重复编译,显卡兼容问题是否有人记录,多人模式是否持续测试。若这些工作只压在一位开发者身上,项目随时可能停在某个版本。

开源代码也不自动等于长期保存。仓库可能消失,工具链可能失传,老系统编译环境可能无人维护,版权边界还会限制资源文件归档。真正可靠的数字保存,至少需要代码、文档、构建工具、兼容性记录和合法数据来源同时存在。

“礼失而求诸野。”这句话放到老软件保存上很贴切:商业公司追逐仍在增长的平台,旧系统的运行能力便散落到个人开发者、论坛和代码仓库里。

我愿意肯定 doctashay 这次移植,因为它交付了可执行成果,而不是又做一段怀旧视频。但也不必把它包装成圆满结局。接下来该看的只有几个硬变量:低显存机型到底能跑到什么程度,安装和数据准备能否形成清晰文档,代码分支是否有人接手维护。

一款游戏被保存下来,不是磁盘镜像还躺在硬盘里。

是多年以后,机器仍能把它运行起来。