Dev Log
Building Inner Orc: an RPG that lives entirely on your wrist
Coming soon — Inner Orc launches on the App Store on September 15, 2026.
I built Inner Orc because I wanted an excuse to close my Activity rings, and every “gamified fitness” app I'd tried either wanted a subscription or a phone in my hand to actually play it. Inner Orc is watchOS-only. There's no iPhone app to open, no companion screen. The whole game runs on the watch.
A pixel-art look, built on Minifantasy
I grew up on classic JRPGs from the 90s, so I'm naturally drawn to the low pixel-count aesthetic of asset libraries like Minifantasy by Krishna Palacio. While I would consider myself an amateur pixel artist at best, Krishna's library provided an excellent place to build from, using his Orc models as a base and extrapolating different classes on top of them using the rest of the library. Krishna has been an excellent resource here, and has been kind enough to engage with me on his Discord when I have questions or am looking for feedback on my designs.
The core loop
The core loop of Inner Orc is: your orc has Energy (accrues passively, capped, topped up when you close a Move/Exercise/Stand ring), Morale (decays over real time unless you quest or log a mindful session), and XP. You spend Energy on quests (short animated scenes that play out on the watch), gather materials through 10 different minigames (mining, fishing, logging, hunting, harvesting), craft gear and potions from what you gather, and level through 12 classes. There's a retirement mechanic: reset a maxed character back to level 0 in exchange for permanent unlocks, which plays a bit like a prestige layer, except the currency is a fully-played-out character rather than an abstract point total.
As your orc levels up, they'll evolve visually. Over time, your orc will become more “epic-looking” in nature, with their animations during battle vignettes becoming more interesting and exciting. A first-level warlock might look like a simple orc with a cane and a single shadowy attack, but by sixth level, that orc will have long flowing robes, a rack of goat horns, and attack by summoning a horde of dark tendrils that splash into the enemy.
Two constraints: a tiny screen and no server
The two constraints that shaped everything were screen size and having no server. Every minigame renders into a fixed 210×117pt canvas so the same code works on a 41mm and a 45mm watch. HUD elements clamp to the real screen bounds at runtime since some watch sizes are physically narrower than that canvas. And because there's no backend, “what happened while you weren't looking” has to be reconstructed entirely from wall-clock time and HealthKit queries every time the app comes to the foreground. There's a multi-step reconciliation pass that has to work out how many energy ticks, how much morale decay, and which rings closed since you last looked at your wrist, with nothing external ever telling it the “true” state.
Read-only, on-device, no accounts
HealthKit access is read-only: steps, activity rings, and mindful-session data feed the game state, but the app never writes back to Health, and none of it leaves the device. No accounts, no analytics, nothing to log into.
Honest limitations
Honest limitations: it's watch-only by design, so if you don't own an Apple Watch there's nothing here for you. It's a paid app with no ads or IAP. I'd rather charge once than nag you forever. And it's English-only right now, but we'd like to bring localization in to support other languages over time.
In our next dev blog, we'll explore how the pixel art assets were created using Minifantasy and Aseprite.