FLUX ORBITER

A neon gravity-orbit arcade score attack. Your ship auto-orbits a pulsing star; hold to dive, release to coast, and chase the combo. One self-contained HTML file, zero dependencies, zero install.

Run it

Controls

Input Action
Hold SPACE / MOUSE Dive toward the star, gain speed
Release Coast back out on the orbit
Mouse move Subtle aim assist (gently pulls your arc)
P or ESC Pause / resume
M Mute / unmute (state shown in HUD)
R or SPACE Restart on the game-over screen

How to play

  1. You orbit a glowing star. The gold orbs sit on orbit rings - dive to catch them.
  2. Each orb adds 10 x your combo. The combo grows with every orb and its timer shrinks as the run goes on; miss orbs and the combo decays.
  3. Red mines sweep the rings, and asteroid debris drifts inward. Both cost one of your 3 lives, and so does brushing the star itself.
  4. Survive 3 minutes or die trying. Score attack: high score is saved locally (localStorage, wrapped in try/catch - the game always starts regardless).

Design notes

Tech notes

Files

# FLUX ORBITER

A neon gravity-orbit arcade score attack. Your ship auto-orbits a pulsing star;
hold to dive, release to coast, and chase the combo. One self-contained HTML
file, zero dependencies, zero install.

## Run it

- Double-click `index.html`. It runs straight from the local filesystem
  (`file://`) in current Chrome, Safari, and Firefox.
- Or drop the folder on any static host (GitHub Pages, Netlify, S3, ...).
- No server, no build, no account, no network access required.

## Controls

| Input              | Action                                   |
| ------------------ | ---------------------------------------- |
| Hold SPACE / MOUSE | Dive toward the star, gain speed         |
| Release            | Coast back out on the orbit              |
| Mouse move         | Subtle aim assist (gently pulls your arc)|
| P or ESC           | Pause / resume                           |
| M                  | Mute / unmute (state shown in HUD)       |
| R or SPACE         | Restart on the game-over screen          |

## How to play

1. You orbit a glowing star. The gold orbs sit on orbit rings - dive to catch
   them.
2. Each orb adds 10 x your combo. The combo grows with every orb and its timer
   shrinks as the run goes on; miss orbs and the combo decays.
3. Red mines sweep the rings, and asteroid debris drifts inward. Both cost one
   of your 3 lives, and so does brushing the star itself.
4. Survive 3 minutes or die trying. Score attack: high score is saved locally
   (localStorage, wrapped in try/catch - the game always starts regardless).

## Design notes

- Risk/reward core: diving is faster and scores more per lap, but the star's
  gravity well is exactly where the danger lives.
- Difficulty ramps over the 3-minute run: more mines, more debris, faster orb
  drain, tighter combo window.
- Near-miss feedback: passing a mine closely awards +15, so aggression is
  rewarded even when you don't collect.
- Neon-on-dark aesthetic with layered translucent glows; shadowBlur is used
  sparingly (star, ship, orbs) so the game holds 60 fps on a laptop.
- Procedural WebAudio synth: orb blips rise in pitch with your combo, milestone
  arpeggios every x5, boom + life-loss stingers, a dive hum, and countdown
  ticks in the last 10 seconds. Audio is created lazily on the first user
  gesture and never throws if blocked.

## Tech notes

- Single `<script>` (strict mode), Canvas 2D + requestAnimationFrame, no
  external assets or fonts, no runtime network calls.
- Handles window resize and devicePixelRatio (capped at 2x) correctly.
- Particle counts capped at ~300 with an object pool; animation frames are
  cancelled on game over; listeners are attached once at boot.
- Pause auto-triggers when the tab loses visibility.

## Files

- `index.html` - the entire game (HTML + CSS + JS inline)
- `README.md` - this file