Moonlit Arcana(月影祕律)is an original four-lane fantasy rhythm game. Runes stream down four lanes to the beat of original music — hit them in time to build combo, chase accuracy and climb your best score.
The whole game is hand-built on the raw web platform — Vite, vanilla JavaScript, Canvas and the Web Audio API. No game framework and no runtime dependency; charts and audio are locked to a single AudioContext clock, so timing stays honest even when the browser drops frames.
Features
- Single-Clock Sync: Charts and MP3 playback share one
AudioContext.currentTime. Countdown, auto-miss, input judgment and note positions all derive from the same song time — note positions are recomputed every frame fromhitTime − songTime, never accumulated, so dropped frames don't drift the beat - Four Original Tracks: All composed for the game, each with its own BPM, first-beat offset and key — from a 100 BPM fantasy march to a 130 BPM minor-key parade
- Four Difficulty Levels: Beginner to Expert per song, with lower-level notes preserved into higher levels and syncopation, fills and double-taps layered in as you climb
- Deterministic Charts: Charts are rule-generated — the same song at the same level plays identically every time, so best records are truly comparable
- Precise Judgment: Five-tier timing windows (Marvelous ±30ms down to Good ±140ms) with Early/Late feedback, scored and normalized to 1,000,000
- Robust by Design: Music decode failures return to song select with a visible error instead of silently swapping tracks; corrupted save data falls back to safe defaults rather than blocking launch
- Independent Records: Best score and grade saved per song and per difficulty in localStorage, alongside volume, rune speed and reduced-motion settings
Controls
Arrow keys ← ↓ ↑ → or D F J K for the four lanes, Space / Enter to start or confirm, P / Escape to pause, R to retry. Touch devices get four on-screen buttons with multi-touch support via Pointer Events.




