# CLAUDE.md This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. ## Project Overview This is a Phaser 3 HTML5 top-down space shooter game (Asteroids-inspired). The project is currently in the early implementation phase — `Software.md` is the authoritative game design specification. ## Local Development Start the development server (serves files at `http://localhost:8000`): ```bash ./start_web.sh # or equivalently: python3 -m http.server 8000 ``` There is no build step, bundler, or package manager. Open `index.html` directly in the browser via the HTTP server. ## Technical Constraints - **Framework:** Phaser 3 (loaded via CDN or local file) - **Language:** JavaScript ES6 modules using native `import`/`export` - **No bundler** (no Webpack, Vite, Rollup, etc.) — modules must be referenced directly and served over HTTP (not `file://`) - **Resolution:** 1600×900 - **Graphics:** Vector/placeholder graphics first; sprite replacement comes later ## Game Design Summary (from Software.md) **Levels:** A level ends when all asteroids and alien ships are destroyed. Player always respawns at screen center on new level. **Asteroids:** - Spawn at level start, rotate slowly in a random direction/speed - Large → 1–3 mid or small fragments on destruction - Mid → 2 small fragments on destruction - Small → fully destroyed **Alien Ships:** Periodically attack, move toward the player, fire occasionally. Destroyed by a single player shot. **Controls:** - Ship rotates to follow the mouse cursor at a fixed rate (360° turn = 2 seconds) - Left mouse button = thrust/accelerator - `a` key or `space` = fire weapon - Zero-gravity physics: ship accelerates over ~2 seconds to full speed, decelerates gradually when thrust stops ## Architecture Guidelines Organize game entities as separate ES6 modules (e.g., `Player.js`, `Asteroid.js`, `AlienShip.js`, `Bullet.js`, `GameScene.js`). Each module exports its class; scenes import and instantiate them. Avoid circular dependencies — prefer a single scene that owns all game objects.