Skip to main content
Back to posts

RevenueCat Shipaton 2026 · with Hanna Shcharbakova

Rainroam: one action RPG, drawn by two renderers

Rainroam is a souls-lite action adventure on islands above the clouds. You play a cat knight or a frog Rainkeeper, take quests in towns, clear dungeons and fight the guardians at the end of them, all with one thumb on a phone held upright. The whole game can be drawn in soft-lit 3D or in pixel art, and you can switch between them at any moment, even in the middle of a fight. It went from a plan in August to the web, Galaxy Store and the Mac App Store in about six weeks; the iPhone version is in its third round of App Store review.

13 days
first build to Galaxy Store
2
renderers, one game state
13
dungeons and caves
3
languages
The same evening in Bellwether, drawn twice: 3D on the left, pixel art on the right.

Played with one thumb

We like action RPGs on consoles and wanted one that works on a phone in one hand. Rainroam is played in portrait: drag to move, release to attack, tap to dash. A second finger can dash without letting go of the stick. Basic attacks are automatic, so the thumb is free for positioning, stamina and timing, and every enemy attack draws its exact shape on the ground before it lands. Landscape and keyboard play follow the same rules.

Portrait, 3D.
The same moment in pixel art.

Two renderers, one game state

The 3D view runs on WebGPU through TypeGPU; the pixel-art view runs on Phaser and WebGL. They share no drawing code: each has its own characters, animations, scenery and effects, and the HUD, map, fonts and menus change style with them. What they share is the simulation. Both read the same game state every frame, so switching restarts nothing: the hero, the enemies, the incoming attack and the save stay exactly where they were. It also covers older phones, where the full game runs in pixel art without WebGPU.

Amber moths and a shard warden. The outline on the ground is the exact shape of the blow, in both styles.

What there is to do

  • 7 regions, from pink lakes to the snowy north, each with its own time of day and weather
  • 5 towns with residents and questlines, starting from Bellwether
  • 13 dungeons and caves with seeded layouts, secrets and a guardian at the end
  • 2 heroes: a cat knight who fights up close and a frog Rainkeeper who casts from range
  • 4 mini-games between fights: fishing, a paper-boat regatta, mushroom foraging and a concert
  • an original synthesized soundtrack that tightens in fights and settles at lanterns

Enemies drop embers. You can push on, or walk back to a lantern to spend them on levels, attributes and oaths; die, and they wait where you fell until you fetch them. The Wishing Well, in beta, is a separate hardcore roguelike: six depths with a keeper at the end of each, 75 artifacts, synergies and one life.

The White Stair. The rings show where the Key Warden will slam.
Prism Hollow and its guardian, 3D and pixel art.
Reedwake at night, in a storm.
Pixel art: a fight in Amber Afterlight at dusk.

Problems worth writing down

01

keep two renderers in step

Switching mid-fight only works if both renderers agree on everything that matters for play: hitboxes, the ground outline of every incoming attack, camera angle and timing. Neither renderer owns any of it. Both read the same simulation each frame, so a blow that starts in 3D lands exactly the same way in pixel art.

02

a driver bug only real hardware shows

On the Galaxy S25 an Adreno driver issue made skinned characters and their shadows disappear. It never showed in emulators; Samsung Remote Test Lab reproduced it. The fix was a different packing of the GPU buffers, and it reached the store build the same day through the app’s signed live-update channel.

03

pick the renderer per device by testing it

Phone models and chipsets say little about what the WebView actually supports, so the game probes graphics support inside the real WebView at start-up. Devices without WebGPU get the pixel-art renderer, which has the whole game; devices with it let the player choose.

04

Galaxy Store billing through RevenueCat

RevenueCat’s Capacitor plugin does not expose Galaxy Store billing. Its native Android SDK does, so that SDK is bridged into Capacitor by hand: Samsung IAP sells one non-consumable Full Game, and RevenueCat keeps the entitlement and handles restores. It was tested with real purchases on Galaxy hardware.

Pricing

The first island and its first dungeon are free. At the South Bridge you can buy the Full Game once for $4.99, and the same save carries on through the rest of the story; the same purchase opens the deeper levels of the Wishing Well. There are no ads, subscriptions, energy timers or paid power. A free first chapter and one price is how adventure games are usually sold, and it lets people decide whether they like the game before paying.

How it got here

  1. 01 Mid-August: planning

    The idea: something like a console action RPG that works on a phone held in one hand, on a train. A few throwaway prototypes followed by early September.

  2. 02 September 17: version 0.0.1 on the web

    A cat knight in a voxel dungeon, deployed to Cloudflare Pages on day one. Everything after that shipped continuously from the same TypeScript codebase.

  3. 03 September 30: Galaxy Store and Shipaton

    Galaxy Store approved version 1.0.1, and the game was entered in RevenueCat Shipaton 2026 for the Best Game, RevenueCat Design and Best App for Galaxy awards.

  4. 04 October: the Mac App Store and the Wishing Well

    The Mac version went live on the App Store, and version 1.1 added the Wishing Well, a hardcore roguelike mode in beta. The iPhone and iPad version is in its third round of App Store review.

Like Orb Knight, it was built with coding agents: Claude Code and Codex wrote most of the roughly 1,400 commits, while direction, review and a lot of playtesting stayed with us. Hanna Shcharbakova is the other half of the team.

The trailer

The cat knight in 3D and as a pixel-art sprite, from the Rainroam trailer

Made from real gameplay. Opens on YouTube.

What it runs on

language
TypeScript, one codebase for web, Android, iOS and Mac
3D
WebGPU through TypeGPU: typed buffers, pipelines and WGSL shaders
pixel art
Phaser on WebGL, its own sprites, animation and effects
shells
Capacitor on Android and iOS, a native Mac app
web
Cloudflare Pages, with signed live updates for the store builds
purchases
RevenueCat, with Samsung IAP on Galaxy Store
languages
English, Russian and Ukrainian

What's next

Tuning the Wishing Well while it is in beta, then full controller support, and after that consoles.