A Star You Have to Earn: Tuning a Reward by Duty Cycle
For a few seconds the ship becomes a star: everything it flies into breaks. The hard part was not building that. It was deciding how often a player should get it, and measuring the answer instead of guessing it.
The idea is the one everyone knows from Mario. You fly into a crystal and it shatters. A mine bursts, a cannon shell breaks, a whole boulder island falls apart, and each one pays points. The wall can no longer kill you, it just holds you in. Your shield is not spent. The speed does not change, which is what separates the star from the warp portal: the warp races you past everything, the star clears it.
Earned by collecting
The one firm requirement was that the star has to be earned. It lives in a vertical meter at the bottom-left of the screen that works like a tank. Every good coin adds one, a gold coin in a chicane adds two, and flying through a warp portal adds one to three depending on how cleanly you hit it. A good coin that scrolls past you uncollected takes one back out, and touching a poison or drain coin takes two. The tank never goes below zero, and it only starts counting after the safe opening flight.
That rule rewards a particular kind of play: not just surviving, but taking the coin lines through the cave. When the tank is full the ship charges for a moment, then becomes a star for 3.5 seconds. The next star in the same run costs twice as much, and the one after that twice as much again.
Why not just count coins?
The tempting way to tune a reward like this is to pick a number of coins that feels right. I measured the coins first: across twenty daily caves, a player meets roughly one good coin per second, six to eight per sector, and that rate barely changes with depth. So "a star every eight coins" sounds like a star every eight seconds. It is nothing of the kind, because nobody collects every coin, and because a star changes how long the run lasts.
The number that matters is the duty cycle: the share of a run a player actually spends as a star, and what that does to their best score. I measured it the same way I measured the sector plan. A planning pilot plays the real game at five skill tiers, twelve days with eight runs each, and every run is played twice: once plain, once with the star. The two weakest tiers end their runs around score 30, which is where real players' median runs sit, so they stand in for the people actually playing.
| Variant | Strongest tier: share of the run as a star | Strongest tier: day's best |
|---|---|---|
| First concept: 8 coins, each next star 1.5x, 4 s | 12.2% | +40% |
| Cheaper: 5-6 coins, counted from the start | strong players' median run nearly doubled | |
| Chosen: 8 coins, each next star 2x, 3 s | about 9% | +23% |
| Shipped: same, but 3.5 s | about 10% | not re-measured |
The effect is almost all survival. The points from smashing things come to about a tenth of a percent of the score. What a star really buys is a few seconds in which the walls stop killing you, deep in a run where the walls are what kills you.
A reward for deep runs, on purpose
The table hides the most important result: the tiers that play like today's real players never fill the tank in any variant I measured. Their runs end before it can. Making the star reachable for them meant counting from the very start and charging five or six coins, and that nearly doubled the median run of strong players, which would rewrite the leaderboard.
So the star is a reward for deep runs, by design. If you have seen it, you were already flying well. That decision had consequences. There is no daily mission for it, because a mission most players cannot complete is a broken slot in the day. There is no achievement for it either, for a duller reason: Game Center allows 1,000 points of achievements per game, TUNL already uses exactly 1,000, and the points of a live achievement cannot be changed.
The star never touches the daily cave. Every player flies the same cave on a given day (how that works), so a feature that draws one extra random number forks it. The star draws none and places nothing. Whatever it breaks leaves through the same paths a bullet, a bomb or the laser already use, and the cave test still produces a byte-identical cave for every day.
Making it unmistakable
The first build worked and was easy to miss. The fixes followed the game's existing rules about light. The star takes the ship's own colour instead of cycling through a rainbow, because in TUNL colour means something: cyan is the corridor, red is danger, gold is a reward. The hull gets a contour of light along its edges and small four-point glints at the nose, wingtips and tail. A round glowing aura was tried and dropped: it made the ship look like a ball, and it promised more reach than the hitbox has.
A wash of the ship's light comes in from the left edge of the screen, the side behind the ship, never ahead of it, so it never hides what is coming. The score turns the ship's colour. And every smash gets weight: a white flash, more shards, a harder shake and a 40-millisecond hit-stop, at most once in a short window so a chain of hits never stutters.
Its own music, generated in code
The sound took longer than the picture. The star's pad has no beat, because a star can start at any moment and a pulse would land off the music's beat. Then I tried pausing the music for an excerpt of an epic stock track, and the same day a silent star. Neither felt right. What stayed is a short piece generated in code: supersaw chords, a sub bass, claps and a plucked hook, two bars in D major at 140 beats per minute, in the key and tempo of the main track. While a star runs, the main track is held on the bar it reached and picks up on that bar afterwards.
Two traps here. The concept page where I compared the candidates matched their loudness on a phone speaker only, and in the game the kick ran 10 dB too loud on headphones, so every level is now measured by an offline render in the game's real audio chain, in both bands. And the slow-time and warp effects bend the main music's pitch, so the star's music had to bend too: it is rendered once into a loop when the run starts, which can then be slowed and sped up like any recording.
If you want to see one, the meter is in the bottom-left corner of today's cave. You will need to get deep.