An Aerial Roguelite
Blast Past is a fast top-down helicopter roguelite rebuilt with vanilla JavaScript and HTML5 Canvas. Every run starts with a minigun, then escalates through rockets, guided missiles, chain lightning, escort drones, explosive ammunition, and stranger combinations.

The game is self-contained, responsive, and built to run in the browser without a framework, account, or install.
Play a Run
Play it on blast-past.eyesonflash.com. The game is hosted on Cloudflare Pages. Use a modern desktop browser.
Play Blast Past in your browser ↗
Each run is built around authored 30-second combat waves. Collect physical XP salvage, choose one of three weighted upgrades when you level up, and fight through the Iron Coast, Deep Blue, and Orbital Graveyard sectors. A three-phase boss arrives every tenth wave, with weapon pods that can be destroyed independently.
The battlefield is part of the challenge. Fuel drums, cargo containers, and projectile-blocking wreckage give the helicopter places to move, hide, and create an opening.
Controls
- Mouse mode (default): move the cursor to steer; hold left click or Space to fire.
- Keyboard mode: choose Keyboard under Settings → Controls, then use WASD or the arrow keys to move; aim with the cursor; hold left click or Space to fire.
- Boost: Shift.
- Pause: Escape, P, or the pause button.
- Fullscreen: F or the settings button.
- Upgrade selection: click a card or press 1, 2, or 3.
Settings for controls, master and effects volume, screen shake, and particle density are saved locally.
Build Your Arsenal
Five weapon families create different run identities:
- Minigun: player-fired tracers with multishot, piercing, critical, explosive, and cryo ammunition.
- Rocket pods: automatic explosive salvos with blast and cluster upgrades.
- Hunter missiles: priority-targeting guided ordnance.
- Arc cannon: timed electrical chains across nearby enemies.
- Escort drones: orbiting autonomous weapons that can inherit minigun effects.
The 32-upgrade catalog includes weapon, airframe, system, and special choices. Prerequisites prevent unusable offers, while mechanically distinct fallbacks keep long runs interesting. Explosive piercing fire, critical lightning, homing cluster ordnance, and linked drone squadrons are all viable builds.
Persistence and Progress
Local storage records best score, highest wave, lifetime kills, boss kills, runs, upgrade discoveries, commendations, and settings. Persistent progress is informational; every run begins on equal footing.
Technical Notes
Blast Past uses vanilla ES6+, Canvas 2D, Web Audio, and localStorage. It has no runtime dependencies or remote assets. A fixed-step simulation, capped entities and particles, and a responsive logical canvas keep the game predictable across desktop displays.
The live game is served from Cloudflare Pages. Source lives under js/. The project also exposes window.advanceTime(ms) and window.render_game_to_text() hooks for automated testing.
Get started
Play Blast Past on Cloudflare Pages, or open the source on GitLab. The README covers the controls, run loop, and how the source is laid out.





