-
-
Title screen. Eight heroes; Bastion shown at max Mastery.
-
Build the deck: the Inferno Core set. Any hero can bring any Core and Support set.
-
Relic Cache after a boss kill: three relics, take one, it stays for the rest of the run.
-
Level-up draft: three cards, take one. It joins the deck or levels up a card you hold.
-
Boss. Every attack is drawn on the ground in red before it lands.
-
Cog's Ice Spikes. The card row at the bottom shows every card's cooldown.
-
In a run: Gorm's Flashpoint clears the street. No attack button, you only move.
-
Armory: Bramble's skins. Recolours cost gold, Mastery looks are earned, painted looks are sold.
-
Victory and results: gold earned, Mastery gained, monsters slain.
-
The paywall: the Welcome Bundle, two exclusive skins for $4.99. Price string from the store via RevenueCat.
-
Logo
Back in 2016 I had an idea for a mobile game and no way to build it. I don't come from a developer background, so I drafted it in PowerPoint with images I found online that were close to what I was picturing, and wrote a Word document explaining each character and item. The working name was MOBA 001. I took it around to a few small contractors to see what it would cost to make, and the number was far more than I could justify, so I put it on the shelf.
On July 27 this year my brother, who is a developer, took me along to a meetup at a coffee shop. It happened to be sponsored by Shipaton, so the organisers explained what RevenueCat and the competition were, handed me a water bottle and a card, and I put the card in my wallet and didn't think about it again. I had no app in mind at the time.
A month later, on a weekend at the end of August, I came across the MOBA 001 documents and thought, with today's tools, why not see if I can prototype something. Within a few hours I had something playable. That was August 30. Then I remembered the card. The deadline was 30 days out, and the competition is about actually shipping, so I decided to find out whether I could get something onto the App Store in that time.
What I built. I played the prototype and liked some of the mechanics but not others, so I iterated through a few versions. One of them was a defense game where your character protects an object in the center. It needed too much clicking and timing, and it felt like a desktop game, not a phone game. I've played a lot of mobile games, especially survivor games, and I've never found one that stuck, partly because most of them end up pay-to-win. So I took the survivor mechanic and tried to do it more deliberately. That's where the card system came from: instead of drafting from a random pool, you slot in the build you want before the run. I started iterating on that version, liked it, and kept going. What shipped is BRUNT: a solo survivor game built around that card system, with eight heroes, five Core sets, six Support sets, per-hero Mastery, and one cosmetic bundle for sale.
How I built it. The game is JavaScript and three.js, wrapped in Capacitor for iOS, with RevenueCat for the purchase and Xcode for the build. I wrote the code with Claude Code and Codex, generated the music with Suno and the interface art with GPT Image. The heroes are built on KayKit's CC0 character set with repainted skins; the monsters are original low-poly characters I designed, rigged to KayKit's skeleton so its animations work. I worked in short loops: build a version, play it on the phone, keep what felt right and throw out what didn't. The first App Review submission went in on September 19, the final version went live on September 29.
The challenges. Finding the game took most of the first two weeks. The arena version and the defense version both got built and both got thrown away before the survivor loop stuck. Once it did, the hardest problem was difficulty: the first playable version couldn't be lost, and a survivor game that can't be lost isn't a game, so a lot of the last two weeks went into making one life actually matter without making it unfair. Then the shipping problems, which I'd never dealt with: App Review, the in-app purchase setup, and finding out two days before the deadline that Apple had retired promo codes for in-app purchases, so I set up an App Store offer code for the judges instead.
What I learned. Prototyping is cheap now, so the expensive thing is deciding. Two of the three games I built in September were wrong, and the only way I found out was by playing them. I also learned that shipping is its own project. Getting a game to feel right and getting it through App Review with a working purchase are different jobs, and the second one needs as much time as you can give it. The thing that stuck with me is that a contractor's quote is the reason this game didn't exist for ten years, and in 2026 the same idea cost me a weekend and a month. If that's true for me, it's true for a lot of people sitting on a document somewhere.
Thirty days after that first prototype, the game is on the App Store. I didn't think I'd make the deadline. I made it with a few days to spare.
How a run works. You pick a hero and play one run on an island. Kills give XP, and every level-up you draft one of three cards. Bosses show up on a timer, with their attacks telegraphed on the ground. After every boss the whole island changes color and you're offered a relic that lasts the rest of the run. Survive the final boss and you've cleared it. A run takes about seven minutes.
How you build a run. Five Core sets of five cards (Ice, Inferno, Slime, Savage, Bomber), six Support sets of three (Frostbind, Iron Ward, Alchemy, Tailwind, The Tide, Stealth), and two cards that come with each of the eight heroes. Pick a hero, a Core set and a Support set. The draft during the run only pulls from what you brought, and a run uses six of the ten cards, so the same three choices play out differently every time. That's 59 cards and 240 possible loadouts. Each Core set kills enemies in its own way: fire burns them, ice freezes and shatters them, slime covers and melts them.
Progression. Every run pays out gold and Mastery. Gold buys heroes. Mastery is per hero and unlocks card sets and skins, so there are eight ladders to climb.
Monetization. Cosmetic only, not pay-to-win. Nothing for sale makes a run easier. The one product today is the Welcome Bundle, two exclusive hero skins for $4.99, through RevenueCat. Because the game is modular and the player controls what goes into a run, new sets, heroes and skins can keep coming without crowding the game, and every content drop can carry a new look to sell.
Built With
- capacitor
- ios
- javascript
- revenuecat
- three.js
- webgl
- xcode
Log in or sign up for Devpost to join the conversation.