无尽太空(Endless Sky):2D 沙盒太空探索与贸易战斗游戏
Endless Sky 是一款 C++ 编写的 2D 沙盒式太空探索游戏,玩法接近 Elite、Esc...
TombEngine · TombEngine/TombEngine
TombEngine(TEN)是一款面向《古墓丽影》自制关卡的开源引擎,旨在突破经典作品的限制并修复问题。它以 Lua 为原生脚本语言,支持原系列 1-5 的多类对象、高帧率、抗锯齿、mipmapping、SSAO、完整蒙皮、斜向几何、无上限地图尺寸及精简...
NetHack 官方 Git 仓库托管的是这款经典地牢探索类 Roguelike 的原始源代码。按仓库 README 的说明,NetHack 5.0 是在既有 NetHack 游戏基础上的增强版本,而 NetHack 本身是 Rogue 与 Hack 的远支后裔,并且是 NetHack 3.6 的直系后代。当前仓库主线承载的是 5.0.1 开发中(work-in-progress)代码,与已经发布的 5.0.0 正式版属于同一代际,但性质完全不同,读者在取用前需要先分清这两者的区别。
关于版本性质,README 写得非常直白:5.0.1 开发中版本并不是一次正式发布,它的主要内容是针对 5.0.0 的缺陷修复,为将来的 5.0.1 发布做准备;源码分发中的 doc/fixes5-0-1.txt 会随每次提交持续更新修复清单。官方明确提示,由于它不是发布版,很可能仍然存在 bug,请不要把它当作已经发布的代码来对待;如果稳定性是首要考虑,应当使用最新的 NetHack 5.0.0 正式版。之所以提前公开这条开发线,是为了让感兴趣的玩家和开发者能够观察、测试并参与到持续开发中,仓库欢迎建设性的建议、GitHub 拉取请求以及缺陷报告。
5.0 这一代在整体架构与构建流程上做了一些值得注意的改造。其一是源码符合 C99 标准;其二是降低了在一个平台和操作系统上构建、再到另一个(可能相当不同的)平台和操作系统上运行的门槛,也就是通常所说的“交叉编译”,顶层目录下的 Cross-compiling 文件对此有专门说明;其三,原先在构建期使用的基于 yacc 和 lex 的关卡编译器、同样基于 yacc 和 lex 的地牢编译器,以及过去由 NetHack 的 makedefs 工具完成的任务(quest)文本处理,都被替换成了 Lua 文本方案,这些 Lua 内容会在游戏运行过程中被加载和处理。也就是说,关卡、地牢与任务相关数据的处理方式从“构建期生成”转向了“运行时解释”,这对希望修改内容或研究数据驱动设计的读者来说是重要变化。
README 还给出了一套严谨的上手顺序。首先要把代码解压到一个专用的新目录(文中称为 Top 目录),目录叫什么名字无所谓;解压后 Top 目录下应有一个名为 Files 的文件,它列出了每个目录中“应当存在”的全部文件,可用于核对代码包是否完整,同时也列出了构建过程中会生成哪些文件;除非你准备同步修改 makefile 与 makedefs 程序中的全部目录引用,否则不要更改这些目录的名字。在做任何其他事情之前,必须仔细阅读 dat 子目录下的 license 文件,官方强调会认真对待其中的条款。之后才进入编译环节:默认配置是 SysV/Sun/Solaris2.x,原因只是代码历史上托管在这类系统上;sys//Install. 或 sys//NewInstall. 用于指导在特定操作系统上配置程序,win//Install. 则在需要时帮助配置特定的窗口环境,交叉编译场景应参考 Cross-compiling 文件。
平台支持方面,README 依据最近一次正式发布 NetHack 5.0 给出了经过测试的清单:Intel Pentium 及以上的 Linux、BSDI 可以编译并运行;Intel Pentium 及以上的 Windows 10 或 11 可以编译并运行;Intel 平台以及搭载 Apple M1、M2、M3、M4、M5 的 Mac,在 macOS 10.11(El Capitan)到 macOS 26(Tahoe)范围内可以编译并运行,需遵循 sys/unix/NewInstall.unx 中的说明;运行 MS-DOS 并带 DPMI 的 Intel 80386 及以上平台,可通过 djgpp 编译器在 Linux 上交叉编译,并在 DOS 或 DOSBox 等模拟器中运行;AmigaOS 3.0 及以后版本可在 Linux 或 macOS 上交叉编译,运行需要 Kickstart 39+、至少 6 MB 空闲内存(建议 8 MB)以及约 5 MB 硬盘空间。此外,在 OpenVMS(VMS)V8.4 的 Alpha 与 Integrity/Itanium/IA64 上、以及 V9.2-3 的 x86-64 上,也取得过一些运行或编译的成功经验。
反馈渠道与协作约定同样写在 README 里:遇到构建问题或发现缺陷,建议通过官网的 Contact Us 页面提交报告,并在相应字段中附上 #version 或命令行 --version 输出的版本信息;邮件沟通时需要说明机器类型、操作系统与补丁级别,不要直接发送二进制文件(例如存档或 bones 文件),如果认为存档有助于定位问题,应先用文字描述问题并说明自己持有存档,等待开发团队成员联系后再发送。官方会尽量回复每份报告,但可能耗时较久,尤其是在新版本发布后报告最集中的时期;他们不提供游戏攻略提示,也不会回答下一个版本何时发布。若想直接以邮件提交源码补丁,可发往 nethack-bugs 邮箱;自行给 5.0 代码打上外部自由补丁是可以的,但官方无法为其提供支持或接收相关缺陷报告,官方处理补丁时会假定你的代码与上游保持同步。可获取最新代码的公开仓库位于 GitHub 与 SourceForge 两处。
对学习者而言,这个仓库的价值主要体现在几个方面:它是一份体量庞大的 C99 工程,展示了长期演进的 C 项目如何组织多平台构建、如何在 sys 与 win 两个维度上抽象系统接口与窗口环境,以及如何用 Lua 脚本替代构建期编译器来实现数据驱动的内容处理;交叉编译文档也提供了把同一份代码投放到达 OS、AmigaOS 等异构平台的实践路径。需要注意的门槛是:代码历史长、文档分散在 README、Files、各平台 Install 说明与 license 等多个纯文本中,首次构建需要耐心按顺序执行;5.0.1 是开发中的分支,行为与内部细节仍可能变化,若要用于二次开发或长期维护,应以正式发布版为基准并与上游提交保持同步。
Endless Sky 是一款 C++ 编写的 2D 沙盒式太空探索游戏,玩法接近 Elite、Esc...
NBlood 是用 EDuke32 引擎技术与开发思路对 Build 引擎游戏所做的逆向工程移...
CatacombGL 是 Catacomb 3D 与 Catacomb 冒险三部曲(Abyss、Armageddon、Apo...