Carcinisation is a Bevy 0.17 workspace for a pixel-art action game and its supporting toolchain. The repository brings together the runtime, asset generators, editor utilities, and web build scripts under a single cargo workspace.
- Rust toolchain with
cargoon yourPATH. cargo-watchfor hot-reload workflows (cargo install cargo-watch).- Bevy CLI for
bevy run,bevy lint, and browser builds. Install it withcargo install bevy_cli --lockedand verify withbevy --version. prototo provision the pinned Node.js, pnpm, Python, and Ruff versions (proto install).pnpmfor Biome linting and web tooling (installed viaproto installabove).
# rebuilds and reruns the game via `bevy run` whenever game source or assets change (requires cargo-watch; the watcher stays alive even if a run crashes so you can fix the error before the next change)
make dev
# run once without file watching
make run
# run the web target explicitly (same command make dev-wasm wraps)
bevy run --bin carcinisation --package carcinisation web
# lint everything Bevy knows about
bevy lint --workspace --all-targets --all-featuresRun make help to discover additional targets for testing, asset generation, and web builds. Full command descriptions live in DEVELOPMENT.md.
The palette generator relies on the proto-managed Python toolchain so editors and CI stay in sync.
- Install proto’s toolchain version pin:
proto install. - Create or refresh the workspace virtualenv:
make py-setup. This runsproto run python -- -m venv .venvand installsscripts/generate-palettes/requirements.txtinto.venv/. - In VS Code, open the command palette and run
Python: Select Interpreter, then pick${workspaceFolder}/.venv/bin/python(macOS/Linux) or${workspaceFolder}\\.venv\\Scripts\\python.exeon Windows. If IntelliSense lags, runPython: Restart Language Server.
Running make generate-palettes (or proto run python -- scripts/generate-palettes/run.py) uses proto directly, so CI and headless invocations never need to activate .venv. If you upgrade proto’s pinned Python, delete .venv and rerun make py-setup.
Troubleshooting: If VS Code reports Import "PIL" could not be resolved, re-run make py-setup and confirm the interpreter path above is selected.
apps/carcinisation– main game executable and gameplay plugins.assets/– runtime content: stages, cinematics, palettes, and sprites.tools/– supporting utilities (editor, scene watcher, palette generator, asset validators).scripts/– Rust binaries for typeface and graphics generation.web-deploy/– output for wasm builds.
CONTRIBUTING.md– project guardrails, quality gates, and pull-request expectations.DEVELOPMENT.md– make targets, asset tooling, palette generation workflow, and day-to-day processes.AGENTS.md– Codex/Claude collaboration rules and coordination tips.CLAUDE.md– Claude-specific planning and documentation preferences.
- Open a GitHub issue or discussion when planning sizeable architecture or content updates.