Revisiting Genesis: giving an idle game an ending and finally shipping it
Two months ago I parked Genesis, my idle game about the evolution of life. Since then I've shipped a polished puzzle game that taught me what paid installs are worth, and started making games I'd want to play myself. Idle games are near the top of that list, and Genesis was sitting there, nearly done for months.
So I went back to it with the three conditions I'd set when I parked it. Today Genesis is live on Google Play.
Condition 1: it ends
I stopped treating my own old design documents as the brief. They said "no ending, keep tuning", and that was exactly what had kept the game unreleased. I tagged the old state in git, started a branch called finish, and fixed the scope at two chapters with an ending:
- Chapter 1, the DNA strand, with Extinction as the prestige.
- Chapter 2, the web: a long climb with no reset. Reaching the edge of the board is the finale. Then "Claim all", and a screen that says the web is whole.
A finish line changed everything about tuning. "How long should Chapter 2 take?" finally had an answer: about a week and a half for a player who checks in a few times a day.
Condition 2: simulate humans, not a bot
The simulator's bot had always played 24 hours a day. When I built a model of a human player instead (open the game every few hours, spend everything, leave), the problem was obvious within minutes. It reached ring 14 of Chapter 2 on day one, then crawled. After 30 days it was stuck at ring 20 of 30. Chapter 2 got slow fast, and Chapter 1 was tuned for a player nobody is.
The fixes:
- Value pricing in Chapter 2. Each claim costs what it adds to your income, times a payback period that rises from 30 seconds to 8 hours as income grows. Every purchase feels similarly worth it, whatever your stage.
- Credited resets in Chapter 1. A run that massively overshoots its Extinction requirement counts as several resets (one per 1.625× overshoot, at most one per 30 minutes). Leaving the game running overnight is rewarded, not wasted.
Now the edge of Chapter 2 arrives around day 8 for an hourly player, day 10 at four-hourly check-ins and day 13 at eight-hourly. New checks run on every change:
playthrough: the whole game at N check-ins a day,c2humanandc1cadence: human-cadence models for each chapter,brickguard: every player cadence must reach a first reset (at one point, all five failed),- a smoke test for every mechanic, including the save round-trip.
The rule I've taken into every game since: simulate like a human, not like a bot. The pace a person feels needs its own measurement.
Condition 3: no new features
Everything that wasn't needed to finish was left alone. The unreachable screens stay unreachable. A third chapter stays an idea. The only additions were the things a released game needs that Genesis had never had: consent for ads, analytics, cloud save, and a proper deal for rewarded ads, which gets its own post.
The engine from my word games paid off here. Consent and analytics were copied straight across, and the build now refuses to produce a release without them.
Release day: rejected
The first submission was rejected: "Invalid Privacy policy". Months ago, I'd set the privacy policy and data-deletion links in Play Console to a subdomain that no longer existed. The fields weren't empty, so nothing had looked wrong. I moved both to this site and resubmitted the same day, and the release checks now insist the URL is the expected one and actually returns a page.
The same submission had also picked up a stale version, older than the one in the repo. That's checked now too.
What happens next
Now it's up to players. The thing I'm watching most closely isn't revenue, it's whether people who start keep going. An idle game lives or dies on its first few minutes and its first wall.


