Beyond-All-Reason · beyond-all-reason/Beyond-All-Reason
Beyond All Reason(BAR)是一款用 Lua 编写的开源即时战略(RTS)游戏,本仓库是其游戏主体代码仓库。项目由三部分组成:本仓库中的游戏代码、独立的大厅客户端 Chobby,以及底层 Recoil RTS 引擎。README 提供了官网下载与上手引导,并...
RigelEngine 是开发者 lethal-guitar 发起的一个开源项目,目标是把 Apogee Software 于 1993 年在 MS-DOS 上发行的横版动作射击游戏《Duke Nukem II(毁灭公爵II)》用现代 C++ 重新实现一遍。它并不打包游戏本体,而是作为一个“可直接替换原版可执行文件”的引擎:只要把原版游戏的数据文件放进来,它就能像当年的 DUKE2.EXE 一样把游戏跑起来,读档、关卡、过场动画、菜单流程都与原作保持一致。与原版只能在 DOSBox 之类的模拟器里运行不同,RigelEngine 是面向现代操作系统原生编译的程序,因此可以直接利用当今天显卡、手柄和窗口系统的能力。
从完成度看,项目在 README 中明确表示自己“稳定且功能相对完整”:游戏的四个章节(包括免费分享版 shareware 与付费注册版)都可以完整通关,体验与原版持平。作者同时说明自己已不再规划大的功能开发,项目进入“维护模式”,后续主要是修复严重 bug、保持 CI 运转。这一点对使用者的意义是:功能边界清晰、不会频繁变动,适合作为长期可用的运行方案,也适合作为稳定的代码阅读对象。
相比“在模拟器里跑原版”,RigelEngine 提供了一组现代增强:宽屏显示模式;带更高帧率的平滑滚动与移动模式;快速存档;改进的手柄支持;以及扩展的 mod 制作能力。这些增强都属于可选项性质的使用体验改进,核心玩法逻辑仍然对齐 1993 年的原始设计,因此老玩家不会感到陌生,新玩家也不必忍受当年低帧率与固定分辨率的限制。
技术实现是这个项目最有意思的部分。原版游戏从未公开过源代码,RigelEngine 完全建立在逆向工程之上——具体做法是对原始二进制进行反汇编分析,逐步还原数据格式与运行逻辑;作者还另外维护了 Duke2Reconstructed 项目,用于给出原版代码的完整重建版本,两者互为参照。引擎本身用现代 C++ 编写(仓库 topics 标注为 cpp17),图形层基于 OpenGL,在编译期可以在 OpenGL 3.0 与 OpenGL ES 2.0 之间二选一;输入与窗口等平台层则借助 SDL2;整体架构采用实体组件系统(ECS)组织游戏对象。对于想研究“老游戏如何被现代化重写”的开发者,这套组合相当具有参考价值,项目 Wiki 里还专门写了 Architecture Overview 帮助新人进入代码库。
运行方式上有几点必须注意:RigelEngine 不附带任何游戏资源,用户需要自备原版数据。实际真正必需的文件是主数据文件 NUKEM2.CMP,以及 NUKEM2.F1 到 NUKEM2.F5 这些片头动画文件;片头动画并非强制,缺失时引擎会跳过播放,但作者仍建议一并准备。首次启动时程序会弹出文件浏览器,要求指定《Duke Nukem II》安装目录的位置,选择结果会写进用户配置,下次不必重复选择;也可以通过命令行参数直接传入路径,便于开发调试。如果原目录中存在旧的存档、高分榜或设置文件,引擎会在首次运行时把它们导入自己的用户配置中。分享版(shareware)可以从 archive.org 免费下载,完整注册版则需在仍持有发行许可的 Zoom Platform 购买,Steam、GOG 等平台并无销售。
平台方面,README 声明支持 Windows、Linux 与 macOS,并给出了在 Steam Deck 上安装的 Wiki 教程;Linux 版本还能跑在树莓派、Odroid Go Advance 这类单板计算机上,此外还存在第三方维护的 PS Vita 移植。硬件门槛很低:内存占用不到 64 MB,单核 700 MHz 的 ARMv6 也能运行,唯一硬性要求是显卡支持 OpenGL——2007 年之后的 Nvidia/AMD 显卡基本没问题,Intel 核显要到 2011 年才支持 OpenGL 3,这类老设备在 Linux 上可以改用 GL ES 编译。官方在每个 Release 中提供 Windows x64、macOS x64 预编译包以及 Debian/Ubuntu/Mint 的 deb 包,另有 Flatpak 分发;源码构建方式在各平台的 BUILDING.md 中有详细说明。
适合学习的地方集中在三块:一是 ECS 架构在真实 2D 游戏中的落法;二是逆向工程驱动的数据格式解析与行为还原流程;三是跨平台 C++ 项目的构建、CI 与社区协作规范(仓库维护着 good first issue 标签,贡献指南与架构文档齐备)。需要注意的是:本项目不提供游戏本体,脱离原版数据无法运行;涉及原版素材时请遵守相应授权;README 中提到的网页版(Emscripten 编译的 WASM 版本)当前处于不可用状态,不要把它当作在线试玩入口。
NBlood 是用 EDuke32 引擎技术与开发思路对 Build 引擎游戏所做的逆向工程移...
id Software 公开的初代 DOOM 源代码,限非盈利使用。README 说明:运行仍需...
Endless Sky 是一款 C++ 编写的 2D 沙盒式太空探索游戏,玩法接近 Elite、Esc...