create-seer
CLI tool to scaffold a new Seer project with multi-game/multi-platform support pre-configured.
npx create-seer <project-name> [options]Options
Section titled “Options”| Flag | Default | Description |
|---|---|---|
--game <id> |
mygame |
Game identifier for the pre-configured entry |
--platform <id> |
amiga |
Platform identifier |
--display-name <name> |
Derived from game ID | Human-readable game name |
--viewer |
off | Include the asset viewer tool |
Examples
Section titled “Examples”npx create-seer my-projectnpx create-seer zonx --game zonx --platform amiga --display-name "Zonx"npx create-seer spirit --game spirit --platform dosvga --display-name "Spirit" --viewerWhat it generates
Section titled “What it generates”The scaffolded project includes:
- Root config —
package.json,tsconfig.json,vite.config.ts,eslint.config.js,.prettierrc,.gitignore,index.html src/— Browser-side entry point (main.ts), game/platform ID types (game-id.ts), asset types and loader (data/)tools/— Offline pipeline scripts:extract-game-data.ts, per-gameexport-game-data.tsandbuild-assets.tstemplates, sharedgame-config.tsseer.config.ts— Pipeline configurationREADME.md— Project-specific getting-started guide
With --viewer, the following is also included:
tools/viewer/— Asset viewer for browsing built sprites, atlases, and palettes in the browser. Data-driven game/platform selectors (from a build-emittedgames.json, so growing to more platforms later needs no template changes), asset-type filter tabs derived from whatever’s in the manifest, animation autoplay, and a generic indexed-texture + palette WebGL2 shader with a live palette editor and color-cycling control. Seedocs/viewer.mdfor the full architecture.
Generated directory structure
Section titled “Generated directory structure”<project>/ src/ main.ts Entry point game-id.ts Game/platform identifiers data/ GameData.ts Asset type definitions AssetLoader.ts Browser asset loader tools/ shared/ game-config.ts Shared pipeline config __tests__/ game-config.test.ts Config smoke test <game>/ export-game-data.ts Stage 1 template build-assets.ts Stage 2 template viewer/ (with --viewer) index.html Viewer entry point viewer.ts Viewer logic viewer.css Viewer styles shared.ts Shared types data/<game>/<platform>/ Game data (gitignored) public/assets/ Built web assets (gitignored) seer.config.ts Pipeline configuration package.json tsconfig.json vite.config.ts index.html README.mdNext steps
Section titled “Next steps”After scaffolding:
cd <project>npm installnpm run devPlace your original game data files under data/<game>/<platform>/, then
implement your parsing logic in tools/<game>/export-game-data.ts and
tools/<game>/build-assets.ts.
Testing
Section titled “Testing”npm testnpm run lint