Bunny Hop

Hop the bushes, the hedges and the low birds, and let the high ones pass overhead. There is no level to finish and no lives to spend: one touch ends the run, your distance is the score, and the next run starts straight away, free.

Play in your browser About Simple Games

The meadow, and how a run ends

The track is 600×150 units, with the ground line 127 down from the top — wide and shallow on purpose. Vertically the only question is whether you are above an obstacle or under it, so there is nothing to gain from depth. The width is how much warning you get: even at the run’s top speed, the far edge of the meadow is still 0.77 seconds ahead of you.

The rabbit does not move along the track. It stays 24 units in from the left edge and the meadow slides past it, and every obstacle’s position is read from the distance you have run rather than accumulated obstacle by obstacle — so nothing has drifted out of place 3 minutes into a run.

A rabbit that has been hit loses its eye. That is the whole of the end-of-run effect — no explosion, no debris and no screen shake — and it says the run is over without a word that would need translating.

Controls

There is one input in this game, and it is the hop. There is no crouch and no second input, because every shape on the track is answered either by hopping or by doing nothing at all.

The hop is two numbers and no more: it leaves the ground at 580 units per second against a gravity of 2100, which makes it 80 high and 0.55 seconds long. How far a hop carries, and how wide a gap has to be to be fair, both fall out of those — so there is no third dial to turn.

Seven shapes, and the one that punishes a reflex

Seven shapes make up the meadow and all of them ask the same single question: hop, or don’t. What changes between them is how strict the timing is — a single bush forgives a late hop, a row of three does not — and, in one case, whether the shape is a hazard at all.

ShapeSizeAnswerAppears from
Bush18×36Hopthe start
Hedge (tall)26×50Hopthe start
Two bushes62×36Hopthe start
Three bushes106×36Hopscore 150
Two hedges86×50Hopscore 150
Low bird30×6, flying 24 above the groundHopscore 400
High bird30×6, flying 76 above the groundDo nothingscore 400

The rabbit’s own hit box is its drawn 40×42 shape pulled in 4 on every side, so a pixel of visible overlap is never counted as a death. Boxes and drawings are declared in two different places, so a test compares them mechanically — that is how a row of bushes drawn 44 units short of its box, killing runners on apparently empty grass, was caught.

It gets faster, not busier

Exactly one thing rises as a run goes on, and it is speed. The track starts at 340 units per second and gains 3.6 for every second you stay alive, up to 780, which it reaches after about 2 minutes and then holds. Density is not part of the curve: the gaps stay in the same band of seconds at every speed, so the meadow gets quicker rather than more crowded.

Speed follows the seconds you have survived rather than the points you have scored, so two runs are moving at exactly the same speed at the same moment, however differently they have scored.

The score, and the help you get

The score is the distance you ran and holds nothing else: 40 units of track is 1 point. There are no multipliers, no combo counters and no bonus for a near miss.

It is drawn on the track itself rather than in the app’s status row — zero-padded to 5 digits in the top right, with your best score to its left, marked HI, once you have one. Those digits are the same rectangles the rabbit is made of, so they need no translation and no font to load. The score is still published as a labelled value for screen readers, which cannot read a canvas.

Statistics are four numbers: games played, best score, obstacles cleared and total play time. There is one best score for the whole game, since there is no difficulty and no level to split it by, and play time counts only while the meadow is moving — not while you are waiting to start, and not on the result screen. No streak is recorded, and there is no online ranking: a leaderboard is a server someone has to keep paying for.

Tips

Questions people ask

Do I have to hop over every bird?

Only the low ones. A low bird flies at the rabbit’s own height, so it is hopped exactly like a bush. A high bird passes clear over a rabbit running on the ground and can only hit you if you hop into it — the answer to that one is to do nothing.

Can I double hop, or duck under anything?

Neither. A hop starts from the ground only: a second hop in mid-air would make every gap survivable, and the shapes on the track would stop asking anything. There is no crouch for the same reason — the game keeps exactly one input, so it only ever places shapes that hopping or staying put can answer.

Does the run ever stop getting faster?

Yes. The track starts at 340 units per second, gains 3.6 per second of running, and stops at 780 after about 2 minutes. The obstacles never get denser either, so past that point the meadow stops getting harder; how long a run lasts from there is how long you keep reading the track.

Why is there no Undo, and nothing to carry on with after a hit?

Undo would empty out a game whose content is real-time reflexes, and nothing is hidden for a Hint to reveal. The help instead is an instant retry that is unlimited and free. There is no continue to watch an ad for and no extra life to buy — no game feature is ever behind an ad or a purchase.

Is there anything to unlock, or a run to come back to?

Neither. The meadow is endless and the record is your score, so there are no levels and no daily run — the track is generated from a seed, so a daily one could be added later if it ever earns its place. No run is saved either: leaving the game ends it, while your best score and statistics are kept.

Do I need an internet connection?

The Android app draws the whole meadow on your device out of plain rectangles — no sprite images and no font to fetch — so it plays from the first launch with no connection. The browser version needs to load the page once, and then the game itself runs in your browser.

Everything described here is implemented in the open: read the source code on GitHub.