On this page
  1. What exists at any moment
  2. The loop, in three rules
  3. The two constraints
  4. Why the generator gets more careful as it gets faster
  5. What players can infer from the generator

What exists at any moment

The mental model most players have of an endless game is a long track that scrolls past. The reality is much smaller: there is a list of four or five obstacles, and it is maintained rather than traversed.

Nothing is stored. There is no map, no seed and no history — an obstacle that has left the screen is discarded and will never be seen again, and one that has not yet appeared does not exist. That is why an endless game can run for an hour without its memory use growing at all.

The loop, in three rules

  1. Move. Shift every obstacle left by the scroll speed times the frame time.
  2. Retire. Remove anything whose right edge has passed well off the left of the screen.
  3. Spawn. When the distance since the last spawn exceeds the current spacing, create a new obstacle just beyond the right edge.

The spawn margin matters more than it sounds. Ours is 40 units past the visible edge, which means an obstacle is fully constructed before any part of it becomes visible. Spawn exactly at the edge and players see things pop into existence, which reads as a bug even when it is not.

The two constraints

Everything that makes a generated field fair comes down to two rules applied at spawn time.

  • Size. The gap is interpolated between a start value and a floor derived from the flight model — the flyer's diameter plus one correction at terminal fall speed.
  • Placement. The gap centre is chosen within a band that is the intersection of the safe area (away from ceiling and floor) and the reachable area (within climb range of the previous gap).

The second is the one naive generators skip, and it is the difference between a hard game and an unfair one. Without it, a ceiling gap will eventually follow a floor gap at a speed that makes the climb impossible.

Why the generator gets more careful as it gets faster

The reachable band is not a fixed number. It is computed from the current scroll speed and the current spacing, which means it narrows automatically as the game accelerates.

The effect is that a late-run field has gaps placed closer to each other vertically than an early-run field does — the generator becomes conservative in placement at exactly the moment it becomes aggressive in speed. That is the opposite of what an unconstrained random generator does, and it is why difficulty here rises smoothly rather than suddenly becoming unplayable.

What players can infer from the generator

Knowing how generation works is not just technical trivia — it changes what you can reasonably expect while playing.

Because each gap is placed relative to the last one, the field never demands a full-screen climb. If a gap looks dramatically far from your current height, you are probably higher or lower than you needed to be at the previous gate rather than facing an unusual placement.

Because the reachable band narrows as speed rises, late-run fields are actually flatter than early ones. Runs feel more frantic late not because the gaps move further but because they arrive sooner.

And because nothing is stored, there is no pattern to memorise and no seed to learn. What improves with practice is your reading, which is exactly what an endless game is supposed to measure.

Key takeaways

  • An endless field is four or five live obstacles maintained by three rules, not a long stored track.
  • Spawning slightly off-screen prevents obstacles visibly popping into existence.
  • Gap size comes from the difficulty ramp; gap placement comes from the intersection of the safe and reachable bands.
  • The reachable band narrows as speed rises, so the generator gets more careful exactly when the game gets faster.

Frequently asked questions

Is there a seed I could replay?
No. Nothing is stored and no seed is used, so every run is genuinely new. An obstacle that has left the screen is discarded permanently.
How many obstacles exist at once?
Typically four or five, depending on the game's spacing. Memory use stays flat however long a run lasts.
What stops the generator producing something impossible?
Each gap's centre is chosen within the reachable band — the range the flyer can actually climb or fall to in the time before arrival — intersected with the safe band away from the edges.
Illustrated portrait used for the Flappy Arcade editorial byline

Alex Morgan

Browser Games Editor & Interactive Gaming Content Specialist

Alex Morgan is the editorial byline for everything published on Flappy Arcade — the design notes, the flight-model tuning and the strategy guides for all 30 games. More about our editorial byline.

Published · Last updated