Inspiration
Eggs can't fly. That's the joke, and it turned out to be the design brief: give an egg a big enough rocket and physics will do the rest. The real question was whether one person could take a game from an empty Unity project to a live, monetized app on both stores without quietly giving up somewhere around the app icon.
What it does
Eggs Can't Fly is an arcade upgrade game. You launch an egg-piloted rocket off a ramp, dive to build speed, ride the wind, grab coins, gems and power-ups, and try to beat your best distance. Then you crash, spend the coins on a better rocket, and do it again. Between runs you unlock pilots (a viking, a cowboy and one nervous egg), hatch pets that earn coins while you're away, swap rocket skins and launch pads, and arm run boosts like 2x coins or an Eggsplosive start.
How I built it
One developer, and a pile of tools doing the jobs a studio would normally hire for:
- Unity 6 (IL2CPP, ARM64) and C#, with Claude Code driving the Unity Editor over MCP — writing the code and wiring the scenes.
- RevenueCat for every purchase on both the App Store and Google Play: six gem packs, Remove Ads, and a Remove Ads + Gems bundle. Purchases are completed by RevenueCat, not just observed, so one dashboard tells the truth for both platforms.
- Unity LevelPlay for interstitial, banner and rewarded ads, with ad revenue reported into RevenueCat so ad income and IAP income sit side by side.
- Meshy for 3D models and animations, Higgsfield for the character videos, ElevenLabs for the pilots' voice lines, Suno for the soundtrack, and GPT for concept briefs and concept art.
- Unity Cloud Save for progress, Google Play Billing, and Play install-time asset delivery.
- And a genuinely unreasonable number of eggs.
Challenges I ran into
- Making an egg fly. Turns out physics has opinions about that. Too little speed and it plops into the grass; too much and it leaves the level entirely. Tuning the dive so a good run feels earned instead of random took longer than any system in the game.
- Scope. Every session produced three new ideas, each one "just a small addition". Boss birds, a level editor, multiplayer. Cutting them so the game could actually ship during the event was the hardest non-technical part.
- First time in Unity, and first time with Unity MCP. I learned the editor and the tooling while building the thing, which means some systems were built twice.
- A 1.1 GB Android build. Google Play caps the base module at 500 MB. Splitting the binary moved the data into an install-time asset pack.
- Then the asset pack hit 1.6 GB. The cause was texture compression targeting: with two Android texture formats, Unity writes the entire data folder three times. Shipping ASTC only brought the build to 574 MB.
- 13,049 devices became 3,112. A single texture format made Unity request the PVRTC OpenGL extension in the manifest, quietly hiding the game from most Android phones. A custom launcher manifest that strips that filter fixed it.
- Purchases that actually go through RevenueCat rather than observer mode, on both platforms. That is the part that makes the numbers trustworthy, and it is the part nobody sees.
Accomplishments that I'm proud of
It shipped. The game is live on the App Store and submitted to Google Play at 574 MB with 13,049 supported Android devices, and purchases are verified end to end on a real Play test account, with every transaction landing in RevenueCat. One person, one summer, one egg with a rocket.
What I learned
The game was the easy half. Build size, device compatibility, store plumbing and purchase verification were the hard half, and good tooling for those is worth more than any single feature. Also: an egg is a surprisingly expressive character. It has no arms, no legs and no neck, and it still manages to look terrified.
Built With
- android
- app-store
- chatgpt
- claude-code
- codex
- csharp
- elevenlabs
- google-play
- ios
- levelplay
- meshy
- revenuecat
- suno
- unity
- unity-cloud-save
Log in or sign up for Devpost to join the conversation.