本页目录

开源国际象棋服务器(Lichess / lila)

lila · lichess-org/lila

Lila 是 lichess.org 的开源国际象棋服务器,用 Scala 编写(项目名取自「scala 中的 chess」),前端涉及 TypeScript,基于 Play Framework。README 说明其专注于实时对局与易用性,并提供对局搜索引擎、由 fishnet 分布式完成的电脑分...

RPG raylib Lua 关卡管理 渲染技术 高级
★ Stars 530 Forks 46 License AGPL-3.0 更新 2026-11-06

国内开发环境适配

Windows
官方声明支持
Linux
AI 推断/待核验
macOS
官方声明支持
引擎 / 框架:raylib 暂无中文教程标记 未标记站长实测
需自备正版 DOS 版 Ultima 7 游戏文件(如 GOG 购买)并复制到 /Data/u7 才能运行;Meson/CMake 构建时会在线拉取 raylib 等依赖,国内网络可能需配置镜像或代理,具体待核验。

中文项目介绍

这是一个针对 1992 年经典 RPG《Ultima VII: The Black Gate》(创世纪 VII:黑门)的开源替换引擎项目。它并不包含任何原作素材,也不打算用自制美术重做游戏,而是重新实现一套运行时,去读取玩家自备的正版 DOS 版 Ultima VII 数据文件,从而在原作地图、图像与剧情内容之上提供新的呈现方式。README 明确说明,作者的目标是先完成《The Black Gate》,之后再考虑支持资料片《Serpent Isle》。因此它更接近“引擎级复刻 + 现代化外壳”,既不是单纯的模拟器前端,也不是从零重制的美术工程,玩家必须先自行拥有原版游戏才能运行。

项目最直观的卖点是新的摄像机表现。官方描述提到“new camera angle and other improvements”,从操作说明可以进一步看出,游戏世界是可旋转、可缩放的视角呈现:WASD 负责在世界中移动视点,Q/E 左右旋转,鼠标滚轮拉近拉远。小地图支持左键点击直接传送,方便在大地图上跳转查看。交互方面,左键双击 NPC 会尝试发起对话,README 特别注明目前并非所有 NPC 都能正常对话;右键双击容器可以打开并查看内部物品,而 NPC 本身也被当作容器处理,可以查看其携带物。小键盘的 +/- 用于调慢或加快游戏时间流逝,小键盘回车则直接把时间推进一小时,ESC 退出。这些细节说明引擎已经搭起了视角控制、时间系统与基础交互的骨架,但功能完成度仍处于开发过程中。

核心功能

核心特性

除了正常游玩,项目还提供了一个名为 Sandbox 的调试与关卡搭建模式。这个模式允许玩家在游戏内直接改动世界并保存下来,继续迭代,相当于把编辑器和运行时放进同一个进程。左上角的红点方块用于开关 NPC 寻路显示;左键点击物体、NPC 或地砖会打印调试信息,左键双击会调用对象的 Interact() 交互函数;F1 打开形状(Shape)编辑工具,F7 切换黑色描边边框并允许拖拽静态物件,F8 打开 Lua 调试日志,F9 显示碰撞/调试包围盒,F10 用颜色标出寻路的代价分布,F11 高亮被脚本绑定的对象,右方向键则跳到下一个整点。这套按键映射本身就是理解其世界数据组织方式的入口:物件、地砖、寻路网格与脚本对象都是可单独检视的实体。

技术上,虽然仓库元数据把主语言标为 Lua,但 README 的构建信息显示主体是 C++ 工程:图形层使用 raylib 5.0,脚本层内嵌 Lua 5.4.7,并用 nlohmann/json 处理数据,构建系统同时支持 Meson 与 CMake。macOS 上通过 CMake 会下载并校验 raylib 源码后本地编译,Lua 由 ThirdParty/lua 内的源码构建,nlohmann/json 以头文件形式内置,另外链接 Cocoa、IOKit、CoreVideo、CoreFoundation 与 OpenGL 等系统框架。macOS 的 CMake 流程还会一并构建一个名为 Ghost 的图形化编辑器,它使用 Redist 中自带的编辑器素材,不需要原版游戏文件即可启动;此外工程包含 CTest 契约测试,可用 ctest --output-on-failure 运行。由此可以看出,Lua 在这里承担的是对象行为与脚本化逻辑,而引擎核心、渲染与资源解析由 C++ 完成。

技术架构分析

技术要点

运行与构建的门槛主要在素材准备。普通用户需要把原版 DOS ULTIMA7 目录下的全部文件与子目录(可以找 U7.txt 作为标志文件)复制到 Data/u7;开发者则复制到 Redist/Data/U7,并从 Redist 目录启动可执行文件,让相对资源路径正确解析。Windows 侧建议用 CMake 3.15 以上配合 Visual Studio 2019+,且必须在“Developer Command Prompt”中执行配置,构建后的 Release 可执行文件会自动复制到 Redist/u7revisited.exe;Linux 侧需要安装 cmake、build-essential 以及 libgl1-mesa-dev、libx11-dev、libxrandr-dev、libxi-dev、libxcursor-dev、libxinerama-dev 等开发包,生成的可执行文件同样会复制到 Redist;macOS 侧则用 Xcode 命令行工具加 CMake 构建。首次 CMake 配置需要联网下载 raylib,这一点在无网络或网络受限的环境中需要提前准备。

从学习角度看,这个仓库适合研究“如何在已有商业游戏数据之上重建运行时”这一主题:包括解析原作地图与图形资源、把 2D 精灵素材放进可旋转缩放的新视角中渲染、用嵌入式 Lua 为世界对象绑定行为、以及把路径寻路与编辑工具放进游戏内调试模式。它的调试键位设计(寻路代价着色、脚本对象高亮、包围盒显示)也提供了可借鉴的可视化调试思路。需要注意的风险是:项目仍在开发中,NPC 对话等功能尚未覆盖全部内容,仓库未提供 Stars、下载量或完整试玩版本的可靠信息,实际可玩程度与性能表现仍需自行构建验证;同时由于不附带任何原作素材,没有正版 Ultima VII 的玩家无法运行。项目通过 Ko-fi 与 Patreon 接受赞助,作者也在 README 中公开了反馈邮箱,欢迎以 Revisited 为标题发送意见。

开源许可证与版权说明

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

相似项目