# 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 个测试通过，但这只涵盖它们所比较的内容。

- 类型：案例
- 目标：游戏
- 类别：REA 社区调查案例
- 关联：作者报告的混合工具流程
- 来源复核于：2026-10-19
- 收录于：2026-10-30
- 原始资源：<https://github.com/ludovic111/horizon>
- 一手来源：<https://github.com/ludovic111/horizon/blob/d500f28ee4939d83d9796931b7079632b72dc948/README.md>
- 目录页面：<https://awesomerea.org/zh/resources/horizon-minecraft-rust-rewrite-case/>
- 记录 JSON：<https://awesomerea.org/resources/horizon-minecraft-rust-rewrite-case/record.json>
- 英文版：[English](https://awesomerea.org/resources/horizon-minecraft-rust-rewrite-case/index.md)

## 使用条件与局限

- 该仓库创建于 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 所述的字节码查询。

## 一手来源

1. <https://github.com/ludovic111/horizon/blob/d500f28ee4939d83d9796931b7079632b72dc948/README.md>
2. <https://github.com/ludovic111/horizon/blob/d500f28ee4939d83d9796931b7079632b72dc948/tools/rea_vanilla.py>
3. <https://github.com/ludovic111/horizon/blob/d500f28ee4939d83d9796931b7079632b72dc948/CONTRIBUTING.md>
4. <https://github.com/ludovic111/horizon/blob/d500f28ee4939d83d9796931b7079632b72dc948/research-lock.json>
5. <https://github.com/ludovic111/horizon/blob/d500f28ee4939d83d9796931b7079632b72dc948/docs/parity-workflow.md>
6. <https://github.com/ludovic111/horizon/blob/d500f28ee4939d83d9796931b7079632b72dc948/.github/workflows/ci.yml>
7. <https://github.com/ludovic111/horizon/tree/d500f28ee4939d83d9796931b7079632b72dc948/mods/horizon>
8. <https://github.com/ludovic111/horizon/blob/d500f28ee4939d83d9796931b7079632b72dc948/THIRD_PARTY_NOTICES.md>
9. <https://github.com/ludovic111/horizon/blob/d500f28ee4939d83d9796931b7079632b72dc948/LICENSE>
10. <https://github.com/ludovic111/horizon/releases/tag/v2026.10.19.12>
11. <https://www.npmjs.com/package/rea-agents/v/6.4.0>

## 同分区更多条目：游戏

- [impacto：MAGES. 视觉小说引擎的重新实现](https://awesomerea.org/zh/resources/impacto-mages-engine-case/index.md) · 案例
- [IW4L：用使用者已安装的游戏运行《现代战争 2》的 Rust 运行时](https://awesomerea.org/zh/resources/iw4l-mw2-rust-runtime-case/index.md) · 案例
- [Jazz² Resurrection：《爵士兔 2》的原生 C++ 重新实现](https://awesomerea.org/zh/resources/jazz2-resurrection-engine-case/index.md) · 案例
- [Kinoko：为精确回放幽灵记录而重新实现 Mario Kart Wii 物理引擎](https://awesomerea.org/zh/resources/kinoko-mkwii-physics-reimplementation-case/index.md) · 案例
- [LBA2 Remake：以 TypeScript 和 Three.js 重新实现 Little Big Adventure 1 与 2](https://awesomerea.org/zh/resources/lba2remake-little-big-adventure-case/index.md) · 案例
- [Legend of Legaia：Rust 移植与本地读盘的浏览器工具](https://awesomerea.org/zh/resources/legend-of-legaia-rust-port-case/index.md) · 案例

## 关于此条目

说明已依据一手来源复核。
原创说明采用 MIT 许可；外部项目、论文与素材保留各自的权利和许可。
