Single-player 2D exploration and combat prototype using Arcade + Pymunk, ECS via esper, and a Proc system.
- Python: 3.12+
- Engine: Arcade 3.x, Pymunk
- ECS: esper
- Data: Pydantic v2
- RNG: numpy PCG64 (seeded)
Use uv (recommended):
# From repo root
uv venv ; uv sync
uv run crystal-arena
Or with Python:
python -m venv .venv ; .\.venv\Scripts\Activate.ps1
pip install -e ./crystal_arena[dev]
python -m crystal_arena
uv run pytest -q
- src/crystal_arena: core package
- assets: textures, sounds, fonts
- configs: JSON/TOML for items/procs/loot
- tests: unit/property/integration/E2E
This is a minimal arena: a player, one enemy, proc logging, and a debug overlay. Expand systems incrementally.