Tools · Playtest Doubles
Playtest Doubles
AI playtesters built from your real players. A kid only gets one first time with your game, so a double plays it first, held to their real reaction time, reading and patience.
Free and open source. Runs on your machine. npx -y -p github:pettigrewlabllc/playtest-watcher playtest-doubles new
The demo I made for Meta’s AI hackathon. My kids stay off camera; the players you see are their doubles.
Three problems with playtesting a kids’ game
Problem 1
A kid only gets one first time.
Once a kid has learned the rules, they can’t unlearn them. Spend their first play on a confusing build and you’ve lost the most honest feedback you’ll ever get.
The fix
The double plays first.
It’s built from how they really play: how long before the first tap, how fast they go, how much they read, how many fails before they quit. Fix what trips it up, then hand the real kid a better build.
Problem 2
AI testers play like AI.
A model reads every word, never misses a tap and never gets fed up. It finds bugs. It doesn’t find confusion.
The fix
A harness holds it to the player’s limits.
The game clock stops while it thinks. Text the player wouldn’t read gets hidden. Some taps land on the wrong thing, and it sours when they would.
Problem 3
Made-up personas are guesses.
A persona paragraph sounds right, and you can’t check a word of it.
The fix
Every number says where it came from.
Measured from your analytics export, told to you in a survey, or a published norm by age. GA4, GameAnalytics and Unity exports work with no setup.
Puzzle Fan
an adult who plays puzzle games on their phone
- First tapevents.csv: screen to first tap
- 3.2 smeasured
- Between actionsevents.csv: tap to tap
- 2.7 smeasured
- Wrong answersevents.csv: wrong out of all answers
- 57%measured
- Sours afterevents.csv: longest fail streak
- 2 failsmeasured
- ReadingBrysbaert 2019, reading speed by age
- 238 wpmresearch
- Plays forsurvey.csv: likes puzzles, 5 of 5
- masterysaid so
Example data, made up. The numbers are what the tool printed for it.
Questions
Is it free?
Yes. It’s open source (MIT) and runs on your own machine, with nothing to host or sign up for. You pay your model provider for live runs: on Meta’s Muse Spark that’s about 1 to 2 cents a step.
Which AI models does it use?
Meta’s Muse Spark by default. An Anthropic or Gemini key works too, though I’ve only run Muse live so far.
What data do I need?
None to start. Describe a player in a sentence and it builds one inside the range real players showed. It gets sharper with an analytics export, a survey, or recordings of real play.
What about my kids’ data?
It stays on your machine, apart from what goes to the model during a run. Consent comes first, anyone under 13 needs a parent’s yes, a persona can’t hold anyone’s quoted words, and one command deletes a double for good.
How accurate is it?
On the fixed harness, a run held the pace and reading it was given, within 1.5x, in both runs so far. First tap held in one of two. With four kids, telling one kid from another was no better than chance. It’s a stand-in for a playtest, not a replacement.
Does it work on mobile games?
Web games in Chrome today, canvas games included. Native mobile isn’t built yet.
Can my coding agent use it?
Yes. It runs as a local MCP server, so Claude Code, Cursor, VS Code, Codex or Gemini CLI can build a double, run it on your game and read the report.
Let the double play first.
Your players only get one first play.