What it does
The helicopter flies along a straight course. The stick moves it sideways and changes its altitude with inertia, so it drifts to a stop, and a throttle lever sets the speed from a hover to full, with turbo at the top. In the overhead view the camera is tilted down and the towers' roofs scale and their sides open out about the vanishing point as you climb and dive; fly below a roof line and you crash. In the behind view the camera is level and the scenery comes at you: towers, cave pillars, jungle banks and pipes high, low and in the middle. A stage is a list of sections, and the camera eases from one view to the other as it passes between them.
The cannon streams rounds at the helicopter's own height for targets in the air. Missiles launch in pairs on a slow reload, drop to the ground or a boss's deck and run along it, bursting with a blast that hits ground targets nearby. Enemy waves of tanks, trucks, guns, boats, helicopters and jets fly in formations and with their own motions, head-on, crossing, hovering, overtaking or rising from the water to ram, and fire straight or homing shots that lead the helicopter.
Bosses are indestructible hulls carrying parts you destroy one by one. Some you must fly past or over before the
section ends; others hold the course at a dead end until every core part is down, and parts can rise once others fall.
The game runs the whole session: take-off, stages, a HIT count, a stage-clear bonus by kills and time, lives with a
start window in which a crash costs nothing, extra lives and a top score. You draw g.field through g.camera and
present the events it drains.
Features
- Two views, one camera — overhead and behind are the same camera at different tilts, eased between during a swing, so a stage can mix them in any order.
- Height that matters — overhead, towers rise toward the camera and a dive under a roof line is a crash; behind, rows of pillars and pipes force a climb or a dive.
- Flight with inertia — lateral and climb rates, acceleration, banking, and a throttle from hover to turbo, plus a pointer that can act as the stick.
- Two weapons — a cannon at the craft's height for the air and paired ground-running missiles with a blast, each with its own rate, range, count and spread.
- Waves as data — kinds, counts, formation shapes or offsets, spacing, mirroring and seven motions, with aimed or homing fire that leads the player.
- Bosses in parts — a hull, parts with core flags, parts that rise after others fall, and a choice of pass or destroy to clear the section.
- Scoring and lives — points for flight and kills, a HIT count, a clear bonus by hits and time, extra lives, a top score and a grace period at the start.
- Difficulty — Easy, Normal and Arcade, from slower enemy fire and a smaller hit box to the presets' own tables.
- Snapshots — save and restore a whole game.
Good for
- Helicopter assault shooters in two views, in the style of Thunder Blade.
- Overhead city raids where the skyscrapers are obstacles you weave between and dip under.
- Canyon and cave runs behind the craft, threading pillars, banks and pipes.
- Any low, slow gunship — a hovercraft, a jetpack trooper or a drone fighting over the ground.
- A weaponless flying game, such as a drone delivery with lethal scenery and a drop zone at the end.
Make it yours
A configuration is plain data, and a preset is only a starting point: change any field. Stages hold any number of sections in any order of views, and a stage can have several bosses. The camera can tilt to any angle from 30 to 90 degrees, with the vanishing row and camera height moved. Flight ranges, inertia, speeds and take-off, both weapons, the enemy roster and its fire, the scenery streams, the waves, the bosses, the scoring and whether the game ends or loops are all settings.
Two presets show the range. thunderBladePreset is four stages, each an overhead section, a behind section and a boss,
with a camera that looks straight down, a take-off from the pad, a hover and turbo, and a 30-second start in which a
crash costs no life. harbourStrikePreset is an original three-stage mission that opens behind the helicopter and ends
overhead under a camera pitched at 60 degrees, with two bosses a stage, container lanes and cranes to thread, single
heavy missiles with a wide blast, no hover, turbo or take-off, extra lives, and a mission that loops.
A quick look
Start a game from a preset, feed it the stick, buttons and lever each frame, and draw the field through its camera:
const HA = game.heliAssault;
const g = HA.createHeliAssault(HA.thunderBladePreset({ difficulty: 'normal' }));
g.start(); // take off from the pad
g.tick(dt, { x, y, fire, missile, throttle }); // stick -1..1, cannon, missiles, lever
for (const e of g.drain()) present(e); // swing, boss-start, destroyed, stage-clear…
const overhead = g.cameraBlend.tilt > Math.PI / 4;
for (const s of g.field.view(g.camera, { order: overhead ? 'ground' : 'depth' })) drawSprite(s);
Works with
scaled-depth— required: the camera, the field of objects, the ground bands, swept collisions and the depth order.jet-combat— its formation shapes lay out every wave, and a jet stage can sit between helicopter stages on the same world; reach for it alone when the whole view should roll with a jet.scaler-runner— for a runner that never looks down.scrolling-shooter— for a flat 2D vertical shooter with no height.typography— for the score, HIT count and banners.
Good to know
- The course runs straight along its depth, with no turns, and the helicopter's heading never changes.
- The camera tilts about one axis only; during a swing your presenter picks how to draw towers by whichever view is nearer.
- Collision is between boxes, and overhead scenery must stay below the camera's lowest height.
- The preset's points, speeds and wave layouts are estimates calibrated to scores seen in the original, as no disassembly of it exists; continues are not offered.
- Bounds: at most 999 stages, 64 members a wave and 4096 objects in the field.






