Skip to content
Development
Skill

/game-jam

Plans and ships a game jam entry against a fixed deadline: reads the jam rules, scopes to the clock, keeps a cut list and checks the build before submitting. Use for Ludum Dare, GMTK, Global Game Jam or any itch.io jam, a 48-hour game, or "we're behind, what do we cut". Not for

From plugin
awesome-gamedev-agent-skills
8.6k79 skills

Claude Code

$ npx -y skills add gamedev-skills/awesome-gamedev-agent-skills --skill game-jam --agent claude-code

SKILL.md

game-jam.SKILL.md
name: game-jam
description: >
  Plans and ships a game jam entry against a fixed deadline: reads the jam rules, scopes to the
  clock, keeps a cut list and checks the build before submitting. Use for Ludum Dare, GMTK, Global
  Game Jam or any itch.io jam, a 48-hour game, or "we're behind, what do we cut". Not for untimed
  experiments (`prototype-fast`) or upload commands (`itch-publish`).

Game Jam

Turn a theme and a fixed deadline into a submitted, playable game. The win condition is a build that is attached to the jam before it closes, not the game first imagined. The agent keeps the plan in a file, builds the smallest loop first, cuts on schedule, and runs the build checks itself; the user decides the concept, plays the build and presses submit.

When to use

  • Entering a timed jam, scoping a 48- to 96-hour or one-week build, deciding what to cut to hit

a deadline, or getting a jam entry submitted.

**Not for:** the core loop's engine code (engine skills such as `godot-2d-movement` or `phaser-core`, or genre skills such as `platformer`); experiments with no deadline (`prototype-fast`); a commercial release (`steam-publish`, `itch-publish`).

Workflow

1. **Get the rules before the theme drops.** Ask the user for the jam page URL and read it (or ask them to paste the rules). Record in `JAM.md` at the project root: length, theme reveal time, submission deadline in UTC and the user's local time, team and asset rules, the generative-AI rule, required platforms, where the entry is submitted, whether uploads lock during rating, and whether rating others matters. Each of these has disqualified finished games. Recurring jams' current rules are summarised in Version notes; the live page wins. 2. **Prep what the rules allow in advance:** an empty project that exports, input and a title/end screen stub, an export command that has run once, and licensed font and SFX sources. Day-one hours are too precious for this. 3. **Theme to one sentence.** Offer about ten ideas quickly, then help the user commit to one that fits *"You [verb] to [goal] while [constraint]."* If it does not fit one sentence, it is too big. Write it in `JAM.md`. 4. **Scope to the clock.** Use the budget table (Pattern 1): one core mechanic, one hook, everything else on a stretch list in `JAM.md`. 5. **Build the vertical slice first:** start, play, win or lose, restart, with primitives. A complete tiny loop beats a half-built big one. 6. **Check in against the timeline** (Pattern 2) at each block boundary. When the loop is late, cut from the stretch list using the triage rules (Pattern 3) and log the cut in `JAM.md`. 7. **Reserve the last ~20% of the clock for shipping:** export, run the Verify checks, capture screenshots, write the page. Builds tend to break in the last hours. 8. **Submit early, then update while allowed.** Upload a working build well before the deadline. After the deadline many jams lock uploads or allow only declared bug fixes, so the build attached at the deadline is the one people rate.

Patterns

1. Scope budget by jam length (plan backwards from the deadline)

              | 48-hour jam            | 72-96 hour jam        | 1-week jam
--------------|------------------------|-----------------------|------------------------
Core mechanic | 1, proven by hour 6    | 1-2                   | 2-3 interacting
Levels/content| 1 hand-made or gen'd   | 3-5                   | 8-12 + progression
Art           | placeholder/1 palette  | cohesive 1-artist set | themed set + UI
Audio         | 3-5 SFX + 1 loop       | SFX + 1-2 tracks      | adaptive music
SHIP BUFFER   | last 8-10 h            | last 12-16 h          | last full day

2. The 48-hour timeline

H0-2    Lock the one-sentence concept; name the core mechanic and win/lose.
H2-8    Core loop with primitives. Playable, no art.
H8-12   Sleep. Tired code is tomorrow's bug list.
H12-24  One level or encounter, tune difficulty, add the hook.
H24-30  Sleep; the user plays the build (and ideally one other person); cut what isn't landing.
H30-38  Art and audio pass, then juice (see `game-feel`).
H38-44  Feature freeze: fix only crashes and soft-locks.
H44-48  Export, Verify, screenshots, page, SUBMIT by about H46.

3. Feature triage

For every feature, in order:
  1. Does the core loop work without it?  -> yes: stretch goal, not MVP.
  2. Would a player notice it missing?    -> no: cut it.
  3. Is it under 30 minutes of work?      -> no: defer past the ship buffer.
Under deadline pressure the default is CUT; it can return in a post-jam version.

4. `JAM.md` skeleton

Jam: <name + URL>     Deadline: <UTC> / <local>     Upload lock: yes/no
Rules: team | assets | AI | platforms | submit where
Concept: You <verb> to <goal> while <constraint>.
MVP: <core mechanic>, <hook>, start/play/end/restart
Stretch (in cut order): ...
Cut log: <hour> cut <feature> because <reason>

Verify

Run these before submitting, on the exported build, not the editor:

1. **Export from the command line** with the engine skill's export path (for example `godot-export` or `unity-build-pipeline`) and confirm it exits 0. 2. **Clean-path test.** Zip the export, unzip it into a new temporary folder outside the project, and launch it there (or, for a web build, serve that folder on `127.0.0.1` and load it in a headless browser). Missing assets and wrong working directories show up only here. Read the log or browser console for errors. 3. **Package check.** List the zip: the executable or `index.html` at the top level, no project files, editor folders or debug symbols. For itch.io, run the `butler push --dry-run` check from `itch-publish`. 4. **Rules check.** Re-read the rules block in `JAM.md` against the build: platforms, controls (keyboard and mouse if required), credits and asset licences on the page, AI rule. 5. **Ask the user** to play the extrac

Read more
@gamedev-skills
Ships withawesome-gamedev-agent-skills

<img src="docs/assets/awesome-gamedev-agent-skills-banner.png" width="820" alt="awesome-gamedev-agent-skills — game-dev skills for AI coding agents.

Stars on GitHub

Momentum

stars in total
8.6k
Star history of gamedev-skills/awesome-gamedev-agent-skills on GitHub, a chart by star-history.com

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills13d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc2w293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react4d252k
@facebook@facebookInstall Skill

Questions about game-jam.

Which coding agents can use game-jam?
game-jam installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.