Editable game assets directly in your project.
The missing asset manager for games. Source code lives in your repo, not in dependencies. First class Phaser 3, Phaser 4, and Three.js support — with your own registry if you want one.
npx create-gamecn my-game --template phaser-endless-runnerQuickstart
Three commands cover almost everything.
Start a new project
Scaffold a fully runnable game with one command. Pick a template, get a Vite + Phaser or Three.js project.
npx create-gamecn my-game --template phaser-endless-runnerAdd to an existing project
Drop polished components and systems into a project you already have. Source files land in your repo, ready to edit.
npx gamecn add platformer-playerAuthor your own registry
Ship your own internal catalog. Build a deployable static site that any gamecn user can install from.
npx gamecn-registry build --src registry --out distWhat you get
Built around four ideas.
Own your code
Installed components are real source files in your repo. Edit them, refactor them, delete them. They're yours, not a black-box dependency.
Engine-aware
First-class support for Phaser 3, Phaser 4, and Three.js. Item authors declare which versions they support; the CLI checks before installing.
Bring your own registry
Default to the official registry. Add private registries via gamecn.json, with auth headers and ${ENV_VAR} interpolation. Or just point at a local file.
Safe wiring
Comment-marker-based source insertion (// gamecn:preload:start). No AST magic. Files without markers are never modified.
How it works
Three steps. No magic.
- 1
Pick a template or component
Browse the catalog at /catalog or /templates. Each item shows what installs, what it depends on, and what version of Phaser/Three it needs.
- 2
Run npx gamecn add (or create-gamecn)
The CLI fetches the manifest, downloads source files into your project, runs the package manager, and prints engine-specific wire-up instructions.
- 3
Edit. It's your code.
The installed files have no relationship to gamecn after the install. Refactor freely. Future updates use lockfile sha256s to detect what you've changed and never overwrite without --force.