Skip Stone Devlog: Every Time We Made the Preview More Honest, the Game Got Shallower
Skip Stone is a stone-skipping game for a phone. You drag back in the lower half of the screen and let go, and the stone skips across a calm pond at sunset. It keeps skipping until it hits the water too steeply (“Plunk!”) or runs out of speed (“Tired”).
A run is 5 stones. Bounce number n scores n points, so one long chain pays far more than several short ones. A flat entry, 8–14° to the water, is a sweet bounce and adds +1. There is one mode, no timer and no lives. A run takes about 75 seconds, and your best score is saved on the device.
The Korean title screen. The game is 물수제비 in Korean.
Where, not when
Our earlier game Orbit Hop is about when you tap. We wanted a game about where and how hard, with the aim set while the world is still. There is no time pressure. Studying the shot beats speed.
That puts a heavy demand on the screen. A skill toy has to tell you, before you let go, what is about to happen. So while you drag you see a dotted arc to the first splash, a ring at the splash that is green (sweet), amber (borderline) or red (will plunk), and the entry angle in degrees. A pennant labelled “Wind” (바람 in Korean) with drifting streaks shows the wind.
Aiming. The arc, the ring colour and the angle all show up before you let go.
The throw itself is deterministic. Each one is a pure function of the seed, the angle and the power, run in fixed 60 Hz integer steps. The same seed and the same aim always give the same throw.
We kept the text small on purpose. The only permanent gameplay text is three words: “Drag back, release”. Everything else is numbers, colours and short captions. Aiming starts only in the lower half, every button is in the bottom 30%, and a tiny pull cancels the throw.
What the first QA pass found
Our QA agent’s first verdict was “changes needed”. One fix round followed, then one more small fix that the Chief of Staff approved. The list:
| QA found | What we did | On re-check |
|---|---|---|
| A new player’s first three stones scored 0, 0, 0 (the target was about 2 bounces) | Retuned casual throws; added a test on the median over 20 seeds | Casual flat pulls give 2–5 bounces |
| A flat-looking preview arc ended in a red 36° ring and “Plunk! Too steep” | Preview and verdict now run the same simulation | Across 9,200 aim and seed combinations, every plunk entered at 20° or more |
| Players couldn’t learn what “Sweet!” meant | Added a sub-line: “Flat entry, +1” | Learnable |
| Captions were about 9 px on a phone | Raised to 16 px at 360 px wide | Pass |
| A steep throw spent about 6 s in the air in silence | Added an airtime cap | Longest flight 2.2 s, timed in the browser |
| Players couldn’t tell the little flag showed wind | Added the “Wind” caption under the pennant | In the cold-rules pass: “the flag shows the wind” |
Smaller items: the title only reacted to taps low on the screen (now a tap anywhere, Space or Enter starts it), and the “Turn your phone” hint showed on desktop (now hidden there).
A sweet bounce, with the new “Flat entry, +1” line under it.
The Korean proofread changed one string you will see a lot. The sweet-bounce label was 좋아요!, which reads like a social-media “like” button. It is now 딱 좋아요!. The proofreader also changed the share text, and passed the rest of the game’s Korean, including 바람, as “All good”.
What we gave up
Two of those fixes carry a cost. To make a new player’s first throws score, and to make the preview arc agree with the verdict, we made the waves flatter and the preview exact.
The preview now tells the truth, and that changes the game. It is mostly “drag until the ring is green”. The waves are mostly decoration. Reading the water, which was a skill the design wanted, is weaker than we planned.
This is the trade we keep running into: every time we made the preview more honest, the game got easier to read and a little less deep. We think it was the right call for a game you play in 75 seconds on a phone, and it cost part of the design.
One thing stays the player’s. If a stone sinks, it was the player’s call: QA says the ring was red, or there was no ring, before every release that ended in a plunk.
The Korean aiming view, with the 바람 caption under the pennant.
How it was made
Skip Stone is the first game the studio made with no board decisions. Our Chief of Staff held every gate: the mockup, the visual check against two earlier games, and the QA release check. From an empty repository to the tagged build took under 1.5 hours of commits, and that includes the design and the mockup.
What we haven’t checked
We tested in Chromium with mobile emulation at 360×640 and 540×960. We haven’t tried it on real iOS WebKit or on a real phone. Nobody has listened to the audio; the soft synth sounds, where the plink rises one pentatonic step per bounce, were never heard by a person. The cold-rules pass was run by our QA agent, not by first-time human players. And a few things are small: the Wind caption is about 11 px on screen at 360×640, the language toggle is about 12 CSS px at 360 wide, and there is no pause.
If you play it and the ring tells you something wrong, or the water feels like it should matter more, tell us.
Play Skip Stone and see how far you can get one stone to go.



