---
key: path/first-prototype
type: path
id: first-prototype
lang: en
title: Your first verifiable prototype
summary: >-
  One scene: from a question and input to feedback, measurement and reviewing
  agent work.
updatedAt: '2026-10-20'
status: active
url: 'https://gamemechanics.pro/en/learn/first-prototype/'
jsonUrl: 'https://gamemechanics.pro/api/v1/knowledge/en/path/first-prototype.json'
markdownUrl: 'https://gamemechanics.pro/content/knowledge/en/path/first-prototype.md'
aliases: []
tags: []
sourceIds: []
sources: []
relations:
  - type: contains
    direction: outgoing
    label: Path materials
    key: lesson/scope-and-prototype
    title: Scope and a testable prototype
    url: 'https://gamemechanics.pro/en/lessons/scope-and-prototype/'
    jsonUrl: >-
      https://gamemechanics.pro/api/v1/knowledge/en/lesson/scope-and-prototype.json
    markdownUrl: >-
      https://gamemechanics.pro/content/knowledge/en/lesson/scope-and-prototype.md
  - type: contains
    direction: outgoing
    label: Path materials
    key: lesson/game-loop
    title: The game loop and time
    url: 'https://gamemechanics.pro/en/lessons/game-loop/'
    jsonUrl: 'https://gamemechanics.pro/api/v1/knowledge/en/lesson/game-loop.json'
    markdownUrl: 'https://gamemechanics.pro/content/knowledge/en/lesson/game-loop.md'
  - type: contains
    direction: outgoing
    label: Path materials
    key: lesson/input-and-feedback
    title: Input and feedback
    url: 'https://gamemechanics.pro/en/lessons/input-and-feedback/'
    jsonUrl: >-
      https://gamemechanics.pro/api/v1/knowledge/en/lesson/input-and-feedback.json
    markdownUrl: >-
      https://gamemechanics.pro/content/knowledge/en/lesson/input-and-feedback.md
  - type: contains
    direction: outgoing
    label: Path materials
    key: lesson/collision-basics
    title: Collision fundamentals
    url: 'https://gamemechanics.pro/en/lessons/collision-basics/'
    jsonUrl: 'https://gamemechanics.pro/api/v1/knowledge/en/lesson/collision-basics.json'
    markdownUrl: 'https://gamemechanics.pro/content/knowledge/en/lesson/collision-basics.md'
  - type: contains
    direction: outgoing
    label: Path materials
    key: lesson/state-machines
    title: States and transitions
    url: 'https://gamemechanics.pro/en/lessons/state-machines/'
    jsonUrl: 'https://gamemechanics.pro/api/v1/knowledge/en/lesson/state-machines.json'
    markdownUrl: 'https://gamemechanics.pro/content/knowledge/en/lesson/state-machines.md'
  - type: contains
    direction: outgoing
    label: Path materials
    key: lesson/game-feel
    title: 'Game feel: making actions readable'
    url: 'https://gamemechanics.pro/en/lessons/game-feel/'
    jsonUrl: 'https://gamemechanics.pro/api/v1/knowledge/en/lesson/game-feel.json'
    markdownUrl: 'https://gamemechanics.pro/content/knowledge/en/lesson/game-feel.md'
  - type: contains
    direction: outgoing
    label: Path materials
    key: lesson/performance-budget
    title: A performance budget
    url: 'https://gamemechanics.pro/en/lessons/performance-budget/'
    jsonUrl: >-
      https://gamemechanics.pro/api/v1/knowledge/en/lesson/performance-budget.json
    markdownUrl: >-
      https://gamemechanics.pro/content/knowledge/en/lesson/performance-budget.md
  - type: contains
    direction: outgoing
    label: Path materials
    key: lesson/agent-workflow
    title: Developing a game with an AI agent
    url: 'https://gamemechanics.pro/en/lessons/agent-workflow/'
    jsonUrl: 'https://gamemechanics.pro/api/v1/knowledge/en/lesson/agent-workflow.json'
    markdownUrl: 'https://gamemechanics.pro/content/knowledge/en/lesson/agent-workflow.md'
  - type: contains
    direction: outgoing
    label: Path materials
    key: lesson/gameplay-acceptance
    title: Verifying gameplay behavior
    url: 'https://gamemechanics.pro/en/lessons/gameplay-acceptance/'
    jsonUrl: >-
      https://gamemechanics.pro/api/v1/knowledge/en/lesson/gameplay-acceptance.json
    markdownUrl: >-
      https://gamemechanics.pro/content/knowledge/en/lesson/gameplay-acceptance.md
  - type: practices
    direction: outgoing
    label: Put it into practice
    key: practice/paper-current
    title: A current on paper
    url: 'https://gamemechanics.pro/en/knowledge/practice/paper-current/'
    jsonUrl: 'https://gamemechanics.pro/api/v1/knowledge/en/practice/paper-current.json'
    markdownUrl: 'https://gamemechanics.pro/content/knowledge/en/practice/paper-current.md'
  - type: practices
    direction: outgoing
    label: Put it into practice
    key: practice/rhythm-without-hurry
    title: Rhythm without rushing
    url: 'https://gamemechanics.pro/en/knowledge/practice/rhythm-without-hurry/'
    jsonUrl: >-
      https://gamemechanics.pro/api/v1/knowledge/en/practice/rhythm-without-hurry.json
    markdownUrl: >-
      https://gamemechanics.pro/content/knowledge/en/practice/rhythm-without-hurry.md
  - type: reviews
    direction: outgoing
    label: Review through a lens
    key: lens/schell-002
    title: Essential Experience
    url: 'https://gamemechanics.pro/en/knowledge/lens/schell-002/'
    jsonUrl: 'https://gamemechanics.pro/api/v1/knowledge/en/lens/schell-002.json'
    markdownUrl: 'https://gamemechanics.pro/content/knowledge/en/lens/schell-002.md'
  - type: reviews
    direction: outgoing
    label: Review through a lens
    key: lens/schell-033
    title: Rules
    url: 'https://gamemechanics.pro/en/knowledge/lens/schell-033/'
    jsonUrl: 'https://gamemechanics.pro/api/v1/knowledge/en/lens/schell-033.json'
    markdownUrl: 'https://gamemechanics.pro/content/knowledge/en/lens/schell-033.md'
  - type: reviews
    direction: outgoing
    label: Review through a lens
    key: lens/schell-103
    title: Playtesting
    url: 'https://gamemechanics.pro/en/knowledge/lens/schell-103/'
    jsonUrl: 'https://gamemechanics.pro/api/v1/knowledge/en/lens/schell-103.json'
    markdownUrl: 'https://gamemechanics.pro/content/knowledge/en/lens/schell-103.md'
placements: []
supersededBy: []
attributes:
  lessons:
    - id: scope-and-prototype
      url: 'https://gamemechanics.pro/en/lessons/scope-and-prototype/'
      markdownUrl: 'https://gamemechanics.pro/content/en/scope-and-prototype.md'
    - id: game-loop
      url: 'https://gamemechanics.pro/en/lessons/game-loop/'
      markdownUrl: 'https://gamemechanics.pro/content/en/game-loop.md'
    - id: input-and-feedback
      url: 'https://gamemechanics.pro/en/lessons/input-and-feedback/'
      markdownUrl: 'https://gamemechanics.pro/content/en/input-and-feedback.md'
    - id: collision-basics
      url: 'https://gamemechanics.pro/en/lessons/collision-basics/'
      markdownUrl: 'https://gamemechanics.pro/content/en/collision-basics.md'
    - id: state-machines
      url: 'https://gamemechanics.pro/en/lessons/state-machines/'
      markdownUrl: 'https://gamemechanics.pro/content/en/state-machines.md'
    - id: game-feel
      url: 'https://gamemechanics.pro/en/lessons/game-feel/'
      markdownUrl: 'https://gamemechanics.pro/content/en/game-feel.md'
    - id: performance-budget
      url: 'https://gamemechanics.pro/en/lessons/performance-budget/'
      markdownUrl: 'https://gamemechanics.pro/content/en/performance-budget.md'
    - id: agent-workflow
      url: 'https://gamemechanics.pro/en/lessons/agent-workflow/'
      markdownUrl: 'https://gamemechanics.pro/content/en/agent-workflow.md'
    - id: gameplay-acceptance
      url: 'https://gamemechanics.pro/en/lessons/gameplay-acceptance/'
      markdownUrl: 'https://gamemechanics.pro/content/en/gameplay-acceptance.md'
  prerequisites: []
  practice:
    - id: paper-current
      url: 'https://gamemechanics.pro/en/practice/#paper-current'
    - id: rhythm-without-hurry
      url: 'https://gamemechanics.pro/en/practice/#rhythm-without-hurry'
  lenses:
    - id: schell-002
      url: 'https://gamemechanics.pro/en/lenses/#schell-002'
    - id: schell-033
      url: 'https://gamemechanics.pro/en/lenses/#schell-033'
    - id: schell-103
      url: 'https://gamemechanics.pro/en/lenses/#schell-103'
endsAt: null
provenance: >-
  Original gamemechanics.pro material. Check illustrative examples in your own
  project.
license: CC-BY-4.0
codeLicense: MIT
attribution: gamemechanics.pro contributors
---
# Your first verifiable prototype

id: first-prototype
type: path
key: path/first-prototype
lang: en
status: active
url: https://gamemechanics.pro/en/learn/first-prototype/

One scene: from a question and input to feedback, measurement and reviewing agent work.

## Before you start

No existing project is required.

## Lesson sequence

1. [Scope and a testable prototype](https://gamemechanics.pro/en/lessons/scope-and-prototype/)
2. [The game loop and time](https://gamemechanics.pro/en/lessons/game-loop/)
3. [Input and feedback](https://gamemechanics.pro/en/lessons/input-and-feedback/)
4. [Collision fundamentals](https://gamemechanics.pro/en/lessons/collision-basics/)
5. [States and transitions](https://gamemechanics.pro/en/lessons/state-machines/)
6. [Game feel: making actions readable](https://gamemechanics.pro/en/lessons/game-feel/)
7. [A performance budget](https://gamemechanics.pro/en/lessons/performance-budget/)
8. [Developing a game with an AI agent](https://gamemechanics.pro/en/lessons/agent-workflow/)
9. [Verifying gameplay behavior](https://gamemechanics.pro/en/lessons/gameplay-acceptance/)

## Put it into practice

Start with a paper test of the idea. Then use the lesson tasks to build one scene and check it against the conditions above.

- [A current on paper](https://gamemechanics.pro/en/practice/#paper-current)
- [Rhythm without rushing](https://gamemechanics.pro/en/practice/#rhythm-without-hurry)

## Outcome

One playable scene with a single action, quick restart and a reproducible check.

## Completion checks

- The prototype answers a recorded question and has a stopping criterion.
- The action, pause, restart and feedback are checked in the target environment.
- Agent changes are explained and supported by observable results.

## Connected materials

- Path materials: [Scope and a testable prototype](https://gamemechanics.pro/en/lessons/scope-and-prototype/) (key: lesson/scope-and-prototype)
- Path materials: [The game loop and time](https://gamemechanics.pro/en/lessons/game-loop/) (key: lesson/game-loop)
- Path materials: [Input and feedback](https://gamemechanics.pro/en/lessons/input-and-feedback/) (key: lesson/input-and-feedback)
- Path materials: [Collision fundamentals](https://gamemechanics.pro/en/lessons/collision-basics/) (key: lesson/collision-basics)
- Path materials: [States and transitions](https://gamemechanics.pro/en/lessons/state-machines/) (key: lesson/state-machines)
- Path materials: [Game feel: making actions readable](https://gamemechanics.pro/en/lessons/game-feel/) (key: lesson/game-feel)
- Path materials: [A performance budget](https://gamemechanics.pro/en/lessons/performance-budget/) (key: lesson/performance-budget)
- Path materials: [Developing a game with an AI agent](https://gamemechanics.pro/en/lessons/agent-workflow/) (key: lesson/agent-workflow)
- Path materials: [Verifying gameplay behavior](https://gamemechanics.pro/en/lessons/gameplay-acceptance/) (key: lesson/gameplay-acceptance)
- Put it into practice: [A current on paper](https://gamemechanics.pro/en/knowledge/practice/paper-current/) (key: practice/paper-current)
- Put it into practice: [Rhythm without rushing](https://gamemechanics.pro/en/knowledge/practice/rhythm-without-hurry/) (key: practice/rhythm-without-hurry)
- Review through a lens: [Essential Experience](https://gamemechanics.pro/en/knowledge/lens/schell-002/) (key: lens/schell-002)
- Review through a lens: [Rules](https://gamemechanics.pro/en/knowledge/lens/schell-033/) (key: lens/schell-033)
- Review through a lens: [Playtesting](https://gamemechanics.pro/en/knowledge/lens/schell-103/) (key: lens/schell-103)

## Sources and provenance

Original gamemechanics.pro material. Check illustrative examples in your own project.


CC-BY-4.0 · gamemechanics.pro contributors
