不同的碰撞方案
不沿用原版引擎的碰撞方式,而是根据关卡中的 floordata 为每个房间生成优化的碰撞网格(terrain generator)。
OpenTomb · opentomb/OpenTomb
OpenTomb 是用 C++ 编写的开源《古墓丽影》经典引擎重实现,目标是运行 1—5 代原版关卡以及 TRLE 自制关卡,且不使用原始游戏代码。仓库已明确标注为不活跃、停止维护,README 建议改用社区维护的 TombEngine。具体功能完整度与可玩性待...
OpenTomb 是一个用 C++ 编写的开源项目,目标是重新实现经典《古墓丽影》(Tomb Raider)引擎。按照 README 的说明,它面向经典时期 1—5 代作品的原版关卡,同时也希望支持玩家用 TRLE(Tomb Raider Level Editor)制作的自定义关卡。
项目特别强调:它没有使用任何原版《古墓丽影》代码。README 提到,从 Eidos/Core 获取源码的尝试均未成功,因此引擎逻辑是从零重新开发的;不过项目也坦承借用了若干未完成开源项目的遗留例程,例如 OpenRaider、icculus.org 上的 VT 项目,以及 Quake Tenebrae 的部分代码。
需要首先说明的是,仓库当前已明确标注为不活跃、停止维护。README 在免责声明中建议,如果希望使用仍在活跃开发、由社区驱动的经典关卡引擎,可以转向 TombEngine(tombengine.com)。因此,本条目更适合作为引擎重制与逆向工程方向的学习参考,而不是持续更新的可玩项目。
不沿用原版引擎的碰撞方式,而是根据关卡中的 floordata 为每个房间生成优化的碰撞网格(terrain generator)。
不受原版 30fps 上限约束。
使用 OpenGL、OpenAL、SDL 与 Bullet Physics 等常见且灵活的库。
实体功能由 Lua 脚本定义,减少硬编码,扩展或修改功能时不必改动并重新编译引擎本体。
尝试开启原引擎中大量被弃用或未使用的特性,例如新动画、未使用物品、关卡文件中隐藏的 PSX 专用结构等。
README 用专门一节解释了“为什么还要写一个新引擎”,理由主要有两点:
项目希望在现代 PC 的 CPU 与显卡上重现经典《古墓丽影》的体验,同时加入当代的更新与扩展。
README 明确说明 OpenTomb 是跨平台引擎,当前可在 Windows、Mac 与 Linux 上运行。移动端尚无开发计划,但作者认为技术上可行。
要运行原版关卡,需要自备对应游戏的资源,且这些资源往往格式晦涩、各代之间还有差异。README 给出的准备方式包括:
/data/tr*/ 目录,例如 TR3 为 OpenTomb/data/tr3/data/;Gold 版本放入 data/tr*_gold/。源码附带 CMakeLists.txt,可用 CMake 构建。README 给出的要点:
/src 下所有源文件,并在链接器设置中加入 libmingw32、libSDL2main、libSDL2.dll、libpng、libz、libpthread 等库。cmake . && make;依赖 SDL2、png、ZLIB 的开发头文件,Ubuntu 系可用 sudo apt-get install libopenal-dev libsdl2-dev libpng12-dev libglu1-mesa-dev zlib1g-dev 安装。README 特别提醒:编译需要 C++11(-std=c++11)。可以使用 -march 等 CPU 优化参数与 -O1/-O2/-O3 优化级别,但旧版 GCC 使用 -O3 可能因 Bullet 导致崩溃,GCC 5.1+ 据称可正常编译。
构建完成后直接运行生成的可执行文件即可,默认无需命令行参数。按反引号键()打开控制台,可输入命令选择关卡、修改设置,输入 help查看命令列表,输入exit` 退出。
配置由 config.lua 与 autoexec.lua 管理:前者保存持久的引擎与游戏设置,分为 screen、audio、render、controls、console、system 等区段;后者是启动时执行的命令列表,README 提醒随意修改可能导致引擎工作异常。
选择关卡使用 setgamef(game, level),其中 game 为 1—5。庄园关卡通常为 0,没有庄园的作品从 1 开始;例如加载 TR3 第 2 关输入 setgamef(3, 2)。
由于项目已停止维护,阅读时建议把它当作“如何从零重写一个经典 3D 动作冒险引擎”的案例:关注其房间碰撞网格生成思路、Lua 驱动的实体脚本化设计,以及基于 SDL/OpenGL/Bullet 的跨平台工程组织方式。若目标是实际制作或运行经典关卡,README 本身已建议转向 TombEngine。
id Software 公开的初代 DOOM 源代码,限非盈利使用。README 说明:运行仍需...
Frogatto & Friends 是一款 2D 横版动作冒险游戏,主角是一只青蛙;开发团队...
DDNet 是 Teeworlds 的一个模组,源自 DDRace,是一款免费的合作型 2D 平台跳...