无尽太空(Endless Sky):2D 沙盒太空探索与贸易战斗游戏
Endless Sky 是一款 C++ 编写的 2D 沙盒式太空探索游戏,玩法接近 Elite、Esc...
U7Revisited · ViridianGames/U7Revisited
作者用 Lua 为《创世纪 VII:黑门》编写的替换引擎,官方描述称将提供新的摄像机视角及其他改进,并计划后续支持《Serpent Isle》。运行前需把原版 DOS 版 Ultima 7 的游戏文件复制到 /Data/u7 目录,引擎据此读取原作地图与图像资源。St...
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 setup build 完成配置;若希望生成 Visual Studio 工程,可使用 meson setup --backend vs build。meson compile -C build 进行编译。Redist 目录启动游戏,以便正确解析相对资源路径:cd Redist && ../build/U7Revisited。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 方面,需要安装 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 给出的步骤如下:
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:左右旋转视角。+ / -:减慢或加快时间;小键盘回车:将时间推进一小时。ESC:退出。这些操作体现了引擎“新摄像机视角”的设计方向:玩家可以在俯视与旋转视角之间移动,并通过小地图快速定位。
Sandbox 是项目的调试模式,提供用于构建与测试世界的额外选项。玩家可以在游戏内修改内容并保存,从而直接在游戏内部推进开发工作。左上角的红色方块用于切换 NPC 寻路显示。
Interact()。F1:切换形状编辑器工具。F7:切换黑色描边边框与静态物体拖拽。F8:切换 Lua 调试日志。F9:切换调试包围盒。F10:切换以着色方式显示寻路代价。F11:切换脚本对象的绿色高亮。README 还特别强调欢迎反馈,并给出了作者邮箱与主题行建议。
Endless Sky 是一款 C++ 编写的 2D 沙盒式太空探索游戏,玩法接近 Elite、Esc...
id Software 公开的初代 DOOM 源代码,限非盈利使用。README 说明:运行仍需...
id Software 以 GPL 许可证发布的《雷神之锤3竞技场》(Quake III Arena)源...