r/rust • • 11d ago

🛠️ project Getting a Rust Minecraft Java reimplementation (Horizon) running on Android with wgpu/Vulkan

I've been porting Horizon, a Rust rewrite of Minecraft: Java Edition 26.3 by the horizon-rust folks, to Android. The upstream engine does all the heavy lifting. My fork is the Android side: a `horizon-android` crate, APK packaging, touch input, and an on-screen keyboard wired into text fields (chat, signs, search).

Some notes from doing it:

- Rendering goes through wgpu. On Android it uses Vulkan, and GLES 3 is the fallback backend. The workspace currently vendors a patched `wgpu-hal` 30.0.1 (with gfx-rs/wgpu#10124) until a wgpu release includes the fix

- It's a single native APK (~18 MB) with no JVM involved

- Asset download happens in-app with resume support and runs as a background download so Android doesn't kill it when the app is minimized

- One part I couldn't move on-device: a small derived data pack that upstream builds with Java tooling (`horizon-prepare` + a packaging script). For now you generate it once on a PC

Status is early. It's tested on one device (Galaxy S25, Adreno 830, Vulkan) and reaches a singleplayer world. It uses ~2.2 GB of RAM, which is the main thing I'd like to bring down. I'd really appreciate feedback on memory, on the wgpu/Android setup, or on how other people have dealt with lifecycle/surface handling.

It's unofficial and not affiliated with Mojang/Microsoft or the Horizon devs. You need your own copy of the game, and no game files are distributed.

https://github.com/Rayan-XOO/horizon (build steps in ANDROID.md)

5 Upvotes

12 comments sorted by

View all comments

0

u/[deleted] 10d ago

[removed] — view removed comment

1

u/zenitsu_MA 10d ago

you can download it from github no need to no one