Andrew Adams

Work / Case study · Personal project

A game you play by walking,
that never tells you to.

ROAM: Realms of Ancient Monsters turns real steps into a fantasy adventure. Walking moves you across the map, and food, rest and consistency shape how your companion grows. The game never explains any of it. I designed it, AI coding agents built it, and it's live on the App Store.

Role
Designer and product owner (personal project)
Built with
AI coding agents · React Native (Expo), Supabase
Timeline
April – June 2026 · live on the App Store since May 2026
Music
Original score by Peter Adams
~6 weeksfrom first line of code to the App Store
10 stepsmove you one square on the map
0tutorials explaining the healthy habits
Three ROAM screens: the world map inside a handheld-console frame, a companion egg in the care room, and a battle with a wild creature.
The map, caring for your companion, and a battle. See it on the App Store.

The idea

Most fitness apps work by telling you what to do: streaks, nudges, red badges. They work for a while, then they turn into one more thing that nags you.

I wanted the opposite. A game where moving your body is simply how you play, and where the healthy choice is built into the rules instead of written on the screen. The principle I wrote on day one:

The best choice for your creature is always the best choice for you. This is never stated. It is simply true, and players feel it.

Designing the rules, not the reminders

Most of the design work in ROAM is a set of systems nobody sees. Each one maps a real habit to something you feel in the game:

Walking

Every 10 steps is one square on the map. You can only explore as far as you've actually walked, and 5,000 steps opens the day's chest. The world literally opens up as you move.

Food

Consequences you discover, not read. Fast food fills your companion up but leaves it sluggish if you rely on it. Whole food pays off slowly and makes it stronger over time. Its glow brightens or dims, and the game never says why.

Rest

Rest is rewarded, and overtraining is real. A quiet day earns a bonus the next time you're active. Too many hard days in a row without a break, and your companion starts to wear down.

Your companion

It fits how you move. Three questions at the start (do you walk and run, work hard and recover, or do a bit of everything?) decide which of three creatures hatches from your egg.

The map: you can only move as far as you’ve walked.
The map: you can only move as far as you’ve walked.
Daily goal and quests: 5,000 steps opens the chest.
Daily goal and quests: 5,000 steps opens the chest.
Training your companion between walks.
Training your companion between walks.
Battles happen out in the world as you explore.
Battles happen out in the world as you explore.

A world paced to real life

A game about walking can't be finished in a weekend. Each city opens after a total number of real steps, so the story unfolds over months, at the pace of an actual walking habit. Each city also has its own mentor, and the story gives you a reason to keep going.

CityLifetime stepsRoughly
ArenfallHomeWhere the story starts
Halvenmere15,000A few days of walking
Duskridge50,000A few weeks
Ironhaven120,000A couple of months
Thessalport250,000About half a year

A device, not an app

The whole interface is a handheld console: a warm cream shell, a dark screen bezel, a D-pad with haptic clicks, and A and B buttons. Pixel type on the game screen, a clean monospace for everything else. It makes a step counter feel like a toy you want to pick up, and it gives every screen the same frame, so the game feels like one object.

The ROAM title screen with New Game, Continue and Settings.
The title screen.
The map in a forest region, framed by the handheld shell with its D-pad and A and B buttons.
The shell: every screen lives inside the same device.

Review as design critique

Apple turned ROAM down twice before approving it, and every reason was really a design lesson:

  • A placeholder button. Anything on screen is a promise. I removed the unfinished sign-in option instead of shipping a fake one.
  • No way to delete your account. Letting people leave is part of the product. It now deletes the account and saved progress together.
  • Sign-up required to play. Let people try first. I added guest play, and made sure a guest's progress carries over if they create an account.
  • The name didn't match. The app said "roam" and the store said "Realms of Ancient Monsters." The name people tap should match the name they searched for.

The third submission was approved, and updates followed with original music, a password reset, clearer navigation and safer cloud saves.

What I'd do differently

Design the whole account lifecycle on day one: trying the game, signing up, signing in on a new phone, and leaving. I treated those as plumbing to add later, and every App Store rejection came from that gap. They're the moments where people decide whether to trust a product.