Skip to content

Picking a starter bundle

When you create a new project, Forge offers a “Want to start with a bundle?” modal. Each bundle scaffolds a complete playable slice: scenes, systems, art, dialogue, music, QA scenarios, the works. You pick one, click apply, and the project opens with a dev server you can start immediately.

You can also pick Blank project and wire everything yourself. Bundles are the fast path; blank is the right call if you’re porting an existing codebase in or already know exactly what you want.

Every bundle gives you the same shape:

  • A working game you can boot in a browser (pnpm dev at localhost:5174) inside the first minute.
  • A GameManager spine that owns every system. See The Game Manager spine for what that means.
  • Pre-wired system components: AudioManager, EventBus, ProjectConfig, StateMachine, SaveSystem, and whichever others fit the genre.
  • Hand-authored data files (scenes, dialogue, animation clips, palettes) that you can edit in Forge’s visual tabs or by hand.
  • Asset bank: sprites, portraits, music loops, SFX cues, all generated for the Forge starter bank and free to reuse.
  • A README.md inside the project root that tells you exactly what’s there, how to extend it, and which agent hooks the bundle expects.
  • QA scenarios under .forge/qa/ that the agent can run to smoke-test your changes. See QA playtest.
BundleGenreTechUse when
Platformer2D side-scrollerPhaser 3 + ViteYou want jump physics, parallax, enemies, levels
Top-down RPGTop-down adventurePhaser 3 + ViteYou want tilemaps, NPCs, dialogue, quests, multi-map
NarrativeVisual novelPure DOM + ViteYou want dialogue trees, portraits, branching choices
Web minimalSingle-screen clickerPure DOM + ViteYou want the smallest possible spine to learn the harness

If you’re not sure, Web minimal is 600 lines of TypeScript end-to-end. It’s the fastest way to read every system in one sitting and see how the spine works.

The picker fires automatically after a fresh project scaffolds. Three exits:

  1. Pick a bundle. Forge writes the bundle’s files into the project root, wires the systems into .forge/gamemanager.toml, and opens the project. The dev server is one click away in the Web preview tab.
  2. Blank project. Just opens the project as-is. You’ll get the standard .forge/ skeleton (BRIEF, DESIGN, STACK, etc.) but no game code.
  3. Cancel / Esc. Closes the picker and opens the project. The files are already on disk, so refusing to open would be confusing.

Once a project exists, the picker doesn’t fire again. To add a single system to an existing project, use the scaffold popover above the chat composer (the gear icon). See Systems and Game Manager for that flow.

Picking a bundle scaffolds a complete project tree alongside the standard .forge/ files. For the Platformer bundle, that looks roughly like:

my-game/
├── .forge/
│ ├── gamemanager.toml # Registered systems + startup order
│ ├── tasks.toml # setup / dev / build / [preview]
│ ├── qa/ # Playwright scenarios
│ ├── BRIEF.md # Plus the rest of the .forge/ skeleton
│ └── …
├── public/ # Bundled art, audio, data files
├── src/
│ ├── main.ts # Entry point
│ ├── game-manager.ts # The spine; owns every system
│ ├── systems/ # One file per system
│ ├── scenes/ # Boot / main-menu / gameplay / pause / etc.
│ └── data/ # Levels, palettes, dialog trees
├── index.html
├── package.json
├── vite.config.ts
└── tsconfig.json

Each bundle’s README inside the project (top of the project tree) is the most accurate map for what shipped. These docs cover what you need to decide which bundle to use before scaffolding.

Two bundles exist in the source tree but are deliberately hidden from the picker for now: a 3D adventure scaffold and an FPS scaffold. They depend on Meshy mesh generation and a UX pass that hasn’t landed yet, so they’re parked rather than shown to new users.

If you want one anyway, ask the agent in Act mode:

Scaffold the 3d-adventure bundle into this project

The agent calls the same Tauri command the picker uses. You’ll get the same outcome the picker would have produced, but you’ll be doing it on a project where you already know what you’re doing. Expect rough edges. They’re hidden for a reason.