Inspiration
I have ADHD. Repetitive things are hardly for me. I need whatever I am doing to be fun, or I will not keep doing it.
A gym is repetition. That is the entire product: the same movements, the same room, the same days, forever. I went back anyway. I hired a personal trainer to keep me accountable, because accountability was exactly what I knew I was missing.
It helped. It was not enough. Someone waiting for me got me through the door. It never made me want to be there.
Meanwhile I was collecting more data about myself than I ever had. Steps, workouts, sleep, body measurements — and all of it ended as numbers on a chart. The numbers could tell me what I had already done. They never became anything. Nothing to care for, nothing alive, and not once a reason to go again tomorrow.
Streaks and charts are built for a brain that finds "day 34" motivating. Mine loses the thread on day 3, and then feels bad enough about breaking it to stop altogether. Every fitness app I tried was very good at telling me I had failed.
What I actually wanted was to stay motivated without being motivated. Not more discipline — a reason to show up that does not run on willpower, because willpower is the thing I do not have a reliable supply of.
I have been a gamer since I was a kid, and the games that always held me were the monster-raising ones: Digimon, Pokémon, Monster Rancher. Not the collecting. The companion. One creature that stays with you, grows beside you, and ends up being something you are proud of because of how you raised it.
So I asked one question: what if my fitness data could raise a companion?
Walking could make something more agile. Lifting could make it hit harder. Sleep could make it last longer. Consistency could become its will. The way I actually live would decide what kind of monster I ended up with — and that monster would be the reason to go, instead of the number.
That is also why the game is built the way it is. It never punishes a missed day. It counts sleep and recovery as real training. If you want to start over with a new monster, you freeze the one you raised instead of losing it — a chapter set down, not thrown away. I did not design that for a persona. I designed it for me, and then found out plenty of other people needed the same thing.
What it does
Motus Rancher is a fitness-powered monster-raising RPG. Your real activity is the training system.
It is not a fitness tracker with a game attached. It is a game where the training happens in real life.
- Your body is the stat screen. Strength work becomes power. Cardio becomes speed and agility. Walking, sleep and recovery become stamina. Consistency becomes will. The app reads this from Health Connect, so it counts whatever you already use to track yourself.
- Nothing else raises stats. Ever. No shop, no crafted item, no boss drop, no purchase can add a single point of STR, AGI, STA or WILL. If your monster is strong, you did that.
- You raise one companion, not a warehouse. It evolves through six stages, and from Champion upward every stage asks for wins of its own and stats only real training can produce. No stage is reached by waiting.
- Your neighborhood is the map. Step outside and your real streets stand up around you, lit by the real time of day, with wild monsters pacing inside a visible radius and lairs standing where there is something worth clearing. A monster near the park stays near the park. The distance between you and a fight is real distance you have to walk.
- Your city is a place and a group. Every city has a Tower — floor after floor against the clock, with a board beside it listing climbers who walk the same streets. A public raid boss has one health bar that everyone in the city pulls down together; it is the one fight not meant to be won alone.
- Battles are decisions, not dice. Fights run themselves, but your build decides them: skills, relics, nature, and the range your monster wants to fight at.
- Scan the real world. Any barcode or QR code summons a foe, deterministic from the code, so the same can of coffee always produces the same opponent.
You do not need to be fit before you start. Your companion starts where you do.
How we built it
Solo. About 39 days working out what I actually wanted to build, then 60 days building it.
I am a software engineer, not a game developer. So I built a game the way I know how to build mobile apps, and leaned hard on what that gave me.
- Expo (SDK 56) + React Native + TypeScript. I picked Expo mainly for one feature: over-the-air updates. Being able to fix a live game in minutes instead of a store review cycle mattered more to me than anything else at the start, and it kept mattering.
- Three.js over expo-gl for the world and the HUD, after starting on Skia (see Challenges).
- Health Connect on Android as the single source of activity. Android first was a deliberate choice, not an accident of taste.
- A Go server owns anything that has to be true for everybody, rather than trusting the phone: the shared raid health bar, Tower runs and city boards, stamina, the wallet, shop trades, crafting, cloud saves, and account deletion. If a value could be worth cheating for, the server decides it.
- EAS Build and EAS Update for release, plus a startup gate I wrote so a player can never be dropped into a bundle I already know is stale.
- Architecture rules enforced by tests, not by discipline. Native SDKs may
only be touched from a platform adapter. Game rules may not know what a
renderer is. Battle logic may never call
Math.random()— every draw goes through one seeded generator so a fight can be replayed. These are test files, so breaking one fails the build instead of quietly rotting. - Art from a pipeline, because I could not get it from a person (see Challenges).
Challenges we ran into
I had 60 days and I had never shipped a game. Every instinct I had was a mobile app instinct. Some of that turned out to be an advantage — OTA updates, platform boundaries, tests — and some of it I had to unlearn out loud. Sixty days is also not sixty even days when you have ADHD: the work came in bursts, and the boundary tests exist partly so a version of me two weeks later could still find his way around.
I ripped out the renderer in the middle of the project. I started with Skia. It was fast and it looked clean, and I got a long way with it. Then I hit the wall: Skia had no depth. A 2D canvas cannot give a monster a world to stand in. Moving to Three.js over expo-gl cost me raw performance — Skia genuinely performed better — but it bought real depth, and depth is what made it a game instead of a screen. Doing that swap to a game that already existed, alone, was the scariest thing I did in those 60 days.
I could not find a game artist, and I tried for a long time. Four artists turned me down. So I built my own sprite generator with ComfyUI — no dice. I tried procedural generation — the output was not good enough to put in a game. I searched for anything else I could find and landed on SpriteLab, which is what shipped.
It is still not as good as real artist work. I want to say that plainly, because the honest outcome of those 60 days is that I now have enormous respect for game artists. I understood their craft as a cost before. Now I understand it as a skill I do not have.
Holding all of this alone. One person cannot re-read their own codebase every week. So I spent time I did not really have on machinery that keeps me honest: boundary tests, logic extracted into small dependency-free modules so it can be tested directly, a count of type escapes that is only allowed to go down. It felt like a detour every single time. It is the only reason the last two weeks were still productive.
Accomplishments that we're proud of
It is on Google Play. Not a video, not a build link — an installable app with a store listing, a privacy policy, account deletion, and over-the-air updates. A stranger can download it right now.
The neighborhood actually stands up. This is the part I did not think I would get. Everywhere else in the game, the proof that real life shapes your monster is a number: steps became agility. True, but still a figure on a screen. On the map it becomes a place. I built a fantasy world generated over the real one — buildings where buildings are, lit by the real time of day, monsters standing in streets I actually walk. Walking stops being a stat contribution and becomes how you find things.
The rule held. Real fitness is the only thing that raises stats, and I never broke it to make progression feel better. That rule takes away the standard RPG reward lever, so shops, crafting, relics, drops and bosses all had to be redesigned to give out everything except power. Holding a line like that for 60 days while shipping is harder than writing it down.
The battle AI. Two weeks of work and my favourite part of the codebase. The monster decides what range it wants to fight at, remembers what has been landing on it for the last few seconds, carries an emotional state that shifts what it prefers, chains combos when they are actually feasible, and disengages when staying is losing. All of it seeded, so any fight can be replayed exactly. It is imperfect. I love it anyway.
The first launch explains itself. No tutorial. A short monologue over 27 beats, one line per tap: a Guardian fell, an egg survived, and it needs a trainer. By the time a new player reaches a menu they understand the premise, because the premise is the story.
What we learned
That the hardest part of a fitness game is not fitness and it is not the game — it is the honesty. The moment I let a purchase, a drop or a grind add one point of strength, the monster stops meaning anything, because it stops being evidence. Every design decision for 60 days came back to that.
That I can ship a game in 60 days and still not be a game developer. What carried me was engineering discipline: boundaries, tests, releases. What I ran out of was craft. Knowing exactly which of the two you are short on is worth more than either.
That I badly underestimated artists. I tried four kinds of substitute and every one of them told me the same thing.
What's next for Motus Rancher
A real game artist. This is the honest top of the list. The systems are further along than the art, and I know it. I am looking for someone who wants to give this world a face.
Making the city matter. A public raid on the roam map already works — one boss, one health bar, everyone in the city pulling it down. That is the thin end of what I want. Next is real company and real competition: Party, Guild, Guild War, and a PvP Arena, so training differently from the person next to you is something you can actually settle.
iOS. Android came first because of Health Connect. The same game belongs on HealthKit, and that is the next platform, not a maybe.
Log in or sign up for Devpost to join the conversation.