Phaser AE

Rescue raids

Pro packv3.0.0-32DArcade

The rules of side-on rescue games: fly over a world, protect or collect the people on it, and bring them somewhere safe while enemies try to stop you. One owner runs the world, the craft, the people, the enemies and the waves, and two classic arcade rescue games are presets of the same definition with very different payload and delivery rules.

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

Released October 14, 2026 · updated October 20, 2026

Rescue raids: 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

createRescueRaid builds a world from a config. The world wraps like a planet or is a bounded strip, with a sampled ground line from generateTerrain for mountains or flatTerrain for a desert. The pack owns the visible window too, because smart bombs, firing and spawning depend on what is on screen, and the craft slides across the screen when it reverses. You feed it held input each frame, the stick, thrust, facing, fire, smart bomb and hyperspace, and it runs whole fixed steps and reports what happened.

The craft is either an inertial ship with two facings and an instant reverse, or a helicopter with three facings that turns through the front, tilts, and lands. Weapons are growing beams or projectiles, with inheritance and gravity for bombs. People either walk the terrain or wait in barracks you shoot open. Abductors grab walkers and lift them, and a person who reaches the top is lost while the abductor mutates. Shoot the carrier and the person falls; catch them in the air and set them down, or let them land if the fall is short. Or, with boarding rules, people run to a landed helicopter one at a time up to its capacity, and landing at the base lets them walk to its door.

The waves decide the pressure. Squads arrive from a reserve a few at a time, a spoiler arrives on a timer that speeds up as the wave thins out, conditional spawners bring tanks when you sit landed too long or jets after your first trip, and ten-second escalation steps raise the speed and fire within a wave. The objective is to destroy every counting enemy or to rescue a goal of people, with wave and level bonuses, extra lives and smart bombs at score thresholds. A whole-world scanner gives the minimap's blips, the view bracket and terrain samples with stable ids.

Features

  • Wrapping or bounded worlds — a planet whose x is a circle or a strip with ends, with generated or flat terrain.
  • Two kinds of craft — an inertial two-facing ship with a ramping climb, or a landing helicopter with three facings, tilt-aimed fire and a crash speed.
  • Weapons and specials — beams or projectiles per facing, smart bombs that clear the screen, and hyperspace with a chance of death.
  • Abduction and catching — enemies grab and lift people and mutate; shot carriers drop them, and you catch and set them down.
  • Barracks, boarding and delivery — sources that open when shot, people boarding a landed craft up to its capacity, and delivery zones with a door.
  • Typed enemy behaviour — abductor, hunter, baiter, bomber, pod, swarmer, tank, jet and mine, each with its own parameters and aimed, forward or dropped shots.
  • Waves and levels — squads, start groups, timed spoilers, conditional spawners, escalation, ramps past the table, and destroy or rescue objectives.
  • World loss and restore — when the last person dies every abductor mutates, until a restore wave brings the planet back.
  • A whole-world scanner — centred on the view for wrapping worlds, with stable ids for blips and samples.
  • Deterministic — fixed steps, a seed, and snapshot and restore of the whole state.

Good for

  • Planet-defence shooters in the style of the 1981 arcade Defender, protecting walkers from abductors across a wrapping world.
  • Helicopter rescue games in the style of the 1982 Choplifter, flying hostages from barracks back to base.
  • Small-world variants, a little moon with fewer people and more pods, or a bounded strip instead of a planet.
  • Sea rescues and lunar evacuations, where the craft lands to load people and fly them home.
  • Score-attack arcade modes, with smart bombs, hyperspace and escalating waves.

Make it yours

defenderPreset and choplifterPreset return complete definitions, each with options of its own: the world and view width, how many people, landers, bombers and pods, the squad size and intervals, how many people can be carried, how often the planet is restored, lives and smart bombs; or the number of barracks and hostages in each, seats, sorties, the rescue goal, tanks, jets and mines, and the delivery score. Speed and fire factors and the seed apply to both. Any field can then be replaced: terrain, view, craft handling and weapons, target rules, sources, zones, enemy kinds and their parameters, the wave table, spawners, objectives and budgets.

Two materially different games come out of the same owner. A planet-defence wave game where anywhere on the ground is safe and enemies take the people to you; and a helicopter level game where nothing is safe but the base, people board only a landed craft, and the level ends at a rescue goal. In between sit variants such as a 1280-unit moon with six people, squads of three and three carried at once, or two barracks of ten with six seats and jets from the start.

A quick look

A smaller planet from the preset, the frame loop and the scanner:

const rr = game.rescueRaid;
const g = rr.createRescueRaid(rr.defenderPreset({ humanoids: 6, worldWidth: 1280, squadSize: 3, carry: 3, restoreEvery: 3 }));
g.tick(dt, { x, y, thrust, face, turn, reverse, fire, smartBomb, hyperspace });   // held states; presses detected inside
for (const e of g.drain()) { /* enemy-killed, target-captured, target-caught, target-rescued, wave-complete ... */ }
const x = g.viewOffset(worldX);    // draw position inside the visible window (wrap-aware)
const sc = g.scanner(128);         // whole-world minimap: blips, view bracket, terrain samples

Works with

Good to know

  • One player; two-player alternation, attract-mode demo play and sound are not modelled.
  • Enemy and shot budgets cap allocations, and spawns past them are skipped.
  • The helicopter preset reuses one desert layout for every level with rising enemies; the original's sea, cave and city stages are not authored.
  • Snapshots hold the state but not the definition, so restore into an owner built from the same definition.
  • The pack draws nothing; your game renders the state and the scanner.

More Arcade packs

Show all →