Alien Invasion has been rebuilt as a small Vite + TypeScript canvas game.
npm install
npm run devnpm run buildnpm run test- The legacy global script was replaced with a module-based TypeScript implementation.
- Game state now lives in a single
GameStateobject. - Input, update, render, and audio are separated in the runtime.
- The loop now uses
requestAnimationFrameinstead ofsetInterval. - DOM controls now provide restart, mute, and live status without relying on keyboard-only overlays.
- The UI now includes pause, difficulty, and volume controls backed by typed game settings.
- Settings and the top five local high scores now persist in browser storage.
- The runtime is split across
src/game/modules for state, input, audio, assets, update, render, and UI copy. - The update system now has lightweight automated coverage.
- Existing image and sound assets are served from
public/.