← Back to list
⚡

prototype-fast Checked

Build a playable prototype in about an hour to answer one question — is it fun? — with greybox pr…
⚡ Productivity skills By gamedev-skills Version v1.0.0 Added 2026-10-21 Updated 2026-10-21 Source ↗
8.0Overall rating
0Views
0Downloads
2.0kStars

Installation

🤖 Install via AI

Copy the prompt below and send it to your AI assistant (e.g. Claude Code) — it will follow the instructions and install automatically.

Install the "prototype-fast" skill by following the instructions at https://skill123.me/install/prototype-fast.
⌨️ Command line install

Run in your terminal — downloads and installs to ~/.claude/skills/.

curl -fsSL https://skill123.me/install/prototype-fast.sh | bash
📦 Download ZIP

Download the zip and extract it into your skills directory (e.g. ~/.claude/skills/), then restart your session.

⬇ Download v1.0.0 · 3 KB
📊 Static rating
8.0/10
Trigger
9.0
Structure
0.0
Workflow
8.0
Content
0.0
Engineering
0.0
Security
7.0

Six-dimension rubric with reviewer rationale.

View scorecard ↓
🛡 Dynamic test
—

Not live-tested yet — this skill is rated on static analysis only.

About this skill

Build a playable prototype in about an hour to answer one question — is it fun? — with greybox primitives, a hard timebox, and explicit keep/kill criteria. Use when prototyping a mechanic, making a vertical slice or MVP, greyboxing/blockout, or judging throwaway vs keep.

Prototype Fast

Get a mechanic into a player's hands fast to learn whether it's worth building. The output of

a prototype is a **decision** (keep / kill / refactor), not a product. Optimize for learning

speed, and decide up front whether the code is throwaway or load-bearing.

Documentation

Build a playable prototype in about an hour to answer one question — is it fun? — with greybox primitives, a hard timebox, and explicit keep/kill criteria. Use when prototyping a mechanic, making a vertical slice or MVP, greyboxing/blockout, or judging throwaway vs keep.

Prototype Fast

Get a mechanic into a player's hands fast to learn whether it's worth building. The output of

a prototype is a **decision** (keep / kill / refactor), not a product. Optimize for learning

speed, and decide up front whether the code is throwaway or load-bearing.

When to use

  • Use when validating a single mechanic or "what if", building a vertical slice / MVP,

greyboxing a level or interaction, or de-risking an idea before committing real time.

  • Use when the user says "just get something playable", "is this fun?", or "rough it in".

**When *not* to use:** a timed competition with a deadline and a submission (use game-jam);

shipping or updating a real release (use steam-publish / itch-publish); building the

production version of a validated feature (use the engine/genre skill directly).

Core workflow

1. **Write the one question.** State the single thing the prototype must answer, e.g.

*"Is grappling-while-falling satisfying to control?"* If you have two questions, build two

prototypes. A prototype that tests everything tests nothing.

2. **Decide throwaway vs keep — before you write code.** Throwaway (a *spike*): hard-code,

no architecture, delete after. Keep: still rough, but folder/names you can grow. Most

prototypes should be throwaway; pretending otherwise is how prototypes rot into the

shipping codebase.

3. **Set a hard timebox** (30-90 min for a mechanic; one sitting for a slice) and a visible

timer. The constraint is the point — it forces you to test the *core* idea, not the trim.

4. **Greybox everything non-essential.** Primitives for art (boxes, circles, capsules),

built-in fonts, one debug sound or none. Spend zero minutes on anything the question

doesn't depend on.

5. **Instrument for the question.** Add on-screen debug text / gizmos that show the thing you

are judging (speed, distance, timing window). You're measuring, not decorating.

6. **Playtest immediately and honestly.** Play it yourself, then hand it to one other person

without explaining the controls. Watch where they struggle.

7. **Make the call against your kill criteria** (below). Keep → schedule the real build and

*rewrite*, don't promote the spike. Kill → log the lesson and move on. Refactor → narrow

the question and spike again.

Patterns

### 1. The prototype brief (fill this in before coding)

View full documentation

QUESTION:     The one thing this must prove (binary if possible).
CORE VERB:    The single action the player repeats.
THROWAWAY?:   yes -> hard-code freely, delete after.  no -> minimal structure to grow.
TIMEBOX:      e.g. 60 min. Stop when it rings, even if unfinished.
KEEP IF:      observable signal that means "fun / worth building" (see kill criteria).
KILL IF:      observable signal that means "stop".

### 2. Greybox the core loop, fake everything else (engine-agnostic pseudocode)


# Only the CORE VERB is real. Visuals are primitives; systems are stubs.
on update(dt):
    read_input()
    apply_core_mechanic(dt)        # the ONLY thing you're testing — make this feel right
    draw_primitive(player)         # a box. not a sprite. not animated.
    draw_debug_hud(speed, timing)  # show the numbers you're judging
    # enemies, menus, save, audio, art -> stubbed or absent until the verb proves out

### 3. Kill criteria — make the keep/kill call observable, not emotional


KEEP when, with placeholder art:
  - a fresh player does the core verb on purpose within ~30s, unprompted, and
  - you (or they) repeat the loop "one more time" without being asked.
KILL when:
  - the verb only feels good after you explain it, or
  - making it fun needs systems far beyond the prototype's scope, or
  - you're adding art/levels to avoid admitting the verb is flat.
REFACTOR when one variable is clearly off (too slow, window too tight) -> retune, retest.

### 4. Containment: keep a spike out of the shipping codebase


prototypes/<idea-name>/      # separate folder or project, never imported by main game
  - hard-coded values, single file ok, magic numbers welcome
  - committed on a throwaway branch (or not at all)
Rule: a "keep" decision authorizes a REWRITE in the real project, not a copy-paste of the
spike. Prototype code carries prototype assumptions; shipping it ships the assumptions.

Pitfalls

  • **Polishing too early.** Art, menus, and audio make a flat mechanic look finished and

delay the verdict. Greybox until the verb is proven.

  • **No kill criteria.** Without a written "kill if", every prototype "has potential" and

nothing gets cut. Decide the signal *before* you're attached to the code.

  • **Building systems instead of the mechanic.** Inventory, save/load, and settings are not

the question. Stub them.

  • **The spike becomes the product.** Throwaway code promoted to production is technical debt

with a fun origin story. Rewrite on a keep.

  • **Prototyping in the real codebase.** It tangles experiments with shipping systems and

makes the spike expensive to delete. Use a separate folder/project.

  • **Testing only yourself.** You know the controls and the intent. One uncoached outside

player reveals more in two minutes than an hour of self-play.

References

  • For working under a hard external deadline and submitting, read the game-jam skill.
  • For the engine-specific core loop you'll greybox in, read that engine's skill

(godot-gdscript, phaser-core, love2d-core, unity-csharp-scripting, …).

Related skills

  • game-jam — same scope discipline applied to a timed competition with a submission.
  • Engine cores and genre skills — where a "keep" decision gets rebuilt properly.

Score breakdown

Trigger
9.0
Structure
0.0
Workflow
8.0
Content
0.0
Engineering
0.0
Security
7.0