# ZAMNY Client Vite + TypeScript + Canvas 2D + ECS game client for _Zombies Ate My Neighbors_ browser edition. ## Quick Start ```bash npm install npm run dev # http://localhost:5173 npm test # vitest (ECS tests) npm run build ``` ## Structure ```txt src/ engine/ ecs.ts # World, Entity, Component, System base ecs.test.ts # 6 unit tests (green) systems/ InputSystem.ts # keyboard/touch stub RenderSystem.ts # Canvas 2D stub PhysicsSystem.ts # movement/collision stub main.ts # 60 FPS game loop + system orchestration ``` ## Key Points - ECS core: `createEntity`, `addComponent`, `query`, `destroyEntity` - Systems extend `System` and implement `update(world, dt)` - Target: 60 FPS, offline single-player works without server - Nickname UI, NetworkClient, sprite rendering: TODO ## Testing - Vitest + jsdom - `npm test` runs `ecs.test.ts` - Coverage target: 70% (documented in ARCHITECTURE.md ยง10) See root [README.md](../README.md) and [ARCHITECTURE.md](../ARCHITECTURE.md) for full design.