Case study
LiveIce Age Life
A narrative life-sim set in the last Ice Age — designed, built, and shipped solo to the App Store.

- Role
- Founder & solo developer — Sunlit Game Studio
- Timeline
- ~3 months, solo, end-to-end
- Platforms
- iOS, Android & web — one codebase
- Stack
- React Native · Expo · Node/Express · TypeScript
01
The pitch
Ice Age Life is a text-first life simulator set somewhere in the long arc from the late Ice Age to the dawn of farming. You live one whole human life — birth, childhood, a band to survive with, seasonal hunts, love, children, politics, and death — one decision at a time.
When you die, the run ends. But the life you lived feeds a permanent soul that carries forward: your lifetime becomes Soul Points, your soul levels up, and the next life starts a little stronger. Death isn't a punishment — it's the mechanic. Every life adds to something larger.
Live → Die → Grow → Live again.
02
Designing it
I wanted it to feel grounded and hand-made, not like a spreadsheet with a fantasy skin. The whole visual language is built from over 1,100 hand-drawn SVG icons — biomes, animals, tools, faces, totems — in one consistent, symbolic style, so a screen reads at a glance instead of drowning you in text.
It's a life sim, so it has to feel alive. Seasons turn, events animate in, stats shift where you can see them, and the interface stays calm enough that the story stays center-stage. I designed every screen, wrote the copy, and drew every icon myself.



03
Building it
Under the hood it's more simulation than script. 25+ systems run the world — ecology, encounters, disasters, relationships, language, lineage — and they feed each other, so the stories that come out weren't written by me. On top of them sit 2,700+ hand-written events and 347 player actions, all as data rather than hard-coded screens.
It's a React Native app that runs on iOS, Android, and web from a single codebase, with a Node/Express backend and a shared-types monorepo so the client and server never drift. I owned all of it — architecture, systems, content, and UI.
04
Shipping & scale
Built end-to-end in about three months, solo — and held together well enough to ship.
05
What I learned
The biggest lesson was that systems beat scripts. Every time I tried to author a story by hand, it aged badly; every time I let systems collide, players found narratives I never planned. Leaning into that — and building the test coverage to trust it — is what let one person ship something this size.
It also proved to me that I can own the whole thing: the game design, the visual language, the frontend, and the backend. Next I'd love to bring that end-to-end range to a team — and push the craft further with people to build alongside.