Inspiration

Everyone knows the small pleasure of sorting a pile of loose change - spotting two of the same coin, stacking them, counting them up. As payments go digital that pile is disappearing from daily life, and with it a tiny, satisfying ritual.

We wanted to keep the ritual and lose the housekeeping. So: a pile of real coins on your screen, a clock that never stops draining, and one rule - finding matching coins is the only way to buy time back.

What it does

Coinful is a score-attack puzzle played on a top-down pile of real-world coins.

  • Tap to combo. Tap coins of the same value, or a run of consecutive values. Every combo returns seconds to the countdown and adds the coins' face value to your score.
  • The clock fights back. The countdown drains faster as your collected total grows, so a good run gets harder because it is going well. When it hits zero, the pile collapses and the run is over.
  • The pile is physical. Push buried coins aside with a finger. Shake the phone to stir the pile. Shake hard to refill the board to full - at a direct cost in seconds.
  • Three currencies. Japanese yen, US dollars and euros, each drawn from the real designs where reproduction is permitted. Free players pick one; Premium unlocks all of them, including currencies we add later.
  • Three difficulty levels. The pile size (28, 40 or 52 coins) and the pace change; the rules do not.
  • Leaderboards. Scores go to Game Center. You can play without signing in.

Ads exist only for free players and only after game over - never during a run, and there are no banners anywhere in the app.

How we built it

Swift and SwiftUI for every screen except the one that matters most: the board is a full-screen SpriteKit scene, and we deliberately never layer SwiftUI over it while a run is live.

  • SpriteKit for the coin pile - overlapping sprites, surface-exposure guarantees so there is always something tappable, and a collapse animation on game over
  • GameKit / Game Center for leaderboards
  • RevenueCat with StoreKit 2 for the subscription and the 7-day trial, behind a single entitlement
  • AdMob interstitials, shown only after game over, in non-personalized mode - the app never shows an ATT prompt
  • PostHog for product analytics

The coin art is a set of 28 faces. Before drawing any of them we researched reproduction rights currency by currency: Japan's Ministry of Finance FAQ permits photographic reproduction, US designs are used only where they are public domain, euro coins are drawn common-face only, and the British pound was cut entirely because the Royal Mint does not routinely license its designs. Denomination badges are overlaid by the app at a fixed size, contrast and position instead of being baked into the artwork.

Challenges we ran into

Proving the game cannot be immortal. Combos give time back, and a hard shake refills the pile, so on paper a good enough player might never die. An earlier design capped the number of refills, and our no-infinite-play argument leaned on that cap. Then playtesting killed the cap - refilling by count felt arbitrary - and the proof collapsed with it. We rebuilt the argument on a different foundation: the countdown's drain rate grows with the total value collected, and the growth eventually outruns any possible recovery. Checking the new proof turned up a real exploit - collect only the lowest-value coin and the acceleration never engages - which we closed in the spec before it ever shipped.

Readability on a dark table. The remaining-time bar sits on dark chrome, and our first green and red failed the contrast we had set as an acceptance criterion - the red, the color you must read in the last five seconds, was the worst offender. The palette was re-measured and corrected before release. On a board of overlapping coins, we also could not let legibility depend on the art itself, which is why every denomination badge is rendered by the app under fixed contrast rules.

Accomplishments that we're proud of

This is our first game, and it shipped with its economy proven rather than patched: the spec contains a written argument for why no strategy survives forever, re-derived from scratch when a design change invalidated the first version. We are equally proud of what is absent - no ads during play, no banners, no tracking prompt - and of a coin table that uses real, rights-cleared currency designs instead of generic chips.

What we learned

When a game mechanic changes, check what the change silently invalidates. The refill redesign looked like a small UX decision; it actually destroyed the mathematical basis of our fairness guarantee, and the replacement proof found an exploit we would never have caught by playtesting alone. Verify the argument, not just the feel.

What's next for Coinful

More currencies - the Premium plan already promises every currency we add, so the pile should keep growing. The British pound stays on the wish list, waiting on the rights that kept it out of version one.

Built With

Share this project:

Updates

Submission history