本页目录

创世纪7:重访(Ultima VII: Revisited)—— Lua 编写的《创世纪7:黑门》替换引擎

U7Revisited · ViridianGames/U7Revisited

作者用 Lua 为《创世纪 VII:黑门》编写的替换引擎,官方描述称将提供新的摄像机视角及其他改进,并计划后续支持《Serpent Isle》。运行前需把原版 DOS 版 Ultima 7 的游戏文件复制到 /Data/u7 目录,引擎据此读取原作地图与图像资源。St...

RPG raylib 自研引擎 Lua 寻路算法 对话系统 游戏状态管理 地图编辑器 高级
★ Stars 533 Forks 46 License BSD-2-Clause 更新 2026-11-09

国内开发环境适配

Windows
官方声明支持
Linux
官方声明支持
macOS
官方声明支持
引擎 / 框架:raylib 暂无中文教程标记 未标记站长实测
首次 CMake 配置需联网从 GitHub 下载 raylib 源码归档,国内网络可能较慢或失败,建议配置代理或镜像;Meson 构建同样可能涉及依赖下载。原版 DOS 游戏文件需用户自行合法获取,项目不提供。

中文项目介绍

Ultima VII: Revisited(中文常译作《创世纪7:重访》)是一个面向经典角色扮演游戏《Ultima VII: The Black Gate》(创世纪 VII:黑门)的开源替换引擎项目。作者 ViridianGames 的目标并非简单复刻,而是以现代技术重新呈现这款 1992 年的作品:引擎会读取原版 DOS 游戏的数据文件,在此基础上提供新的摄像机视角以及其他改进,并计划在未来版本中支持资料片《Serpent Isle》(蛇岛)。

项目以 Lua 作为主要脚本语言,同时包含 C++ 构建的底层框架。README 中明确说明,这是一个开源项目,任何人都可以从 GitHub 获取源码并自行构建。作者也提供了 Ko-fi 与 Patreon 赞助链接,以及一段 YouTube 预览视频,用于展示“即将到来的内容”。

需要特别说明的是:本页面不对 Stars 数量、实际运行效果或 Demo 完成度做任何断言,这些信息均待核验。以下内容严格依据 README 可核验信息进行中文改写。

技术架构分析

构建方式

项目提供了多种构建路径,覆盖不同平台与工具链。

使用 Meson(跨平台)

  • 安装 Meson 构建系统。
  • 执行 meson setup build 完成配置;若希望生成 Visual Studio 工程,可使用 meson setup --backend vs build。
  • 执行 meson compile -C build 进行编译。
  • 从 Redist 目录启动游戏,以便正确解析相对资源路径:cd Redist && ../build/U7Revisited。

在 macOS 上使用 CMake

macOS 工作流同时构建游戏与 Ghost GUI 编辑器,所需工具包括 Xcode Command Line Tools(提供支持 C++17 的 Apple Clang、Make、Git 与 macOS SDK)以及 CMake 3.15 或更高版本。该流程不要求 Meson、Ninja 或 Python。

依赖库方面:raylib 5.0 由 CMake 从 GitHub 下载校验后的源码归档并本地构建;Lua 5.4.7 来自 ThirdParty/lua 源码;nlohmann/json 头文件位于 ThirdParty/nlohmann;Cocoa、IOKit、CoreVideo、CoreFoundation 与 OpenGL 由 macOS 系统框架提供。首次配置需要联网下载 raylib。

构建命令示例:

cmake -S . -B build-cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release
cmake --build build-cmake --parallel 4
(cd build-cmake && ctest --output-on-failure)

运行游戏与编辑器时,同样需要从 Redist 目录启动:

(cd Redist && ../build-cmake/U7Revisited)
(cd Redist && ../build-cmake/Ghost)

在 Windows 与 Linux 上使用 CMake

Windows 方面,需要安装 CMake 3.15 或更高版本(Visual Studio 2019+ 自带 CMake 支持),并且必须从“Developer Command Prompt for VS 2019”启动命令行,普通 PowerShell 或 cmd 无法正确找到 cmake。随后在项目目录执行 cmake -S . -B build 生成 build/U7Revisited.sln,用 Visual Studio 构建即可,Release 可执行文件会自动复制到 Redist/u7revisited.exe。

Linux 方面,先安装 CMake、build-essential 以及 libgl1-mesa-dev、libx11-dev、libxrandr-dev、libxi-dev、libxcursor-dev、libxinerama-dev 等依赖,然后执行 cmake -S . -B build -DCMAKE_BUILD_TYPE=Release 与 cmake --build build -j$(nproc),Release 可执行文件会自动复制到 Redist/u7revisited。

技术要点与学习价值

从 README 可以确认的技术信息包括:引擎以 Lua 为主要语言,底层使用 C++ 与 raylib 渲染,构建系统同时支持 Meson 与 CMake,并包含一个名为 Ghost 的 GUI 编辑器。项目通过读取原版 DOS 游戏文件来复用地图与图像资源,这属于典型的“替换引擎/资源兼容层”思路。

对于学习者而言,该项目涉及资源加载与格式解析、摄像机与视角控制、NPC 寻路与交互、时间系统、调试工具与编辑器集成等主题。不过 README 并未展开这些模块的具体实现细节,因此本页不对其内部架构做进一步推断。

补充说明

安装与运行引擎

要运行该替换引擎,必须先准备原版游戏文件。README 给出的步骤如下:

  • 找到你合法持有的 DOS 版 Ultima 7 游戏文件,例如 GOG 平台常见的安装路径 C:\Program Files (x86)\GOG Galaxy\Games\Ultima 7。
  • 将原版目录中的所有文件、文件夹及子文件夹完整复制到项目的 ./Data/U7 目录下。README 提示可以通过查找 U7.txt 文件来确认复制是否完整。
  • 引擎启动后会从该目录读取原作的地图与图像资源,因此缺少这些文件将无法正常进入游戏。

对于开发者,README 另有一套说明:先将项目克隆到本地,再把原版 DOS Ultima7 目录的全部内容复制到 $(SolutionDir)/Redist/Data/U7/,这样在开发环境中运行时也能定位到资源。

操作方式

README 列出了当前引擎的默认控制方案:

  • WASD:移动角色。
  • Q/E:左右旋转视角。
  • 鼠标滚轮:缩放视野。
  • 在小地图上左键点击某处,可传送至该位置。
  • 双击 NPC 左键:尝试与其对话(README 注明并非所有 NPC 都已可用)。
  • 双击容器右键:打开并查看内容(NPC 也被视为容器)。
  • 小键盘 + / -:减慢或加快时间;小键盘回车:将时间推进一小时。
  • ESC:退出。

这些操作体现了引擎“新摄像机视角”的设计方向:玩家可以在俯视与旋转视角之间移动,并通过小地图快速定位。

沙盒模式

Sandbox 是项目的调试模式,提供用于构建与测试世界的额外选项。玩家可以在游戏内修改内容并保存,从而直接在游戏内部推进开发工作。左上角的红色方块用于切换 NPC 寻路显示。

  • 左键单击物体、NPC 或地板格:打印调试信息。
  • 左键双击:对物体或 NPC 调用 Interact()。
  • F1:切换形状编辑器工具。
  • F7:切换黑色描边边框与静态物体拖拽。
  • F8:切换 Lua 调试日志。
  • F9:切换调试包围盒。
  • F10:切换以着色方式显示寻路代价。
  • F11:切换脚本对象的绿色高亮。
  • 右方向键:将时间快进到下一个小时。

README 还特别强调欢迎反馈,并给出了作者邮箱与主题行建议。

开源许可证与版权说明

许可证标识:BSD-2-Clause。源码、资源与依赖许可可能不同,请以官方仓库为准。本站仅做索引,不托管源码。

相似项目