Skip to content

Horizon Android 0.7.8

Choose a tag to compare

@Vasysik Vasysik released this 07 Nov 00:24
· 2 commits to android since this release

Important

HORIZON ANDROID IS MERGING WITH STARLING!

Starting with this release, Horizon Android and Starling (https://github.com/JuanLuci/starling) are beginning the process of becoming a single Android port of Horizon under the Starling name.

The unified project will be developed in the starling-client GitHub organization (https://github.com/starling-client), using Starling as its technical foundation while gradually integrating the best features of Horizon Android.

0.7.8 is planned to be the final stable release of Horizon Android as a separate project. Existing development work may still receive pre-release builds during the transition.

Horizon Android's Git history, contributors, issues, and community will be preserved. This is not the end of development — it's the beginning of a shared project.

Important

CONTRIBUTORS WANTED — HELP US BRING THE BEST OF HORIZON ANDROID TO STARLING!

We need contributors to help port features, improve compatibility, and test the unified client.

Experience with Rust, Android, Vulkan, OpenGL ES, graphics optimization, touch controls, SlopCoding, testing, and issue triage is very welcome.

Particularly valuable areas include 32-bit and low-end device support, touch controls, launcher features, account management, rendering optimizations, and Android-specific fixes.

Small, focused, tested Pull Requests are preferred. During the transition, only PRs already open when the repository is transferred will continue targeting android. New development will target starling.

Please consider becoming a contributor!

A major update featuring a redesigned Android launcher, expanded touch controls, skin and account management, experimental shader-pack improvements, rendering and startup fixes, and new performance testing infrastructure.

What's new

Launcher and customization

  • Launcher overhaul — redesigned navigation, denser layouts, reorganized settings, and improved account, content, and customization pages.
  • Custom launcher themes — theme presets, custom colors, multi-stop gradients, and live previews.
  • Account management — improved saved-account selection, provider-specific account handling, and more consistent account switching.
  • Ely.by integration — added Ely.by sign-in support, including two-factor authentication handling and provider-specific sessions.
  • Skins and capes — a new wardrobe for importing and managing local PNG skins and capes, with Classic/Slim models and a rotatable, zoomable 3D preview.
  • Cloud appearance management — Microsoft account skin synchronization, skin upload and owned-cape selection functionality. Cloud operations require a correctly configured account and remain subject to live-service compatibility.
  • Player previews — launcher avatars now use the selected player's skin, with an improved Steve fallback when resources are unavailable.
  • Content browser — improved installed-content navigation, sorting, and Modrinth search. Java mods remain browsing-only and are not installable as Horizon mods.
  • Launcher options — improved settings separation, animation preferences, and diagnostics presentation.

Touch controls

  • Major controls overhaul — redesigned controls architecture, customization interface, layout editor, and floating Control Hub.
  • MCPE and GoyControl — both control styles are available, with the classic Bedrock-style layout restored as the default for new profiles.
  • Control presets — improved handling of predefined layouts, including GoyControl, PvP Claw, Builder, and Speedrun configurations.
  • Custom buttons — expanded customization and input mapping, with better integration into the control editor.
  • Control Studio — a more detailed button-property inspector, additional editing options, and improved gesture handling.
  • Virtual mouse — a desktop-style pointer with adjustable size, improved menu interaction, and consistent visibility behavior.
  • Floating menus — improved toggle controls, sliders, quick actions, and separate utility menus for MCPE and GoyControl.
  • Joystick customization — improved handedness and active-area settings.
  • Visual improvements — simplified 2D control rendering, cleaner button appearance, and reduced unnecessary visual effects.
  • Feedback settings — independent UI and gameplay feedback controls, including supported sound and vibration behavior.

Input and gameplay fixes

  • Control editor stability — fixed cases where touch cancellation, focus changes, or the pause screen could unexpectedly close the editor.
  • Touch gesture handling — improved tracking of continuous gestures and prevented touches from passing incorrectly between menu layers.
  • Inventory interaction — improved modifier handling, quick-move actions, and Sneak behavior while inventory screens are open.
  • Attack button camera movement — camera dragging can continue correctly from the Attack button.
  • Crouching and shields — corrected several crouch, shield, and block-interaction transitions.
  • Mouse input — preserved batched relative movement events and improved mouse button and modifier state handling.
  • Hardware input — improved handling of disconnected input devices and Android input state resets.
  • Android keyboard — corrected chat placement when the system keyboard occupies the lower part of the screen.
  • Offline names — limited player names to Minecraft's 16-character requirement to avoid connection failures.

Graphics and performance

  • Shader-pack compatibility — expanded experimental support for native shader materials, vertex stages, post-processing inputs, and translation of selected Iris/OptiFine shader constructs.
  • Mobile shader limits — improved handling of fragment outputs, texture bindings, and pipeline requirements on constrained Mali and Adreno GPUs.
  • Shader loading — corrected shader-source composition and terrain texture bindings, with improved pipeline validation.
  • Resolution scaling — additional controls for adjusting rendering resolution, including shader-related scaling behavior.
  • Renderer startup — moved more expensive initialization work away from the Android event thread to reduce startup stalls.
  • Vulkan presentation — adjusted presentation and resource-update paths to avoid certain GPU queue stalls and Android application-not-responding conditions.
  • Graphics fallback — improved Vulkan initialization and OpenGL ES fallback handling.
  • GPU compatibility — launcher texture-atlas allocation now accounts for device texture-size limits, helping avoid failures on older GPUs.
  • Nether rendering — terrain completely hidden by opaque Nether fog can be culled to reduce unnecessary rendering work.
  • Foliage rendering — restored Fancy leaf geometry and made foliage simplification optional instead of changing the default appearance.
  • LOD processing — reduced redundant detail updates and unnecessary neighboring mesh invalidation.
  • Meshing improvements — additional mesh handling and reuse fixes, with expanded regression tests.
  • Menu rendering — improved backdrop caching and reduced redundant rendering work in supported cases.

Stability and installation

  • Session lifecycle — improved resource ownership, cleanup, and repeated game-session behavior.
  • Background handling — more immediate pause state updates when Android backgrounds the application.
  • Installation verification — cached Minecraft inputs are checked before extraction and copying, with recovery for corrupted or incomplete files.
  • Built-in mod catalog — improved catalog indexing and detection of local mod files.
  • Compatibility fixes — corrected several Android-specific build, input, UI, and native initialization errors.

Development and diagnostics

  • Performance benchmark tools — added automated Android benchmark utilities for comparing builds across devices, graphics backends, render distances, and representative scenes.
  • Benchmark console — interactive controls, resumable sessions, structured results, screenshots, and thermal-state reporting.
  • Performance regression testing — improved infrastructure for comparing FPS, frame times, GPU/CPU timings, and rendering workloads between releases.
  • Regression tests — expanded coverage of touch controls, rendering, shaders, launcher behavior, cached resources, and Android lifecycle handling.
  • Development builds — improved CI validation and development APK build workflows.
  • Contributor integration — incorporated work from multiple community Pull Requests while preserving original contributor history.

The future of Horizon Android

Horizon Android started as an independent Android port of the Horizon Rust engine. What began as a personal project grew into something much bigger, thanks to everyone who tested it, reported bugs, opened issues, and contributed code.

Maintaining two separate Android ports of the same engine is not the best long-term use of our limited development time.

That's why Horizon Android and Starling are joining forces.

JuanLuci, the founder of Starling, will lead the technical direction of the unified client. Vasysik, the founder of Horizon Android, will help integrate Horizon Android's features and continue contributing to the community and device compatibility.

Both will be co-founders of the unified Android port.

Our goal is to combine the strengths of both projects into one better Android experience, while preserving the work and contributions that brought us here.

We especially need help with transferring Horizon Android's features to Starling. If you have experience in any of the relevant areas, please consider contributing.

Thank you to everyone who made Horizon Android possible.

Migration information

Horizon Android 0.7.8 remains a standalone application and can continue to be used normally.

The future unified Starling client will use Starling's existing Android package and signing key. It will therefore be installed separately rather than updating Horizon Android directly.

Worlds can be accessed through Android Files using Horizon Android's existing SAF integration. A migration/import process is planned for Starling.

Do not uninstall Horizon Android or delete its application data until you have successfully transferred and verified your worlds.

More migration information will be provided as the integration progresses.

Known limitations

Horizon Android remains an experimental project. Device compatibility, performance, and graphics-driver stability vary.

  • Performance — rendering changes are not guaranteed to increase FPS on every device. Shader packs, LOD, vegetation, transparent surfaces, and menu effects can still introduce significant GPU overhead.
  • Shader packs — shader compatibility is experimental. Not all Iris/OptiFine effects, materials, or shader packs are supported, and some may fail to compile or render correctly.
  • Graphics drivers — Vulkan and OpenGL ES compatibility varies by GPU and Android version. Some devices may still experience driver crashes, startup failures, or fallback behavior.
  • Immersive fullscreen — disabled while Android navigation-bar and freeze issues are investigated.
  • Mods — Java Fabric, Forge, and NeoForge mods are not supported. Sandboxed .hmod code mods require compatible builds. Native .hnmod compilation and arbitrary loading remain unsupported on Android.
  • Accounts — Microsoft and Ely.by authentication depend on provider configuration and external services. Live sign-in and cloud appearance operations may require additional verification.
  • World migration — automatic migration from Horizon Android to Starling is not yet available. Keep your original game data until the transfer has been verified.
  • Diagnostics — performance recording and GPU profiling introduce overhead. Review diagnostic archives before sharing them; they may contain device information, paths, and server addresses.

Minecraft Java 26.3 is supported.

Unofficial project, not affiliated with Mojang or Microsoft. Developed with assistance from AI coding tools, including OpenAI Codex.

Thank you for supporting Horizon Android. See you in Starling!