案例
Horizon:借助 REA 字节码查询的 Minecraft: Java Edition 26.3 Rust 重写
以原生 Rust 客户端、专用服务器和启动器重写 Minecraft: Java Edition 26.3,资源均由使用者自有的游戏副本生成。项目要求贡献者先阅读原版代码,tools/rea_vanilla.py 会调用固定版本的 REA,配合无界面 JADX 引擎分析官方发布的客户端与服务器 jar,查询类、方法及调用方。差分测试工具分别对真实游戏运行 Java 对照程序、对 Horizon 运行 Rust 探针;README 称全部 281 个测试通过,但这只涵盖它们所比较的内容。
使用条件与局限
- 该仓库创建于 2026-10-03,所审阅的 main 快照(2026-10-19)晚于按日期标记的发行版 v2026.10.19.12。README 称客户端可在 Linux、macOS(Apple Silicon)和 Windows 上游玩,具备原版世界生成、生物及其 AI、村民、袭击、红石、全部命令、Anvil 存档以及加入原版服务器等功能;项目自己在 2026-10-13 的审核中将所有子系统评为完成。列出的已知问题包括不支持正版验证模式的服务器、皮肤和资源包图标的缺陷、创造模式快捷栏按键未接通,以及物品提示缺少属性行。
- 需要用官方启动器安装 Minecraft: Java Edition 并至少运行一次 26.3 版,首次准备时还需要 26.3 的服务器 jar;research-lock.json 固定了客户端和服务器 jar 的 SHA-1 校验值。horizon-prepare(需要 Python 3.10+ 和 JDK 25)从该副本生成资源,放入被 Git 忽略的 .local/ 目录。README 称 Horizon 从不下载游戏文件,也从不发布反编译源码或生成的资源,tools/check_public_tree.py 会在提交时拒绝这些内容。
- 玩家通过 Horizon 启动器安装,支持 Linux x86-64、macOS Apple Silicon 和 Windows x64,启动器也可启动无需 Java 的专用服务器;在 Linux 和 Windows 上渲染需要 Vulkan。从源码构建需要 Rust 1.90+、Python 3.10+、JDK 25,在 Linux 上还需要 ALSA 和 udev 开发头文件;开发和原版对照测试都在 Linux 上进行。tools/rea_vanilla.py 需要 Node.js 22.19+ 和 Java 17+,在未安装该版本时通过 npx 运行 rea-agents 6.4.0,并下载经 SHA-256 校验的 jadx-headless-mcp 0.7.1。
- 每个 tools/test_*_parity.py 测试都把相同输入分别交给 mods/horizon 下运行原版代码的 Java 对照程序和 Rust 探针,再比较输出;README 说明 100% 指的是测试所比较内容的 100%,并不证明其他方面没有差异。CI 在 GitHub 托管的 Linux 运行器上执行 Python 和 cargo 测试,原版对照测试则在存有维护者自有游戏副本的自托管运行器上执行;本合集未运行任何内容。
- LICENSE 对项目原创部分采用 MIT;依赖项(包括 third_party/ 下的 wgpu-hal 副本)各自保留许可证,README 声明 Minecraft 的代码和素材属于 Mojang 和 Microsoft,受 Minecraft EULA 约束,项目与二者无关。docs/parity-workflow.md 描述了多个智能体在并行工作树中经共享检查关卡提交改动,horizon-ctl 则以命令行和 MCP 服务器的形式向 AI 智能体开放游戏操作。文档中 REA 的作用仅限于 CONTRIBUTING.md 和 tools/rea_vanilla.py 所述的字节码查询。
关于此条目
- 类型
- 案例
- 类别
- REA 社区调查案例
- 关联
- 作者报告的混合工具流程
- 目标
- 游戏
来源复核于
说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。
一手来源
- README.md GitHub · ludovic111/horizon · 修订 d500f28
- tools/rea_vanilla.py GitHub · ludovic111/horizon · 修订 d500f28
- CONTRIBUTING.md GitHub · ludovic111/horizon · 修订 d500f28
- research-lock.json GitHub · ludovic111/horizon · 修订 d500f28
- docs/parity-workflow.md GitHub · ludovic111/horizon · 修订 d500f28
- .github/workflows/ci.yml GitHub · ludovic111/horizon · 修订 d500f28
- mods/horizon GitHub · ludovic111/horizon · 修订 d500f28
- THIRD_PARTY_NOTICES.md GitHub · ludovic111/horizon · 修订 d500f28
- LICENSE GitHub · ludovic111/horizon · 修订 d500f28
- https://github.com/ludovic111/horizon/releases/tag/v2026.10.19.12
- https://www.npmjs.com/package/rea-agents/v/6.4.0