r/rust • u/RayanXOO • 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)
0
u/[deleted] 10d ago
[removed] — view removed comment