Phaser AE

Crowd runner with number gates

Pro packv3.0.0-12DArcade

A crowd runner on a straight lane: choose the better gate, steer the crowd round the saws, beat the enemy crowds and climb as high as you can at the end. Courses are written by hand or made from a seed, and the pack gives you every member's position to draw.

This is a Pro pack. Upgrade to Phaser Pro to use it in your games.See Phaser Pro →

Released October 19, 2026

Crowd runner with number gates: a screenshot of its demo
A note about these graphics

Expansion packs don't come with graphics. This screenshot is one way of drawing what the pack does, made for its demo: none of the sprites, tiles or backgrounds in it are in the pack.

That's by design. A pack is a game's logic, mechanics and effects, and it works with whatever art you give it. Some packs draw effects, backdrops or 3D scenes of their own, but none carries a game's sprites.

So the look is yours. Make the art on phaser.io, bring your own, or let your agent draw it in code: the same pack can look like anything.

What it does

The crowd runs up the lane on its own; you steer it across with move, or towards a point with aim as a drag does. Gates come in pairs, one each side of a divider, and the one the crowd's middle passes through changes the count: +, -, x or / by a number. The crowd is a sunflower of members packed round its middle and squeezed to fit the lane, and that formation is what makes steering matter. A saw, a wall or a pit kills exactly the members in line with it as they reach it, so steering past saves the crowd, a clip costs the members that touch, and a crowd too wide to miss loses the part that does not fit.

An enemy crowd stops yours, and the two close up and fall one for one; the smaller is gone first. At the finish the crowd either climbs a staircase as a tower, leaving a few members on each step for a multiplier that grows with every step, or fights a boss that loses hit points to each member and fells a few at intervals. The score is the members at the finish times the multiplier.

Courses can be generated by seed. planRunnerCourse places gates, obstacles and enemy crowds along the lane by a mix you choose, gives every gate pair a good side, always leaves a gap past an obstacle, and sizes each enemy crowd from the count the best gate choices would give at that point, less what the obstacles must cost a crowd too wide to miss them, so the enemy crowds stay beatable on the best route. The run advances in fixed steps of 1/60 s and reports events for each gate, loss, clash, step climbed and the result.

Features

  • Number gates — add, take away, multiply and divide, in pairs with a divider you can move, and helpers that do a gate's arithmetic and write its label.
  • A packed formation — members placed round the crowd's middle at a set spacing, with formation(count) giving their places for any count.
  • Obstacles that cost members — saws, walls and pits sized across and along, and any of them can swing side to side.
  • Enemy crowds — clashes that trade one for one, with a time for an equal clash.
  • Two finishes — a staircase tower with a multiplier for every step, or a boss with hit points and an attack.
  • Courses by seed or by hand — a generator with a feature mix, gate set, obstacle kinds and enemy sizing, or a course written as data.
  • A view to draw — up to 600 member positions, the enemy crowds still standing and where every obstacle is now.
  • Autopilot — takes the gate that leaves the bigger crowd and steers to where the fewest members touch each obstacle, swing included.
  • Snapshot and restore — the run and its course as plain JSON, with checkCrowdRunnerSave to say why a save will not load.

Good for

  • Hyper-casual crowd runners in the style of Count Masters, with gates, saws and a tower at the end.
  • Number-gate runners where the choice of gate is the game, with an autopilot to prove a course is winnable.
  • Crowd-versus-crowd clashes along a lane, ending in a boss fight.
  • Seeded and daily levels, a new course from each seed with enemies sized to the route.
  • Attract modes and level tuning, driven by the autopilot.

Make it yours

createCrowdRunner takes the seed, the course or the generator's options, the starting crowd, run and steering speeds, the spacing between members, the most members a crowd can hold, and how long a clash of equal crowds takes. The generator takes the lane's length and width, the spacing between features, the mix of gates, obstacles and enemies, the gate set, the obstacle kinds and the share of the best count each enemy crowd is. A hand-written course lists gate pairs, obstacles, enemy crowds and a finish.

Two different runs from one pack: a generated course of 320 units, five members at the start, gates from +5 to +30 and x2 or x3, and a staircase at the end; or a hand-built boss level, short and narrow, with swinging saws between harsh divide gates and a boss with many hit points that fells members quickly.

A quick look

A run steered by dragging and drawn member by member:

const run = game.crowdRunner.create({ seed: 4 });
run.aim(dragX);                          // or run.move(keys)
run.step(dt);
for (const m of run.view().members) drawMember(m.x, m.z);

Works with

  • crowd-cannon — for units fired from a cannon through gates at an enemy base.
  • collect-build — for a race that lays bricks on staircases.

Good to know

  • The lane is straight, and members are points in a packed formation, not bodies pushing each other.
  • A gate goes by the crowd's middle: the crowd does not split across a pair.
  • The view lists up to 600 members, whatever the count.
  • The pack draws nothing: your game draws the crowd, the gates and the obstacles.

More Arcade packs

Show all →