国庆八天假,不少人堵在景区的人潮里,也有人干脆赖在家中,把儿时背着家长偷偷玩过的老游戏重新翻出来打了一轮。本文统计了 GitHub 上一批与老游戏相关的开源项目,涉及项目介绍与源码仓库地址,供同样想找回当年手感的人参考。
小霸王、VCD 与那波挡不住的集体怀旧
多数人的第一台「游戏设备」,大概率是当年那款标着「学习机」字样的小霸王或步步高。键盘左上角那三个字摆在那儿,真正诱惑人的却是侧边的卡槽:把游戏卡插入,一台教学设备就变成了游戏机。放学后或假期里,几个孩子抱着大键盘盘算的,是今天到谁家联机打一盘《忍者神龟》。
之后到来的 VCD 时代,把游戏从卡带变成光盘。一家人守着一台影碟机,塞进游戏盘,电视上就会跳出「XXX 合一」的目录,《魂斗罗》《赤色要塞》《冒险岛》《大力水手》都在其中。当年的像素画面放到今天,画质被 4K 轻松碾压,可那种全身心投入的感觉,哪怕现在的 3A 级大作也换不回来。这种怀旧并不矫情——如今在电商平台搜一下「复古掌机」,售价高得接近购置一部新手机,因此也被戏称为「赛博核桃」。
绝版游戏保护工程:近 200 款老游戏进了 2 张 CD
项目作者 skywind3000 的判断是,互联网上的东西消失速度很快,大量 DOS 与早期 Windows 游戏因为光盘损毁、下载链接失效而彻底不存在了。基于这一考虑,他发起了名为「绝版游戏保护工程」的项目,从 DOS 一直到 Win95/98 时期挑出近两百款经典单人游戏,涵盖《仙剑奇侠传》《大富翁》《金庸群侠传》《主题医院》等,全部收纳下来只占用两张 CD 的容量,约 1.3GB,且尽可能保留原始镜像,以维持原本的体验。

这位作者还有一个配套计划 preserve-iso,用途是保存那些市面上已经难寻的老开发工具,比如 Borland C++ Builder、Delphi 7。不少资深开发者看到之后直呼泪目——值得追忆的除了游戏,还有自己年轻时写下的那一行行代码。
源码仓库地址可前往 https://github.com/skywind3000/preserve-cd 查看。对使用者而言,就算旧光盘某天被家人当成废品处理掉,也能说上一句:自己的青春已经在 GitHub 做过云备份。
OpenEmu:Mac 平台上几乎找不到更好的选择
如果目标是让任天堂老游戏在 Mac 上复活,OpenEmu 属于那个「很难找出更优解」的项目,目前在 GitHub 上累计 17K Star。它具备高质量的 OpenGL 缩放、多线程播放、实时 3D 效果渲染、图形滤镜与全屏显示等能力,在 Mac 设备上表现几乎挑不出毛病。
使用流程也不复杂:找到 FC 或 NDS 游戏的 ROM,下载后解压,将 .nes 或 .nds 文件拖入游戏库,双击就能运行。无需额外教程,比当年跑去电脑房还省事。
源码仓库位置为 https://github.com/OpenEmu/OpenEmu。

OpenTTD 与 OpenRCT2:造铁路、开游乐园的两种玩法
OpenTTD 以 Chris Sawyer 的《运输大亨豪华版》为基础开发,属于开源模拟经营品类,也被公认为最成功的开源游戏重制项目之一:社区规模大,Mod 数量众多,地图辽阔,还支持多人联机。当年熬一个通宵摆铁路的人,如今可以名正言顺地在线运营运输网络——反正旁人只会以为在琢磨物流问题。
源码仓库位置为 https://github.com/OpenTTD/OpenTTD。
OpenRCT2 则是《过山车大亨 2》的开源重新实现版,既还原了当年经营游乐园的乐趣,又额外补上多人联机、超大尺幅地图、作弊功能和多语言支持,同时把原版留下的 Bug 逐一修好。只要手上有原版游戏文件就能运行——曾经「开园三年就破产」的那批玩家,如今有机会回来报当年的一箭之仇。
源码仓库位置为 https://github.com/OpenRCT2/OpenRCT2。
openage 与 OpenRA:帝国时代和红警的现代化重生
拥有 14K Star 的 openage,打算把《帝国时代 2》的引擎完整克隆出来。该项目仍处于活跃开发阶段,尚不能做到 100% 可玩,但作为社区对这部经典 RTS 作品的敬意集合,它主打更丰富模组接口与跨平台运行。对老玩家来说,那声「伐伐伐伐木工」一响,整个下午就没了。

源码仓库位置为 https://github.com/SFTtech/openage。
OpenRA 是知名度极高的红警开源计划,它并不是模拟器,而是一个重构后的当代 RTS 引擎:支持 4K 画面、战争迷雾、右键移动(手感接近当下流行的 MOBA 操作方式)和智能寻路,并顺手修复了原版坦克存在的Bug(因此操作手感与原作略有差异)。对局功能完善,内置成熟的联机大厅,随时都能找到对手开一把;同时红警 2 的官方 Mod 也已在筹备当中。
源码仓库位置为 https://github.com/OpenRA/OpenRA。
金庸群侠传 3D 与 DevilutionX:国产武侠和暗黑初代复刻
金庸群侠传 3D 重制版(专栏代号 jynew)不属于盈利项目,开发方借助 Unity,把原先的 2D 像素画面转成 3D 场景,美术风格则有意保留了复古低模的味道,既跟上时代又保持原本的调性。
作者利用业余时间,纯粹凭借兴趣打磨这个项目,成品画面更加精细、细节也更生动,还可以方便地打包成安装包,在 Windows、macOS,甚至 Android/iOS 手机上运行。当年盯着笨重显示器幻想行侠仗义的少年,如今在手机上照样能接着仗剑江湖。

源码仓库位置为 https://github.com/jynew/jynew。
为了让今天的玩家也能玩到《暗黑破坏神 1》,有开发者选择用逆向工程手段重新实现游戏引擎,最终产出 DevilutionX。它让这款 1996 年的作品能在高分辨率、高帧率环境下顺畅运行,同时加入手柄支持,并修好了不少原版遗留缺陷;该项目在 GitHub 上已经收获 1 万 Star,可以被视作回顾暗黑初代的最佳途径之一。
源码仓库位置为 https://github.com/diasurgical/DevilutionX。
加餐:几款在线即玩、边玩边学的项目也值得收藏
前文提到的都算经典里的代表作,下面这批正好属于「打开网页就能玩」以及「玩的同时还能学点东西」的小众宝藏,读之前不妨先点收藏。
si78c——小蜜蜂:1978 年登场的街机作品《太空侵略者》,用 C 语言完整复刻,被形容为游戏圈里的兵马俑。仓库地址是 github.com/loadzero/si78c。

react-tetris——俄罗斯方块:浏览器里打开就能玩,7.6K Star,手感平滑流畅,可以看作当年文曲星版的远房亲戚。仓库地址是 github.com/chvin/react-tetris。
battle-city——坦克大战:用 JavaScript 复刻,连上网就能开打。那句「守住老家」放到现在,仍是无数人共有的童年阴影。仓库地址是 github.com/shinima/battle-city。
OpenDiablo2——暗黑 2:以 Go 语言重写暗黑 2,已有 8.9K Star。为了一款 20 年前出品的游戏专门去学一问新语言,这件事本身就够传奇。仓库地址是 github.com/OpenDiablo2/OpenDiablo2。
SimpleNES / mgba——学习型模拟器:一个用 C++ 编写的红白机模拟器,一个用 C 写成的 GBA 模拟器。若想自己动手写模拟器、厘清计算机底层原理,从这两个项目入手最为合适。仓库地址是 github.com/amhndu/SimpleNES 和 github.com/mgba-emu/mgba。
小结:这批开源项目的共同点,是把主机模拟、逆向工程、引擎复刻等工程实践包装成了一场童年接力,Star 数从几百到十几万级别的并不罕见,OpenRA、OpenEmu、openage 均是各自方向上的代表性实现。
