
A very small beetle, a very large idea, and an atmosphere that fights back.
Ladybug Moonshot is a one-thumb vertical climber. Time the swinging launch meter off a sunflower, then flap up through the garden, the treetops and the cloudbank — landing on flowers, leaves and bouncy clouds to refill your wing stamina, dodging spider webs and swooping birds, and scooping stardust as you go. The higher you get the thinner the air: flapping costs more, the gaps widen, and past the Karman line the flowers give way to drifting petals and tumbling rock. Reach the moon and you climb straight past it into numbered sectors that never run out. (v1.0 — Released; game build F.)
Dot is about six millimetres long and has never been told what she cannot do. The garden ends at the fence. She has decided that it does not.
The moon is not the end of the climb — it is a thing you go past. Above it the sky is out of names, so the game just starts numbering: SECTOR 2, SECTOR 11, SECTOR 59. It keeps getting harder for as long as you keep going. How far you got is the whole score.
The meter swings up and back down for as long as you hold, and you leave the flower with whatever it reads when you let go — so a launch is a decision. There is a marked window at the very top worth aiming for: hit it and you get a bonus shove and a badge. Previously the meter filled to maximum in a second and a half and simply stayed there, which meant every launch was a maximum launch and the meter was decoration.
A tap flaps, and a flap has a tempo: wingbeats are 115 ms apart, so hammering the button faster than that does nothing at all — twelve taps inside one frame are worth exactly one beat. Each flap sets your upward speed rather than adding to it, and each one takes a bite out of your wing stamina. When the bar is empty the wings still move, but an exhausted flutter only SLOWS a fall — it cannot lift you. KEEP holding and you glide: the wings stay out, gravity drops to about a third, and a descent is capped at a quarter of free-fall speed. A glide costs a slow trickle of stamina, and it hands the wind roughly twice as much of you to push on. Landing refills you — a flower is a full tank, a leaf about a third, a drifting petal or rock a fifth. A cloud does not refill you at all; it bounces you hard, and above 2,200 m that bounce leaves ice on your wings.
Every difficulty dial is a single function of your altitude, and none of them level off. Between the ground and 80,000 m the gap between rows goes from 96 to 225 px, spider webs from 2% of rows to 34%, tumbling rock from nothing to 40%, birds from none to more than one a second, and a flap from 7 stamina to 18. What you can stand on changes too: a third flowers near the ground falling to one in sixteen by the Karman line, then only what drifted up before you did — petals, torn leaves and rock. The old build had every one of these fixed at one value for the whole game, which is why it stopped being difficult once you had the launch down.
Gravity used to be the only force in here, which is why it played the same at 300 m and at 30,000 m. There are four now and they feed each other. WIND pushes you sideways, easing from one value to the next rather than switching at a boundary, with gusts riding on top; it is worst in the middle altitudes where the air is fast and thin at once, it changes sign as you climb so it is never one steady shove, and it dies with the atmosphere. THERMALS are columns of rising air. FROST creeps onto your wings in the cold and takes the power out of them. And gliding changes your relationship to all three at once. And they are wired to each other, not just present at the same time: the wind leans the thermals over as they rise, so in a gale the top of a column is a long way downwind of its base; the wind blows the light platforms — petals and leaves — so a landing pad in a gale is a moving target; a cloud is water, so bouncing off one above the freezing line leaves ice on your wings; loose stardust gets carried up the warm columns, so the line that gains you the most height is also the line that pays best.
A warm column pushes up at about 320 against gravity's 1,500, so on its own it only slows your fall. Put the wings out and two things happen at once: gravity drops to about 510, and the column's push on you doubles to about 640. Only then does it carry you, and then it carries you a long way — a big column is 700-odd pixels of free height and the best thing that can happen to a climb. It also strips the ice off your wings faster than anything else. The columns are drawn with shimmering edges and motes travelling up the inside, because the direction is the whole message. This is the one combination the game is really about: everything else costs you something, and this pays.
Above about 5,200 m ice starts building on your wings, and the rate climbs with the cold. Fully frosted, a flap has 42% less in it and a glide sinks nearly twice as fast — so the top of a run is a slow strangling rather than a wall. Landing knocks some off, dropping back below 3,000 m melts it, and a thermal clears it fastest. Deep Lungs slows how quickly it forms. It shows as a second thin bar under your stamina, and it appears on the bug as a rime of ice with frost spurs on it.
Every clean landing is worth more than the last: four in a row and stardust pays 1.5x, and it climbs to 5x. Anything that touches you — a web, a bird, a rock — wipes it back to nothing. So the safe line through a screen and the profitable line through it are usually different lines, which is the whole point.
Out past DEEP SPACE the numbers alone would just get bigger, so every sector rolls a condition instead: DEAD CALM, SOLAR WIND (a steady shove where there should be no wind at all), METEOR SHOWER, AURORA (dust worth double and it comes to you), DEBRIS FIELD (far more to stand on, and far more of it moving). The roll comes from the sector NUMBER rather than from chance, so sector 7 is always the same sector 7 and the road can be learned.
Stardust is both the run score and the currency you take home. Picking it up in quick succession runs a combo, and every piece nudges the moon meter along. Fill it and you get a moonshot: a hard shove upward, a full stamina tank and a moment of invulnerability. It used to teleport you 1,500 px straight up through whatever happened to be in the way; it is real velocity now, so you can see where you are going.
Spider webs hold you until you tear free — tap to struggle, and the web is gone once you are out of it. Birds cross the screen in the middle altitudes, and they dive at you rather than merely crossing your path. Above 5,200 m loose rock tumbles past with a hot edge on it. Any of them costs stamina and height, and none of them ends the run directly — falling off the bottom of the screen does.
A bird used to fly a straight line across the screen and hurt you only if you happened to be standing in it, which is a tax rather than a threat. It cruises, notices you, then holds still for half a second with its wings up and a ring flashing round it — the tell — and dives along the line to where you were. Read the tell and you can be somewhere else. Wind pushes a cruising bird about, too.
The upgrade screen is a labelled diagram of your own ladybug, with a line running from each upgrade to the part of the animal it improves. Each one reaches into more than one system, so the shed is a set of trade-offs rather than five meters going up: Wing Power is flap force AND glide efficiency; Deep Lungs is stamina AND how slowly you ice up; Long Antennae is stardust pull AND how far off you can see a thermal; Sticky Legs is web escape AND a wider ledge to land on; Lucky Spots is shields you start the run with.
Every icon in the interface — the leaf on the stamina bar, the spark on the stardust counter, the moon on the meter, the speaker — is a drawn shape, so the furniture matches the thing you are flying. The type is round and friendly rather than the system serif. The HUD is laid out in three reserved zones — top left, top right and one bottom strip — so no two panels can land on each other at any screen size; the altitude readout and the moon meter used to be pinned to the bottom centre together and collided on any short phone.
Every prop is a real photograph, cut out and pasted over a drawn sky — a seven-spot ladybird from directly above, a second shot of the same animal with its shell open and its flight wings spread for when you are gliding, a sunflower, a daisy, cherry blossom, a violet, a leaf, a dried leaf, a petal, a stone, an asteroid, a cloud, the full moon, ice crystals, a sparrow, a garden spider that sits on its own web, a dandelion clock, grass, a twig and a berry. Which one a prop wears depends on where you are: the flowers vary so a screen is never five copies of the same daisy, the greenery dries out as the air thins, and a stone becomes a piece of asteroid once there is no sky left for it to be a stone in. They live in ONE atlas — one request, one decode, one texture — and every one of them has a drawn fallback, so the game still runs and still looks like itself if the file never arrives.
Keying a photograph off a coloured screen always leaves a rim of half-transparent pixels carrying the screen's own colour — a pale halo round a daisy, a blue edge along a leaf. The atlas is passed over once as it loads: partial alpha is pushed through a steep curve so the halo dies but a pixel of softness survives, and what is left has the backdrop's hue pulled out of it. One pass over a 480x384 image, and then it is an ordinary texture for the rest of the run.
Only the stardust you physically touched used to pay into the shed, which meant a ten-thousand-metre climb that happened to miss the pickups banked almost nothing — the meta ignored the thing the game is about. The climb itself pays now, one stardust per 200 m, and a long clean chain pays two per landing. The end screen breaks it down so you can see where it came from: picked up, climb, chain.
The best you have ever climbed is drawn into the world as a ruled line with a paper tag on it, so the number on the title card is also a thing you fly at and, with luck, through. The HUD names the mark while it is still above you and says BEATEN once it is not. Crossing it is the loudest moment the game has.
The props are photographs, so the furniture round them is the thing you paste photographs onto: cream paper, ruled gauges, ink labels, a strip of tape at the corner, every panel lying at a slight angle. The cards deal in rather than blinking on, the altitude kicks every hundred metres, and the chain badge pops when it climbs. Paper is opaque, though, so every card is measured and then asked each frame whether anything in the world is behind it — a platform you were lining up, a bird coming in, Dot herself. If so it drops back to a fifth opacity and returns the moment the coast is clear, with a short linger so a stream of platforms cannot strobe it. The mid-screen band and milestone banners went further and dropped their paper entirely: they are lettering with its own halo now, readable over garden sky or deep space and covering nothing. The title card carries a record strip — best climb, stardust in hand, and how far you have ever got — and the shed states what each upgrade is at, what the next one buys, and how many of the twenty you have fitted.
Named places for as long as there are names worth having. Past DEEP SPACE the game numbers sectors every 4,000 m and never stops. The HUD follows the sky: the panels are pale glass with dark lettering over the garden and invert past the Karman line, where pale glass is unreadable.
Which of these a row offers you depends on how much air is left — and how much each one gives back is the difference between a breather and a reset.
None of these ends a run on its own. The fall does.
Five upgrades, each wired by a line to the part of the ladybug it improves — and each one reaching into two systems.
Rolled from the sector number, not from chance — so the road out can be learned.









Every one of these is a function of your altitude alone, and not one of them levels off.
| Altitude | Row gap | Webs | Rock | Birds/s | Flap cost |
|---|---|---|---|---|---|
| 0 m | 96 px | 2% | — | — | 7 |
| 2,500 m | 114 px | 8% | 5% | 0.20 | 8.5 |
| 5,000 m | 132 px | 14% | 11% | 0.40 | 9.9 |
| 9,000 m | 162 px | 24% | 19% | 0.72 | 12.3 |
| 20,000 m | 183 px | 27% | 31% | 0.88 | 14.5 |
| 80,000 m | 225 px | 34% | 40% | 1.36 | 18.0 |