Skip to content

Instantly share code, notes, and snippets.

@beardordie
Last active December 8, 2025 05:04
Show Gist options
  • Select an option

  • Save beardordie/32f16dca8c5f80050ade099cc16d1915 to your computer and use it in GitHub Desktop.

Select an option

Save beardordie/32f16dca8c5f80050ade099cc16d1915 to your computer and use it in GitHub Desktop.
Solo Royale: Ultimate Grift verbose info

Solo Royale: Ultimate Grift (Horizon Worlds)

Join yourself in a non-multiplayer parody of a Battle Royale game, a mobile-only addictive clicker. Perchance. https://horizon.meta.com/world/10161606947360143/?locale=en_US


Inspiration

I wanted to make something that guaranteed had never been done in Horizon Worlds before. Something drastically different than other Worlds. I wanted humor, and with the popular Battle Royale genre, there is plenty to poke fun with. Thus, Solo Royale was born: a parody of a massively multiplayer genre, as a single-player mobile-only incremental clicker that is satisfyingly fun.

What it does

The phrase "thoughtfully crafted for mobile" was a call to action, and leveraging Noesis and Portrait mode was key for this. It allowed me to present the user with a mobile game UI that was not even possible until late last month's Desktop Editor updates. The result is a highly satisfying, balanced incremental clicker that trades your every tap for a surge of dopamine. Hopefully it'll get a laugh, as well, with the absurd events and Loot items the player will encounter.

How I built it

I wanted to set the bar high on this one. Unfortunately I see far too many unpolished Worlds, especially with UI. With the brand new Noesis integration, I saw the huge opportunity to raise the bar high with excellent UI design and user experience. I set about to learn all about the dataContext magic that binds Horizon Worlds' typescript scripting with Noesis XAML. The beta Noesis Studio application (once updated to a stable version) was the cornerstone of being able to achieve the tight, addictive gameplay of this style of incremental clicker game. Noesis Studio is incredibly intuitive and responsive. It allowed me to visualize data at design time, rather than having to make a Typescript roundtrip for design and animation decisions. The Horizon Worlds Desktop Editor then took it the next step, with hot reloading typescript to quickly iterate on the flow so that the user experience is balanced and tight. Pairing that with high end sound design was super important to achieve button presses that were satisfying.

Challenges I ran into

The documentation on this brand new tech stack was, and still is, sparse. A couple Youtube channels (Dorian from Noesis and Gausroth) helped me get a head start. Command Parameters were not implemented until late stage in the competition, but once that update was in, the code complexity was reduced significantly.

Accomplishments that I'm proud of

  • A tight, mobile-only gameplay loop and presentation that has NEVER been seen before on Horizon Worlds.
  • Fully leveraged the MVVM paradigm, keeping the XAML design and Typescript logic separate and maintainable. Data binding is awesome!
  • Those icons are Vector Paths, not pixel images. Infinitely scalable, resolution independent goodness, crafted in Adobe Illustrator with the almighty Pen tool. Keeps high fidelity during animations that zoom.
  • Custom sound design that hits that satisfying tap itch.
  • Social Features: Social Following asset to get more Horizon followers, Selfie Station to encourage sharing in-world screenshots, World Leaderboard
  • All button presses are in ergonomic mobile-friendly positions by design, no crazy thumb-stretching or painful twists are necessary. Mobile-friendly haptics.
  • Fully animated tutorial sequence to provide smooth onboarding (skippable for return players)
  • The RAGE mechanic really ties this balancing act together. The anticipation to be able to rage-click like a madman to reach an incremental goal is pure ecstasy.

What I learned

  • Some of the NoesisGUI features are not yet supported in Horizon Worlds, and it's not clear where to get official information about this. So, some things worked great in Noesis Studio that just silently failed in Horizon Worlds. Some Desktop Editor updates did expand the supported feature set, but it's still murky.
  • Hot Reload (both in Noesis with the XAML and in Horizon with the typescript) is AWESOME.
  • It absolutely IS now possible to make a much wider variety of mobile-only games with Horizon Worlds as the presentation platform, and get the benefits of that platform along with it (a user base, discoverability, built-in Leaderboards and social features, and more)

What's next for Solo Royale: Ultimate Grift

  • I want to expand the amount of unique parody events and Loot items to be less reliant on procedural, with unique icons to go with them, especially the Purple legendary tier events/items
  • I want to improve the Tutorial and Codex to add more humor while being more informative about the game loop
  • (Pending a Desktop Editor fix) Skip the first person view entirely and force the user into Focused Interaction Mode at the start. There's no good reason this can't look and feel like a standalone mobile app. This doesn't need any movement or jumping at all.
  • Now that Noesis GlobalResources has support (it did not during development), swap the duplicate instances of vector icons with linked Resources (kind of like prefabs)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment