Game Jam
Turn a theme and a fixed deadline into a finished, submitted game. This is a planning and scope-control playbook, not engine code: the win condition is something submitted and playable, not the game you imagined.
When to use
- Use when entering a timed jam (Ludum Dare, GMTK Jam, Global Game Jam, a weekend jam), scoping a 48-hour build, or deciding what to cut to hit a deadline.
- Use when the user asks "what can I actually build in a weekend" or "how do I submit to this jam".
When not to use: building the core loop in engine code (use the engine skill —
godot-2d-movement, phaser-core, etc. — or a genre skill like platformer); throwaway
experiments with no deadline (use prototype-fast); shipping a commercial release (use
steam-publish / itch-publish).
Core workflow
- Read the rules before the theme drops. Confirm the jam's length, theme reveal time, submission deadline (with timezone), whether teams/pre-made assets/engines are allowed, and whether ratings require you to rate other entries. Missing one of these disqualifies an otherwise-finished game.
- Prep the boring parts in advance (allowed by most jams): empty project that builds and exports, input + a title/end screen stub, an export pipeline you've run once, and a font/SFX source you're licensed to use. Day-one time is too precious to spend here.
- Theme → one sentence. Brainstorm 10 ideas in 15 minutes, then commit to one expressible as: "You [verb] to [goal] while [constraint]." If you can't say it in one sentence, it's too big.
- Scope to the clock, not the idea. Use the budget table below. Pick one core mechanic and one "hook". Everything else is a stretch goal.
- Build the vertical slice first. Get a 30-second playable loop (start → play → lose/win → restart) running early. A complete tiny loop beats a half-built big one.
- Reserve the last ~20% of the clock for shipping, not features. Export, test the build on a clean path, capture screenshots, write the page. Builds always break at hour 47.
- Submit early, update if time remains. Upload a working build well before the deadline; most jam pages let you swap the file until it closes. A submitted mediocre game scores; an unsubmitted great one does not.
Patterns
1. Scope budget by jam length (plan backwards from the deadline)
2. The 48-hour timeline (concrete blocks)
3. Feature triage — decide fast, decide out loud
4. Pre-submission build check (run on a clean copy, not your dev folder)
Pitfalls
- Scope creep is the #1 jam killer. If the core loop isn't playable by the first third of the clock, cut features now, not later.
- No ship buffer. Exporting, zipping, and writing the page reliably takes 1-3 hours and always surfaces a build bug. Treat the deadline as ~2 hours earlier than it is.
- Submitting to the page but not the jam. On itch.io a jam entry is a separate submission linked from the jam page — uploading the game alone does not enter it.
- Untested export. "Works in the editor" is not "works in the build." Test the exported artifact on a clean path; missing assets and wrong working directories are classic.
- Unlicensed assets. Music/fonts/sprites pulled from the web can violate jam rules and break later distribution. Use assets you're licensed for and list them in the credits.
- Polishing before the loop is fun. Juice multiplies fun; it can't create it. Get the loop right with placeholders first.
References
- For the throwaway-vs-keep prototyping mindset and greyboxing technique, read the
prototype-fastskill. - For the actual upload mechanics (project page, channels,
butler push), readitch-publish.
Related skills
prototype-fast— validate a mechanic quickly before committing jam hours to it.itch-publish— create the page and upload the build (most jams are hosted on itch.io).- Engine cores (
phaser-core,love2d-core,godot-gdscript, …) and genre skills (platformer,roguelike, …) — build the actual loop the jam scopes around.

