managarten/apps/manavoxel/CLAUDE.md
Till JS 5589765180 feat(manavoxel): scaffold 2D pixel platform MVP (Phase 0)
Add ManaVoxel — a 2D top-down pixel platform for creating and programming
miniature worlds in the browser. This commit includes:

- SvelteKit + PixiJS 8 web app with chunk-based tilemap renderer
- Game engine: camera (scroll/zoom), input (keyboard/mouse/touch), player with
  AABB collision, editor/play mode toggle
- Pixel editor tools: brush, eraser, flood fill, pipette, box fill, line
  (Bresenham), undo/redo stack
- Shared types package: materials, areas, items, network protocol, inventory
- Demo world generator with terrain, buildings, trees
- Material palette UI with 15 materials, keyboard shortcuts
- Comprehensive design documents (Roblox analysis, tech stack options,
  voxel resolution analysis, 2D alternative comparison, full project plan)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 08:57:08 +02:00

57 lines
1.6 KiB
Markdown

# ManaVoxel Project Guide
## Overview
**ManaVoxel** is a 2D top-down pixel platform where players create detailed miniature worlds, program items with behaviors, and share them — all in the browser.
| App | Port | URL |
|-----|------|-----|
| Web App | 5195 | http://localhost:5195 |
## Project Structure
```
apps/manavoxel/
├── apps/
│ └── web/ # SvelteKit + PixiJS client (@manavoxel/web)
├── packages/
│ └── shared/ # Shared types (@manavoxel/shared)
├── package.json
└── CLAUDE.md
```
## Commands
```bash
# From monorepo root
pnpm dev:manavoxel:web # Start web app (port 5195)
# From apps/manavoxel
pnpm dev # Start all apps
pnpm dev:web # Start web only
```
## Technology Stack
| Layer | Technology |
|-------|------------|
| **Rendering** | PixiJS 8 (WebGL) |
| **UI** | SvelteKit 2, Svelte 5 (runes), Tailwind CSS 4 |
| **Local-First** | Dexie.js via @manacore/local-store |
| **Auth** | Mana Core Auth (JWT) |
| **i18n** | svelte-i18n (DE, EN, FR, ES, IT) |
## Zoom Levels
| Level | 1 Pixel = | Use |
|-------|-----------|-----|
| Street | 10cm | Walking, interaction, combat |
| Interior | 5cm | Exploring rooms, furniture |
| Detail | 1cm | Item/character sprite editing |
## Core Concepts
- **Areas**: Streets (10cm) and interiors (5cm) are separate pixel grids connected by portals
- **Items**: Pixel sprites (1cm) with properties (sliders) and behaviors (trigger-actions)
- **Floors**: Interiors have multiple floors, connected by stairs
- **Local-First**: Everything works offline via Dexie.js, syncs via mana-sync