FRAYED
Nobody has tied the last knot.
Rust · Bevy · iOS · StoreKit 2 · AdMob
A one-thumb arcade game for iPhone and iPad. The cave has been coming down since before anyone thought to count, and everyone who goes in takes the same two things: a lamp, and a rope that is already coming apart. Hold anywhere and the rope finds the rock above you; let go and you fly. That is every input there is. Every rope frays while you hold it, and the further you get the less time each one gives you. Where your rope lets go, a knot stays in the rock — the only thing you leave behind, and the only thing to beat.
Engineering notes
One input, no forgiveness
Hold to rope, let go to fly, and nothing else. There is no shield, no second chance and no gentle first minute — and nothing in the shop can buy you a longer run, because a distance that can be bought is not a distance anybody swung for.
The rules are testable without a screen
The swing, the cave, the fraying and the score live in a Bevy-free crate with a hand-written verlet integrator and seeded generation, so a run is a pure function of its seed and its inputs. CI proves the rules on every change without ever starting a display.
The layout is proven, not eyeballed
The shop card is geometry in that same headless crate, measured in screen-heights rather than pixels. The gate proves every row fits the narrowest iPhone, that none of them overlap, and that the support row clears an adaptive banner of either phone or tablet height.
Sound is a recipe
Every effect is a Tono SoundDoc rendered to a wav — an open-source deterministic synthesis engine from this same workshop. The shipped audio is derived; the recipe is the source.
marmik shah