Meritous · Patashu/Meritous
Patashu 对 asceai 原作 Meritous(asceai.net/meritous)的 fork。仓库内附带的 v1.2 说明文档显示,原作是一款俯视角动作探索游戏:玩家扮演 PSI 使用者 MERIT 进入 Orcus Dome 寻找答案,用方向键移动、空格蓄能 PSI 回路攻击,Tab 查...
Beyond All Reason(BAR)是一款建立在 Recoil RTS 引擎之上的开源即时战略游戏。当前这个 GitHub 仓库是 BAR 的“游戏主体代码仓库”,它承载的是游戏逻辑与内容代码,并非一个双击即可独立运行的完整客户端。README 明确把 BAR 拆成三个主要部分:本仓库中的游戏代码、独立的大厅客户端 Chobby(BYAR-Chobby),以及底层的 Recoil RTS 引擎(RecoilEngine)。因此,理解这个仓库首先要区分“游戏代码”“大厅/启动器”“引擎”三者的边界:玩家通过大厅进入对局,引擎负责运行时,而本仓库提供的是运行在引擎之上的 Lua 游戏代码。README 对外给出的首要入口是官网的下载页与上手引导页,说明项目希望玩家通过官方发行渠道获取完整应用,而不是直接从源码仓库启动游戏。
从玩家视角看,README 没有展开具体阵营、单位、平衡性或版本状态,而是把下载与玩法说明交给官网:下载页提供完整 BAR 应用的安装说明,指南页提供如何游玩的内容。这种组织方式也说明本仓库的定位更偏向开发与内容制作,而不是面向普通玩家的说明书。仓库顶部仅以“Open source RTS game built on top of the Recoil RTS Engine”概括项目性质,并附有 Discord 社区徽章。对于只想体验游戏的用户,正确路径是访问官网下载并安装启动器;对于想修改游戏代码的开发者,才需要按 README 的“Development Quick Start”把本仓库接入本地 BAR 安装目录。
开发环境的搭建流程在 README 中写得相当具体。第一步不是直接克隆本仓库,而是先获得一个可用的 lobby/launcher 安装:可以下载官网的完整 BAR 应用并运行,也可以先下载 Chobby 的 release 并启动 Chobby,由它自动下载安装引擎和其他依赖。随后需要找到 BAR 安装目录,README 给出的方法是打开启动器(不是完整游戏),点击“Open install directory”按钮;在 Windows 上该目录可能位于用户目录的 AppData/Local/Programs/Beyond-All-Reason/data,在 Linux 上可能是 .local/state/Beyond All Reason/。接下来要在安装目录中创建空的 devmode.txt 文件,再在 games 子目录(不存在则创建)中把本仓库克隆到一个以 .sdd 结尾的目录,例如 BAR.sdd,并且克隆时要带上 --recurse-submodules 以拉取子模块。README 还提示通过检查 Beyond-All-Reason/data/games/BAR.sdd/modinfo.lua(Windows)或对应 Linux 路径下的 modinfo.lua 来确认路径正确。
完成克隆后,开发者从启动器正常启动完整游戏,进入 Settings > Developer > Singleplayer,选择“Beyond All Reason Dev”,之后通过游戏 UI 正常开一局,就会使用 BAR.sdd 中的开发版 Lua 代码,而不是安装包自带的游戏代码。这套“devmode.txt + .sdd 目录 + 开发者单机选项”的机制,是本仓库最重要的开发工作流之一。README 还补充说明,.sdd 目录用于运行原始 Lua,并链接到 Spring Engine Wiki 的 Gamedev:Structure 页面,帮助开发者理解引擎期望的目录结构。若同时开发 Chobby,也需要把 Chobby 代码克隆到 games 目录,并按 Chobby README 的指南操作;若要进行自动化集成测试,则可参考仓库内 tools/headless_testing/README.md 的测试文档。
本仓库还包含一套基于 Lua 的自动化测试说明。前置条件是 Lua 5.1:Debian/Linux 使用 apt 安装 lua5.1,Windows 的 MSYS2 UCRT64 环境使用 pacman 安装 mingw-w64-ucrt-x86_64-lua51,macOS 使用 brew 安装 lua@5.1。包管理使用 Lux Package Manager,需按 Lux 的 Getting Started 指南安装,或在 Lux 的 GitHub 上按 Cargo 说明从源码构建。随后在仓库根目录(lux.toml 所在位置)执行 lux --max-jobs=2 update 安装项目包,README 特别提醒 --max-jobs 的数值与机器环境有关,设置过高有时会导致死锁。运行测试主要通过 Busted,可直接执行 busted,也可用 busted -t focus 按标签过滤;还可以走 Lux 的包装命令 lx test、lx check(Emmylua 类型检查)或 lx shell --test 进入可手动执行 busted 的 shell。README 还给出了可选的 VS Code Test Switcher 插件配置,用于在测试文件与被测代码之间快速跳转。
从学习角度看,这个仓库适合研究“大型开源游戏如何把引擎、大厅与 Lua 游戏代码分层”,以及如何用 .sdd 开发目录覆盖安装版内容、如何用 Busted 与 Lux 组织 Lua 测试、如何借助 headless testing 做集成验证。测试配置中出现的 luarules、common、luaui、gamedata 等目录名,也能让读者窥见游戏代码按规则、通用逻辑、界面与数据分层的组织方式;但 README 本身没有逐项介绍这些模块的职责,阅读源码时仍需自行核对。需要注意的是,README 没有给出 Stars、性能数据、具体玩法内容或版本状态,也不代表本仓库可以直接替代完整客户端;国内开发者还应留意从 GitHub 克隆仓库与子模块、安装 Lux 及其依赖时可能遇到的网络与包源问题,README 未对此作专门说明,相关环境需待核验。平台方面,README 明确出现 Windows 与 Linux 的安装目录示例,macOS 仅出现在 Lua 5.1 测试依赖的安装说明中,因此不宜据此推断 macOS 游戏客户端支持情况。
Endless Sky 是一款 C++ 编写的 2D 沙盒式太空探索游戏,玩法接近 Elite、Esc...
Unknown Horizons 官方代码仓库,使用 Python 开发。据 README,这是一款 2D...