{
  "added_at": "2026-10-30",
  "additional_evidence_urls": [
    "https://github.com/ludovic111/horizon/blob/d500f28ee4939d83d9796931b7079632b72dc948/tools/rea_vanilla.py",
    "https://github.com/ludovic111/horizon/blob/d500f28ee4939d83d9796931b7079632b72dc948/CONTRIBUTING.md",
    "https://github.com/ludovic111/horizon/blob/d500f28ee4939d83d9796931b7079632b72dc948/research-lock.json",
    "https://github.com/ludovic111/horizon/blob/d500f28ee4939d83d9796931b7079632b72dc948/docs/parity-workflow.md",
    "https://github.com/ludovic111/horizon/blob/d500f28ee4939d83d9796931b7079632b72dc948/.github/workflows/ci.yml",
    "https://github.com/ludovic111/horizon/tree/d500f28ee4939d83d9796931b7079632b72dc948/mods/horizon",
    "https://github.com/ludovic111/horizon/blob/d500f28ee4939d83d9796931b7079632b72dc948/THIRD_PARTY_NOTICES.md",
    "https://github.com/ludovic111/horizon/blob/d500f28ee4939d83d9796931b7079632b72dc948/LICENSE",
    "https://github.com/ludovic111/horizon/releases/tag/v2026.10.19.12",
    "https://www.npmjs.com/package/rea-agents/v/6.4.0"
  ],
  "category": "community-case-studies",
  "description_en": "Rewrites Minecraft: Java Edition 26.3 as a native Rust client, dedicated server and launcher that prepare their resources from the user’s own copy of the game. Contributors are told to read the vanilla code first, and tools/rea_vanilla.py runs a pinned REA release with a headless JADX engine over the shipped client and server jars to inspect classes, methods and callers. Differential harnesses run Java oracles against the real game and Rust probes against Horizon; README reports all 281 passing, which covers only what they compare.",
  "description_zh": "以原生 Rust 客户端、专用服务器和启动器重写 Minecraft: Java Edition 26.3，资源均由使用者自有的游戏副本生成。项目要求贡献者先阅读原版代码，tools/rea_vanilla.py 会调用固定版本的 REA，配合无界面 JADX 引擎分析官方发布的客户端与服务器 jar，查询类、方法及调用方。差分测试工具分别对真实游戏运行 Java 对照程序、对 Horizon 运行 Rust 探针；README 称全部 281 个测试通过，但这只涵盖它们所比较的内容。",
  "entry_url": "https://awesomerea.org/resources/horizon-minecraft-rust-rewrite-case/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/horizon-minecraft-rust-rewrite-case/",
  "evidence_url": "https://github.com/ludovic111/horizon/blob/d500f28ee4939d83d9796931b7079632b72dc948/README.md",
  "group": "rea",
  "id": "horizon-minecraft-rust-rewrite-case",
  "json_url": "https://awesomerea.org/resources/horizon-minecraft-rust-rewrite-case/record.json",
  "kind": "case-study",
  "markdown_url": "https://awesomerea.org/resources/horizon-minecraft-rust-rewrite-case/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/horizon-minecraft-rust-rewrite-case/index.md",
  "name": "Horizon: a Rust rewrite of Minecraft: Java Edition 26.3 with REA bytecode queries",
  "name_zh": "Horizon：借助 REA 字节码查询的 Minecraft: Java Edition 26.3 Rust 重写",
  "reconstruction_method": "engine-reimplementation",
  "record_type": "resource",
  "relationship": "community-reported-mixed-workflow",
  "requirements": [
    "The repository was created on 2026-10-03, and the reviewed main snapshot (2026-10-19) follows the date-tagged release v2026.10.19.12. README reports a playable client on Linux, macOS (Apple Silicon) and Windows with vanilla world generation, mobs and their AI, villagers, raids, redstone, every command, Anvil saves and joining vanilla servers, and its own audit of 2026-10-13 scores every subsystem complete. Listed known issues include unsupported online-mode servers, skin and pack-icon gaps, unwired creative hotbar keys and missing attribute lines in tooltips.",
    "Needs Minecraft: Java Edition installed with the official launcher and 26.3 played once, plus the 26.3 server jar for the first preparation; research-lock.json pins the client and server jar SHA-1 checksums. horizon-prepare (Python 3.10+ and JDK 25) builds resources from that copy into the gitignored .local/ directory. README says Horizon never downloads game files and never publishes decompiled source or prepared resources, and tools/check_public_tree.py rejects them in commits.",
    "Players install through the Horizon launcher for Linux x86-64, macOS Apple Silicon or Windows x64, which also starts a dedicated server that needs no Java; rendering needs Vulkan on Linux and Windows. Source builds need Rust 1.90+, Python 3.10+, JDK 25 and, on Linux, the ALSA and udev headers; development and the vanilla harnesses run on Linux. tools/rea_vanilla.py needs Node.js 22.19+ and Java 17+, runs rea-agents 6.4.0 through npx unless that version is installed, and downloads jadx-headless-mcp 0.7.1 checked by SHA-256.",
    "Each tools/test_*_parity.py harness drives the same inputs through a Java oracle under mods/horizon running the vanilla code and through a Rust probe, then compares the outputs; README says 100% means 100% of what the harnesses compare, not proof that nothing else differs. CI runs the Python and cargo tests on GitHub-hosted Linux runners and the vanilla harnesses on a self-hosted runner holding the maintainer’s copy of the game.",
    "LICENSE applies MIT to the project’s original work; dependencies, including the wgpu-hal copy under third_party/, keep their own licences, and README says Minecraft code and assets belong to Mojang and Microsoft under the Minecraft EULA and that the project is not affiliated with them. docs/parity-workflow.md describes agents working in parallel worktrees behind a shared gate, and horizon-ctl exposes the game to AI agents as a CLI and MCP server. REA’s documented role is limited to the bytecode queries in CONTRIBUTING.md and tools/rea_vanilla.py."
  ],
  "requirements_zh": [
    "该仓库创建于 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 所述的字节码查询。"
  ],
  "targets": [
    "game"
  ],
  "url": "https://github.com/ludovic111/horizon",
  "verification": "source-reviewed",
  "verified_at": "2026-10-19"
}
