Solar Puzzles 1.5: five hearts, shared by every game
solarpuzzlesreleaseengineering
Solar Puzzles 1.5 is out on the App Store and Google Play. It adds the first thing in this app that ever tells a child not now — which, for a game built around never punishing anyone, took more care than any feature before it.
What's new
- One tank of five hearts, shared by every game. A lost run costs a heart: the board filling up in Planet Blocks, a rescue mission running out of pieces, the marble chain reaching the black hole. Planet Portals, the Puzzle of the Day and the two-player duel cannot be lost, so they never charge one.
- One heart back every 20 minutes, on the device's own clock — so the tank refills while the app is closed, on a plane, or overnight.
- An empty tank is a break, not a wall. The games rest and say when the next heart lands. The Space Museum, the profile and settings stay open, so there is always something to do.
- Leaving a run halfway costs the same heart — backing out of a board that was about to fill up should not be a free escape. The game says the price before you confirm, and shows the heart going after you do.
- A tidier home screen. Star points and hearts now share one pill, with a ring counting down to the next heart. The planet row moved to the museum card, where it has room for a caption.
- Plus: on iPad the rules and settings panels fill the screen instead of floating in a clipped card, and Planet Blocks drops the Sun badge — the board's own glowing rim already says which way things fall.
Nothing to buy, which changes the whole design
Hearts normally exist to sell something. Ours cannot: there is no shop, no currency, no ad to watch and no in-app purchase anywhere in the app, and there will not be one while it ships in Apple's Kids Category. That removes the usual reason to make waiting unpleasant.
So the tank is deliberately generous. Five hearts, and only a genuine defeat spends one — never starting a game, never restarting mid-run, never finishing a level you simply did not win quickly. A full refill takes an hour and forty minutes, and a child who puts the phone down after a hard run comes back to a full tank without ever seeing a timer.
A wait that cannot be skipped with money is a pace. A wait that can is a price tag. They are the same mechanic and completely different products.
A timer that needs no timer
The obvious way to regenerate hearts is a background task, a scheduled notification, a server clock. Every one of those would have broken something we have declared to both stores: the app has no networking code at all, sends no notifications, and runs nothing in the background.
What it stores instead is a single date — the moment the next heart is due. On launch, on returning to the foreground, and once a second while a countdown is on screen, the app compares that date with the device clock and grants every heart the elapsed time has earned. Two hours away means a full tank waiting; the app was not running, and it did not need to be.
The rule that took the longest to get right is what happens on the second defeat. The due moment is set on the first loss from a full tank and then steps forward one interval per heart. Without that, every fresh loss would reset the clock and a child on a bad streak would wait forever, which is exactly the wrong person to punish.
A heart that vanishes looks like a bug
Leaving a run mid-game costs a heart. That is fair — walking out of a board one move from collapsing should not dodge the defeat that was coming — and the leave dialog says so before anything is spent.
What we shipped first still felt wrong. You confirmed, the screen went back to the menu, and somewhere on the way a heart was gone. Nobody watched it happen. Told about a cost and then shown no evidence of it, a six-year-old does not conclude "fair"; she concludes the game is broken.
Now confirming holds the screen on a card — Safe landing!, the heart that was spent, the hearts left, and the wait for the next one — until she taps Back to Base. The price is announced before it is paid and shown after. Same cost, entirely different feeling.
The bug hiding behind that card
Holding the screen open created a problem we did not see until a review pass went looking: the game is still running underneath. In Cosmic Marbles the chain keeps rolling, and it can reach the black hole while the card is up — a second heart, gone, for one exit. Freezing the chain fixed that one.
Planet Blocks could not be frozen the same way. The cascade started by the last placement has to finish; interrupting it mid-flight would leave blocks hanging. So the run is marked as settled instead: if the board fills up behind the card, the defeat plays out on screen exactly as it would have, and charges nothing, because it was already paid for.
The lesson we keep relearning: the moment you hold a screen open that used to close, everything that was allowed to keep running behind it becomes your problem.
Get Solar Puzzles — free, works fully offline, no ads and nothing collected. On both stores.
