# Game Bench — Scoring Rubric v2

**Version:** 2.0
**Scale:** 1–5 per sub-criterion
**Final score:** Weighted average across 8 dimensions, expressed as a percentage
**Raters:** 2 (Luiz + Athena). Average rater inputs first, then compute the final percentage.
**Play protocol:** Each rater plays each game for at least 3 minutes. Score after playing, not after reading code.

---

## Universal Scale Anchors

Every sub-criterion uses this scale. Dimensions add their own context below.

| Score | Label | What it means |
|-------|-------|---------------|
| **1** | Broken | Missing, non-functional, or actively harmful to the experience |
| **2** | Poor | Present but significantly flawed; hurts more than it helps |
| **3** | Adequate | Works, meets the minimum bar, unremarkable |
| **4** | Good | Clear craft, some delight, no significant issues |
| **5** | Excellent | Reference quality, intentional, polished, would study this |

---

## 1. Game Design (25%)

*Are the rules, systems, and mechanics well-designed? Does the structure create meaningful player choices?*

This dimension evaluates **what the designer built** — the rules, the loop, the systems. Separated from Fun because a well-designed game can still feel flat, and a fun game can have sloppy design. (MDA: Mechanics → Dynamics.)

### Sub-criteria

| # | Criterion | What separates a 5 from a 1 |
|---|-----------|---------------------------|
| 1.1 | **Core loop clarity** — crawl, stamina, flies, rain, shelter all work and connect | 5: Loop is tight, every mechanic feeds the loop, no dead parts. 1: Loop is broken or mechanics don't connect. |
| 1.2 | **Difficulty curve** — challenge rises fairly, not frustratingly | 5: Difficulty ramps gradually, player always has agency. 1: Unfair, instant death, or trivially easy forever. |
| 1.3 | **Mechanic coherence** — parts feel designed together, not bolted on | 5: Every system reinforces every other. 1: Mechanics feel like separate mini-games stapled together. |
| 1.4 | **Core fantasy delivery** — does it feel like crawling on a wall? | 5: Movement, visuals, and mechanics all sell the spider-on-wall fantasy. 1: Feels like a generic platformer with spider graphics. |
| 1.5 | **First 10 seconds** — does the game teach itself without words? | 5: Player understands crawl/stamina/flies/rain/shelter in 10s. 1: Player has no idea what's happening. |

**Dimension score** = average of 1.1–1.5

---

## 2. Fun (20%)

*Does the game create genuine engagement? Would you play it again?*

This dimension evaluates **what the player feels** — the emotional arc, the delight, the compulsion to try again. Separated from Game Design because the MDA framework teaches us that designers author mechanics but players experience aesthetics. A structurally perfect game can still feel dead. (MDA: Dynamics → Aesthetics.)

### Sub-criteria

| # | Criterion | What separates a 5 from a 1 |
|---|-----------|---------------------------|
| 2.1 | **Engagement** — are you present while playing, or zoning out? | 5: Every second demands attention. 1: Boring, would close the tab. |
| 2.2 | **Juice** — screen shake, particles, visual/audio feedback, satisfying moments | 5: Fly collection feels great, death feels impactful, rain is tense. 1: Silent, flat, no feedback on anything. |
| 2.3 | **Replayability** — would you play again after dying? | 5: "One more try" compulsion, high score chase is real. 1: No reason to restart. |
| 2.4 | **Emotional arc** — tension, relief, triumph, defeat | 5: Rain warning → shelter → relief is a real emotional beat. 1: No emotional highs or lows. |
| 2.5 | **Fair challenge** — deaths feel like your fault, not the game's | 5: Every death teaches you something. 1: Deaths feel random or unavoidable. |

**Dimension score** = average of 2.1–2.5

---

## 3. Adherence to Brief (15%)

*Did the model build what was asked, the way it was asked?*

This is about **discipline and interpretation quality**. A model that changes core mechanics to something easier, skips requirements, or drifts into a different game entirely scores low. A model that delivers everything specified, in the spirit intended, scores high.

### Sub-criteria

| # | Criterion | What separates a 5 from a 1 |
|---|-----------|---------------------------|
| 3.1 | **Anti-drift compliance** — wall-crawler, not platform jumper | 5: Movement, traversal, and feel are clearly wall-crawling. 1: Standard platformer with spider skin. |
| 3.2 | **Feature completeness** — all V3 requirements present | 5: Every requirement (stamina, flies, rain, shelter, score, death, restart, audio, mute) is present. 1: Half the requirements missing. |
| 3.3 | **Mechanic fidelity** — features work as specified, not in an easier/different way | 5: Stamina, rain telegraph, shelter protection all work per the brief. 1: Key mechanics reworked to be simpler or different. |
| 3.4 | **Constraint compliance** — static web, no external assets, no backend | 5: Fully self-contained, no external fetches. 1: Relies on external assets, CDN, or backend. |
| 3.5 | **Mobile requirement** — mobile controls are a real feature, not an afterthought | 5: Touch controls are first-class, tested, polished. 1: Mobile controls missing or broken. |

**Dimension score** = average of 3.1–3.5

---

## 4. Onboarding & Ease of Use (10%)

*Can a new player pick up the game and understand it immediately?*

This evaluates **first-contact experience** — how quickly a player who has never seen the game before can understand what's happening and what to do. Distinct from Game Design (which is about the rules) and UX (which is about interface clarity).

### Sub-criteria

| # | Criterion | What separates a 5 from a 1 |
|---|-----------|---------------------------|
| 4.1 | **Start screen clarity** — is the game, goal, and control scheme immediately obvious? | 5: Player knows everything needed before starting. 1: No instructions, no context, no idea. |
| 4.2 | **Learn-by-playing** — does the first 10 seconds teach through doing? | 5: Game starts gently enough that mechanics teach themselves. 1: Player dies before understanding anything. |
| 4.3 | **HUD readability** — can you read score, stamina, and danger state at a glance? | 5: All critical info visible without looking away from the action. 1: HUD missing, overlapping, or unreadable. |
| 4.4 | **Restart flow** — after dying, how quickly can you try again? | 5: One tap/click, instant restart. 1: Multiple steps, loading, confusing menu. |

**Dimension score** = average of 4.1–4.4

---

## 5. Cross-Platform Support (10%)

*Does the game work well on both desktop and mobile? Is the mobile experience native-quality?*

The brief requires the game to work on both platforms. This dimension evaluates whether the model actually delivered a cross-platform experience or just a desktop game that technically loads on a phone.

### Sub-criteria

| # | Criterion | What separates a 5 from a 1 |
|---|-----------|---------------------------|
| 5.1 | **Desktop controls** — WASD responsive, no input lag, no conflicts | 5: Tight, responsive, feels native. 1: Laggy, broken, or missing. |
| 5.2 | **Mobile controls** — touch joystick/d-pad visible, large, responsive | 5: Touch controls feel designed for fingers, comfortable, no frustration. 1: Invisible, too small, or non-functional. |
| 5.3 | **Responsive layout** — game adapts to different screen sizes and orientations | 5: Looks good on 375px phone and 1920px desktop. 1: Broken layout on one or both. |
| 5.4 | **Mobile playability** — is the mobile experience actually playable, not just "loads on mobile"? | 5: Mobile is a first-class experience, could play a full session on phone. 1: Technically loads but unplayable (tiny text, off-screen elements, broken touch). |

**Dimension score** = average of 5.1–5.4

---

## 6. Engineering (8%)

*Is the code well-architected, maintainable, and appropriately scoped?*

This evaluates the **craft of building** — code quality, structure, and engineering judgment. A game that works but is a 1270-line single file with no separation is a different engineering achievement than a clean multi-file architecture.

### Sub-criteria

| # | Criterion | What separates a 5 from a 1 |
|---|-----------|---------------------------|
| 6.1 | **Code architecture** — sensible file structure, separation of concerns | 5: Clean modules (game logic, audio, rendering, UI). 1: Everything in one file with no structure. |
| 6.2 | **Code clarity** — readable, well-named, no dead code | 5: Could hand this to another developer and they'd understand it. 1: Cryptic, undocumented, full of dead code. |
| 6.3 | **Appropriate scope** — code size matches the game's complexity | 5: Not bloated, not undersized. 1: 2000 lines for a simple game, or 200 lines for something that should be 800. |
| 6.4 | **Deliverable cleanliness** — no debug artifacts, no console spam, no TODO comments | 5: Ship-ready, clean, no cruft. 1: Debug logs, commented-out code, TODO markers everywhere. |

**Dimension score** = average of 6.1–6.4

---

## 7. QA & Validation (7%)

*Did the model actually test its own work? How thorough was the validation?*

The V3 prompt **mandates playtesting**. This dimension evaluates whether the model treated QA as a real discipline or skipped it. The key insight: a model that catches its own bugs during playtest is demonstrating a fundamentally different capability than one that ships blind.

### Sub-criteria

| # | Criterion | What separates a 5 from a 1 |
|---|-----------|---------------------------|
| 7.1 | **Test existence** — did the agent produce any test at all? | 5: Comprehensive automated test suite. 1: No testing performed. |
| 7.2 | **Test thoroughness** — does the test cover the critical paths? | 5: Tests cover start, play, death, restart, rain, shelter, mobile. 1: Only tests "page loads". |
| 7.3 | **Bug-catching** — did the agent find and fix its own bugs? | 5: Found real bugs during playtest, fixed them, re-tested. 1: No bugs found (because no real testing). |
| 7.4 | **Playtest evidence** — screenshots, notes, test results documented | 5: Clear evidence of real playthrough with notes. 1: "I tested it" with no evidence. |

**Dimension score** = average of 7.1–7.4

---

## 8. Audio (7%)

*Does the game sound good? Does audio enhance the experience?*

The V3 prompt makes sound mandatory with Web Audio API. This evaluates whether the audio is a real part of the game or a last-minute afterthought.

### Sub-criteria

| # | Criterion | What separates a 5 from a 1 |
|---|-----------|---------------------------|
| 8.1 | **SFX coverage** — sounds for crawl, eat, rain warning, rain active, death, milestone | 5: Every critical event has a distinct, fitting sound. 1: No sound effects, or one generic beep for everything. |
| 8.2 | **Audio quality** — not grating, appropriate volume, well-timed | 5: Sounds are pleasant, balanced, and timed to game events. 1: Ear-piercing, clipping, or wildly mis-timed. |
| 8.3 | **Procedural generation** — Web Audio API, not external files | 5: All sounds generated procedurally, creative and appropriate. 1: Uses external audio files or no audio at all. |
| 8.4 | **Mute toggle** — visible, accessible during play | 5: Easy to find, easy to toggle, state persists. 1: Missing or broken. |

**Dimension score** = average of 8.1–8.4

---

## Final Score Calculation

### Per-dimension score

Each dimension score = average of its sub-criteria scores (1–5 scale).

### Global score

```
Raw = (Game Design × 0.25)
    + (Fun × 0.20)
    + (Adherence × 0.15)
    + (Onboarding × 0.10)
    + (Cross-Platform × 0.10)
    + (Engineering × 0.08)
    + (QA × 0.07)
    + (Audio × 0.07)

Final % = (Raw ÷ 5.0) × 100
```

**Input scale:** 1.0–5.0 raw score
**Published scale:** 20%–100% final percentage

### Why these weights?

| Dimension | Weight | Rationale |
|-----------|--------|-----------|
| Game Design | 25% | The rules and systems are the game. Highest weight. |
| Fun | 20% | The experience is what players actually care about. Second highest. |
| Adherence | 15% | Discipline matters — did the model listen? Differentiates sloppy from careful. |
| Onboarding | 10% | First impression is load-bearing for player retention. |
| Cross-Platform | 10% | The brief explicitly requires it; separates real builds from desktop-only. |
| Engineering | 8% | Code quality matters for a development benchmark. |
| QA | 7% | Self-validation is a capability signal, not a game quality signal. |
| Audio | 7% | Mandatory per brief, but rarely the deciding factor in game quality. |

### Derived metrics (for leaderboard)

- **Score per dollar** = Final % ÷ estimated cost. Value metric.
- **Score per minute** = Final % ÷ wall-clock time. Speed metric.
- **Per-capability rank** = rank each model by each dimension independently.

---

## Scoring Protocol

1. **Play first, score after.** Do not read the code or analysis before playing.
2. **3-minute minimum** per game. Enough to see rain at least once.
3. **Score independently.** Each rater fills their own sheet before comparing.
4. **Discuss then finalize.** If scores differ by 2+ on any sub-criterion, discuss and agree on a final score.
5. **Anchor calibration.** Play 1 game together first to calibrate the 1–5 scale before scoring independently.
6. **One sheet per game.** Use the scoring sheet template.

---

## Scoring Sheet Template

```markdown
# Scoring Sheet — [Model Name]
**URL:** https://game-bench.piccini.app/games/[slug]/
**Rater:** ___________
**Date played:** ___________
**Time played:** ___________

## 1. Game Design (25%)
| # | Criterion | Score | Notes |
|---|-----------|-------|-------|
| 1.1 | Core loop clarity | | |
| 1.2 | Difficulty curve | | |
| 1.3 | Mechanic coherence | | |
| 1.4 | Core fantasy delivery | | |
| 1.5 | First 10 seconds | | |
| **Avg** | | | |

## 2. Fun (20%)
| # | Criterion | Score | Notes |
|---|-----------|-------|-------|
| 2.1 | Engagement | | |
| 2.2 | Juice | | |
| 2.3 | Replayability | | |
| 2.4 | Emotional arc | | |
| 2.5 | Fair challenge | | |
| **Avg** | | | |

## 3. Adherence to Brief (15%)
| # | Criterion | Score | Notes |
|---|-----------|-------|-------|
| 3.1 | Anti-drift compliance | | |
| 3.2 | Feature completeness | | |
| 3.3 | Mechanic fidelity | | |
| 3.4 | Constraint compliance | | |
| 3.5 | Mobile requirement | | |
| **Avg** | | | |

## 4. Onboarding & Ease of Use (10%)
| # | Criterion | Score | Notes |
|---|-----------|-------|-------|
| 4.1 | Start screen clarity | | |
| 4.2 | Learn-by-playing | | |
| 4.3 | HUD readability | | |
| 4.4 | Restart flow | | |
| **Avg** | | | |

## 5. Cross-Platform Support (10%)
| # | Criterion | Score | Notes |
|---|-----------|-------|-------|
| 5.1 | Desktop controls | | |
| 5.2 | Mobile controls | | |
| 5.3 | Responsive layout | | |
| 5.4 | Mobile playability | | |
| **Avg** | | | |

## 6. Engineering (8%)
| # | Criterion | Score | Notes |
|---|-----------|-------|-------|
| 6.1 | Code architecture | | |
| 6.2 | Code clarity | | |
| 6.3 | Appropriate scope | | |
| 6.4 | Deliverable cleanliness | | |
| **Avg** | | | |

## 7. QA & Validation (7%)
| # | Criterion | Score | Notes |
|---|-----------|-------|-------|
| 7.1 | Test existence | | |
| 7.2 | Test thoroughness | | |
| 7.3 | Bug-catching | | |
| 7.4 | Playtest evidence | | |
| **Avg** | | | |

## 8. Audio (7%)
| # | Criterion | Score | Notes |
|---|-----------|-------|-------|
| 8.1 | SFX coverage | | |
| 8.2 | Audio quality | | |
| 8.3 | Procedural generation | | |
| 8.4 | Mute toggle | | |
| **Avg** | | | |

## Final Score

Final % = (raw weighted score / 5.0) * 100.

| Dimension | Weight | Score | Weighted Raw |
|-----------|--------|-------|--------------|
| Game Design | 0.25 | | |
| Fun | 0.20 | | |
| Adherence | 0.15 | | |
| Onboarding | 0.10 | | |
| Cross-Platform | 0.10 | | |
| Engineering | 0.08 | | |
| QA | 0.07 | | |
| Audio | 0.07 | | |
| **Total** | **1.00** | | **__/5.0 raw = __%** |

## Notes
**What worked well:**
**What didn't:**
**Standout moment:**
**Would play again?** Y/N
**Would show a friend?** Y/N
```
