
Horizon 用 Rust 重写 Minecraft Java 版 26.3,性能超越原版
来源标题:Minecraft: Java Edition 26.3 rewritten from scratch in Rust
开源项目 Horizon 用 Rust 从零重写了 Minecraft: Java Edition 26.3,不含 Java,声称在相同机器、世界和路径下帧率高于 Java 版且加载更快。该项目通过数百项差分测试确保世界、规则和地形与 Java 版一致,采用 MIT 许可证,但属非官方版本,玩家需自备 Java 版副本。基准测试显示其帧率超过搭载 Sodium 等优化模组的原版。
以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。
网站 · 下载 · 文档 · Discord · 路线图 · 参与贡献 Minecraft: Java Edition 26.3,用 Rust 重写。你的世界、相同的规则、相同的地形,与 Java 版逐一对照,经过数百项差分测试验证,封装在一个无需 Java 的原生程序中。免费、开源(MIT)、非官方:你用自己的 Java 版副本游玩。 以下内容均来自当前版本。 Nightly 2026-11-05,在 Mac mini(Apple M4 Pro,Metal)上运行:原版纹理,无模组或光影包,渲染距离 32,远景地形开启。 在同一台机器、同一世界、同一路径下,Horizon 的帧率高于 Java 版,加载也更快。tools/perf_bench.py 依次运行每个游戏,从全新世界(种子 1234)开始,等待地形生成完毕后飞越一个村庄、一片森林、一片海洋和一座山。测量于 2026-10-29/30,在一台空闲的 Windows 11 机器(Ryzen 7 9800X3D,RTX 5080)上进行,Horizon v0.2.97 为启动器安装的版本,窗口 1280x720,关闭垂直同步,每个数字取三局游戏。帧率为四个场景的平均值,括号内为最慢 1% 帧: “Vanilla + mods”指 Sodium、Lithium、FerriteCore 和 ImmediatelyFast。Horizon 到达标题画面耗时 2.9–3.2 秒,原版为 7.5–7.7 秒(模组客户端为 10.8–11.1 秒);场景区块加载快 2.9–3.8 倍;游玩时工作集稳定在 1.1–1.7 GB,而原版为 1.9–2.9 GB。每个场景的置信区间和运行加载日志:2026-10-29 报告。测量方法及如何在你自己的机器上测量:docs/benchmark.md。playhorizon.dev/benchmarks 将这些运行结果与一台 2016 年的笔记本电脑、一台 Mac mini 和一台游戏台式机并列展示。 从 playhorizon.dev 或启动器发布页获取 Horizon 启动器: 你还需要一个拥有 Minecraft: Java Edition 的 Microsoft 账户。在启动器中用它登录,启动器仅允许拥有该游戏的账户游玩(原因)。Horizon 不包含任何 Minecraft 代码或资源:会复用已有安装(官方启动器、Prism、MultiMC 等),若没有,启动器会为你的账户从 Mojang 下载 26.3。分步指南:安装与首次启动。 内容模组(.hmod):方块、物品、配方、战利品、模型和纹理,无需代码。 原生模组(.hnmod):Rust 代码,由启动器为你编译进游戏,无需安装任何东西。 Java 模组(Fabric、NeoForge、Forge)无法运行:Horizon 没有 Java。启动器会提取其 jar 内的数据和资源,并以相同方式导入整合包(.mrpack、CurseForge zip、Prism 实例)(整合包)。 光影包:Iris/OptiFine 格式的包(shaders/ 文件夹)和 Horizon 自有的 WGSL 包,位于 视频设置 → 光影包(包格式)。 模组默认关闭:全新安装的游玩体验与 vanilla 26.3 完全一致。启动器的模组页面可浏览 Horizon 的注册表和 Modrinth。模组 · 制作模组。 启动器的服务器页面可创建、启动、备份和更新服务器,并邀请好友。在 VPS 上,horizon-server 一条命令即可安装,无需 Java,同时接受 vanilla 26.3 和 Horizon 玩家。托管服务器(参考)。 AI 代理和脚本可以游玩 Horizon。随游戏附带的 horizon-ctl 以 JSON 读取其状态并像玩家一样操作;horizon-ctl mcp 通过 MCP 提供相同的命令。 horizon-ctl launch --world Survival --seed 5 --wait # 查找启动器安装的版本 horizon-ctl state # 位置、生命、食物、目标、屏幕…… horizon-ctl goto -0.5 65 -2.5 --near 2.5 # 沿路径走到那里 horizon-ctl break -1 65 -3 # 挖掘它;返回掉落物 horizon-ctl help 列出所有命令。代理控制。 需要 Rust 1.90+、Python 3.10+、JDK 25,在 Linux 上还需要 libasound2-dev libudev-dev。horizon-prepare 从你自己的 Java Edition 26.3 副本构建游戏资源(对照 research-lock.json 校验),绝不下载它: git clone https://github.com/horizon-rust/horizon.git cd horizon cargo run --release -p horizon-prepare -- --prepare --server-jar ~/Downloads/server.jar # 需要 JDK 25 cargo run --release -p horizon-prepare -- sounds # 可选:从你的启动器安装中获取声音 cargo run --release -p horizon-client 准备好的文件落在被 git 忽略的 .local/ 中:切勿提交或分享它们。选项、控制和架构:原生客户端指南;所有开发者文档:docs/README.md。 欢迎提交 issue 和 pull request:请阅读 CONTRIBUTING.md(vanilla 优先,小型 pull request),并查看 ROADMAP.md 或 playhorizon.dev/hub 了解后续计划。问题咨询:Discord。提交 pull request 前,运行自检并粘贴其输出: git config core.hooksPath .githooks python3 tools/pr_ready.py 它会运行 rustfmt、clippy、受影响 crate 的测试、Python 测试、公共树检查以及你的更改所影响的 vanilla 测试框架。切勿提交游戏文件、反编译源码或准备好的资源。 Horizon 的治理方式(理事会、主题小组及其负责人、Horizon 团队、 moderation):GOVERNANCE.md。 玩家可见的差距:移植台账发现的 833 项中 0 项未解决,该台账将每个 vanilla 26.3 方法与 Horizon 的代码逐一对照:玩家会注意到但 Horizon 尚未具备的 vanilla 行为。按领域:动物 0;怪物和 Boss 0;实体、弹射物、载具和装饰 0;物品、附魔和物品栏 0;方块、红石和流体 0;世界、世界生成和存档 0;界面、HUD 和客户端数据包 0;实体和方块渲染、模型 0;服务器及服务器上的玩家 0;生物 AI、村民和袭击 0。随着差距缩小,这个数字会下降(tools/parity_gaps.py);下表说明测试框架比较的内容。 该表是项目对测试框架比较内容的自我审计,逐个子系统进行:分数表示测试框架覆盖并通过了该子系统的多少,而非该子系统与 vanilla 没有其他差异。玩家仍会遇到的问题:已知问题。
(原文较长,此处译出前 6000 字,完整内容请点「打开原文」。)
正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。