Each wave adds asteroids; clearing the field advances the run.
Asteroid Drift
Canvas Asteroids-style loop with thrust, rotation, shooting, shields, randomized spawns, collisions, waves, scoring, and touch controls.
- Canvas vector rendering
- Shared keyboard/touch input
- Wave spawning and scoring
- Shield and cooldown systems
- Status
- Polished prototype / live demo
- Last updated
- May 2026
- Controls
- Rotate, thrust, fire charged shots, and shield near collisions.
- Keyboard
- Arrow/WASD move, Space/Enter fires, Shift/S shields, P/Escape pauses, R restarts.
- Touch
- Hold Left/Right/Thrust, tap Fire, and hold Shield while energy drains.
- Scoring
- Asteroids score by size, wave clears add bonuses, and best score saves locally.
- Accessibility
- Score, wave, lives, shield, charge, and status text are exposed outside the canvas for nonvisual game state.
Ready
Asteroid Drift ready.
Keyboard and touch controls
Keyboard shortcuts
- Left / ARotate the ship left while held.
- Right / DRotate the ship right while held.
- Up / WHold thrust to build momentum.
- Space / EnterFire when playing, or launch from the menu.
- Shift / SHold the shield while energy is available.
- P / Esc / RPause or resume with P/Esc; restart with R.
Touch controls
- Left / RightHold to rotate the ship.
- ThrustHold to move forward and build drift.
- FireTap for shots when the blaster is charged.
- ShieldHold to absorb close hits while shield energy drains.
Touch controls: hold rotation/thrust, tap Fire, hold Shield for close calls.
A focused arcade loop with readable risk and reward.
Hits score by asteroid size, wave clears add bonuses, and best score persists.
Lives, shield energy, and blaster charge keep risk readable.
Movement, shooting, collision, shield, and spawning systems.
The ship uses rotation, thrust, drag, speed clamping, and screen wrapping for inertia without a physics library.
Bullets inherit ship position/direction, expire quickly, and use a HUD cooldown.
Impacts use radius checks, split large rocks, and update score, lives, particles, and waves.
Shield drains while active, recharges when released, and can absorb a crash.
Asteroids spawn from screen edges with randomized heading, speed, spin, and shape.
Keyboard and touch write into one input state.
Arcade movement, wave state, and keyboard/touch combat controls.
- Implemented ship thrust, rotation, projectile firing, shield charge, wraparound movement, and lives/scoring state.
- Built randomized asteroid spawning, split behavior, wave progression, collision checks, and HUD progress updates.
- Added keyboard and touch controls that feed the same input state, plus pause/restart/fullscreen and reduced-motion handling.
Asteroids-style mechanics are an established genre reference; this browser implementation, visuals, and state loop are custom JavaScript.
Polished prototype with release hardening still ahead.
Solid: movement, shooting, shields, spawns, collisions, waves, HUD, best score, and keyboard/touch. Hardening: collision tests, difficulty tuning, mobile QA, profiling, and richer nonvisual status.
Static canvas game with local browser state.
GitHub Pages serves asteroid-drift.html, asteroid-drift.css, and asteroid-drift.js. No env vars or external APIs beyond browser APIs and LocalStorage. Local: run python -m http.server 8000 and open /asteroid-drift.html.