Mobile game
Survivor, a mobile horde-survival game built with Claude Code
Horde survival is my favourite game genre, so I am building the game I want to play myself. In about 50 hours of my time I built Survivor with Claude Code, a mobile bullet-heaven game where the hero walks and the weapons fire on their own. It has 150 chapters in 7 locations, 6 heroes and 6 weapons, all drawn in code in one pixel style, and has gone the whole way from idea to a closed beta: 28 testers on Google Play and 7 on TestFlight.
≈50 h of my time from idea to closed beta
150 chapters in 7 locations
28 + 7 beta testers on Google Play and TestFlight
0 game engines, texture images or data collected
The task
Horde survival, also called bullet heaven, is my favourite game style: the hero walks, the weapons fire on their own, and enemies come in waves. I wanted a game in this genre with deep, wide logic, one that I would want to play myself. The goal is the first game of my game studio, a mobile game for the App Store and Google Play.
How I build it
- No engine, no libraries: plain HTML5 Canvas and JavaScript, about 9,700 lines. Capacitor wraps the same code for iOS and Android.
- Design document first: every system (campaign, heroes, weapons, economy, shop) is decided on paper in a design document before the code changes.
- Idea → evening prototype → phone test: ideas from me and my friend Danil become mechanics with Claude Code and are tested on my iPhone the same evening.
- Three languages: English, Ukrainian and Russian, switched in the settings.
Design decisions
- One pixel style for everything: no texture images. Every mob, boss, drop, effect and the shelter is a pixel sprite stored as rows of characters in the code: 21 regular mobs and 23 bosses, each with its own silhouette, lit from the top left. The hero stays the 8×10 figure from the app icon.
- Information before the fight: the boss comes once enough enemies are beaten, so running away does not help. The chapter card shows its traits up front (armour, packs, ranged enemies, puddles), so there are no banners over the action.
- Counter-mechanics: axes chop dead treants three times harder; other weapons barely scratch the bark. Each kind of puddle has its own pet that protects from it: the Beaver from swamp, the Fennec from sand, the Goat from thorn vines, the Penguin from lava.
- Special mobs: a fat mob that drops an in-fight boost, a magnet mob that runs away and disappears after 25 seconds, a swarm of 20 birds, and a fast assassin that dies from one hit.
- Hero evolution in 10 steps, with progress shown right on the hero tile, like the puzzle pieces on weapons.
From idea to closed beta
The game is not only code. I took it the whole way to a beta test on both stores:
- Store profiles: the game in App Store Connect and Google Play Console, with descriptions in English, Ukrainian and Russian, App Store keywords, and phone screenshots with captions and a 1024×500 feature graphic for Google Play.
- Accounts and forms: developer accounts with Apple and Google, the privacy policy, the Data safety form (the game collects nothing), the age rating questionnaire (PEGI 7, ESRB E10+) and the TestFlight beta review for external testers.
- Builds: an upload key and signed release builds; 6 test builds on iPhone between 29 October and 2 November 2026.
- Android tuning: the system Back button pauses the game instead of closing it, vibration works, and the Android build is checked automatically so that no iPhone-only files get into it.
- Testers: Google Play asks a new personal developer account for a closed test with at least 12 testers for 14 days in a row before release. I found 28 among friends and in the r/AndroidClosedTesting community, where developers test each other’s apps, plus 7 on TestFlight. Their feedback goes into the next build: a tester’s report fixed the Story tab in the hero’s journal.
Result
A playable mobile game in about 50 hours of my time: 150 chapters in 7 locations with Easy, Hard and Heroic difficulty, 6 heroes, 6 weapons with colour tiers, special mobs, counter-pets, a shelter with weekly quests and an endless mode. It runs in the browser and as an app for iPhone and Android, now in a closed beta with 28 testers on Google Play and 7 on TestFlight, with no accounts and no data collection.
What’s next
The App Store and Google Play release after the closed test, the rest of the youngest prince’s story on his way home through all seven locations, sound, and balance tuned by a bot that plays through the campaign. Join the test on the game page.
Tools
FAQ
How long did it take to build?
About 50 hours of my time from the first commit on 26 October 2026 to the closed beta. About half of it is work with Claude Code (counted from the session logs): the prototype, a full design rework, meta-progress, the interface, three languages, the pixel art and builds for both platforms. The other half went into the store profiles, forms, testers and tests on the phone.
Why build a game without a game engine?
Plain HTML5 Canvas and JavaScript load in any browser, and a change shows up on the phone after a reload, with no build step. Capacitor wraps the same code as an iOS and Android app. If the game ever needs heavier graphics, a port to Godot is the fallback plan.
Who makes the decisions when you build with Claude Code?
I do. I write the game design and the decisions for each system in a design document, Claude Code writes the code under my direction, and I test every change on my iPhone. A handoff file records the current state, so the next session starts from facts, not from memory.
How does a new idea get into the game?
Ideas from me and my friend Danil go into an ideas file. The ones that fit become a mechanic the same evening and get tested on the phone. The swarm of 20 birds, the lumberjack hero and the counter-pets for puddles all came this way.
Did any design decision not work the first time?
Yes. The first version showed banners in the middle of the fight for waves, packs, elite mobs and bosses. On the phone they covered the action, so I removed them and moved everything a player needs to the chapter card before the fight.
Does the game collect any data?
No. There are no accounts, no analytics and no third-party SDKs. Progress and settings are stored only on the device and are deleted with the game or with the Reset progress button.
What did it take to get from code to a beta test?
Developer accounts with Apple and Google, store profiles in three languages, the privacy policy, Data safety and age rating forms, signed builds for both platforms and testers. Google Play needs at least 12 testers for 14 days in a row before release; the game has 28 there and 7 on TestFlight.
When can I play it?
Right now, in a closed test through TestFlight on iPhone and Google Play on Android. The game page shows how to join the test and send feedback.
Have an idea for a game or an interactive prototype you want to see working fast? Get in touch.