Playtest feedback
@gameforge/playtest-feedback
Turn messy playtest notes into a ranked list of what to fix next. Tags each note (bug, confusion, frustration, boredom, delight, idea), tallies them with a script, ranks issues by how many testers hit them and how badly, and lists the moments players loved so you protect them.
- Activity
- New: be the first to try it
- Installs
- 0 installs
- Likes
- 0 likes
- Clones
- 0 clones
- 1---
- 2name: playtest-feedback
- 3description: Turn raw playtest notes (pasted chat, form exports, session notes, recordings transcribed to text) into a ranked list of what to fix next. Tags each note, tallies them with a script, ranks issues by how many testers hit them and how badly, and lists what players loved. Use after a playtest, a game jam showcase, or a demo day, or when the user says "summarize the playtest", "what should I fix first?", or "my testers said...".
- 4license: MIT
- 5---
- 7# Playtest feedback
- 9Players are great at telling you where it hurts and bad at telling you why. This kit turns their notes into one table ranked by impact, so the next build fixes the thing four out of four testers hit, not the thing the loudest tester said.
- 11## Inputs
- 13Ask for anything missing:
- 151. **The raw notes**: pasted text, or files in `playtests/` (one file per tester is ideal).
- 162. **The build and levels** played, so notes can be pinned to a level.
- 173. **The goal of this playtest** (default: "is the first five minutes fun and clear?"). Rank against that goal.
- 19## Steps
- 211. **Normalize into `data/playtest.csv`** with this header:
- 23 ```
- 24 tester,level,type,severity,tag,note
- 25 ```
- 27 - One row per observation. Split a note that says two things.
- 28 - `type`: `bug` (it is broken), `confusion` (did not know what to do), `frustration` (knew, but it felt unfair), `boredom` (nothing to do or too slow), `delight` (smiled, laughed, said "again"), `idea` (a suggestion).
- 29 - `severity` for problems: `1` minor, `2` hurts the fun, `3` blocks progress or made them quit.
- 30 - `tag`: a short shared label such as `jump-too-floaty`. Reuse the same tag for the same root problem across testers. This step is the real work; take care with it.
- 31 - `note`: the tester's own words where possible. Use a nickname like `P1`, not a real name.
- 32 - Show the user the tag list (tag, count, one example) and ask whether any should be merged or split before going on.
- 342. **Tally:**
- 36 ```bash
- 37 node scripts/tally-playtest.mjs data/playtest.csv out/playtest-summary.md --json out/playtest-summary.json
- 38 ```
- 40 Issues are ranked by distinct testers times worst severity. Rows with an unknown type are listed under "Rows needing a look"; fix them and rerun.
- 423. **Read the summary and add a "Fix next" section** to the top of `out/playtest-summary.md`: at most three items, each with the likely cause and one concrete change to try. Prefer tuning (a number in config) over new features.
- 434. **Name what to protect**: the delight list. Any fix that touches those moments needs a careful look.
- 445. **Suggest the next test**: what to watch for, and how many testers (five is usually plenty to find the big problems).
- 46## Output
- 48```markdown
- 49## Fix next
- 511. **jump-too-floaty** (4/4 testers, blocks progress on 1-2). Likely cause: low gravity and long hang time. Try: raise gravity 25% and add a faster fall when the button is released.
- 522. **stuck-in-wall** (2/4, blocks progress on 1-3). Likely cause: collision resolves after the door opens. Try: resolve X then Y separately, and push out of solid tiles.
- 533. **cant-find-jump** (2/4, tutorial). Try: show "Space to jump" next to the first gap until the first jump.
- 55Protect: the landing squash and the coin sound.
- 56```
- 58Then the generated tables follow.
- 60## Guardrails
- 62- Keep testers anonymous in every output. Replace real names with `P1`, `P2`, and so on.
- 63- Never invent observations. If a note is ambiguous, tag it, and mark the row in your summary as "unclear" rather than guessing the cause.
- 64- One loud tester is one tester. The ranking counts distinct people on purpose; do not reorder by how strongly someone felt.
- 65- Write only to `data/` and `out/`. Raw notes in `playtests/` are read, never changed.
