Simulation and testing in game design: balance, QA and playtesting
BSc (Hons) Game Design & Development
How did a whole studio miss it… and how did you find it?
and say which questions each one can answer.
with a Monte Carlo run, and read its average and its spread.
functional, regression, usability, balance… and triage what it finds.
with a question, a script, consent and notes that turn into fixes.
Two ways to find out, and the design loop
Monte Carlo, live, on Roll for Reward
QA, test types, triage, tools
Who, how, the golden rule, notes
Consent, inclusion, honest questions
Simulate, change a rule, playtest, triage
You measured flow with a questionnaire, predicted results, and compared groups.
Roll for Reward's scores were checked by simulating 40,000 games per round before you ever played it.
Atoms combine into loops that emerge: behaviour you can't predict just by reading the rules.
If you can't predict a system by reading it, you have to run it: with a model (simulation) or with people (testing). Usually both.
A model playing the game, or people playing it
| Simulation | Testing | |
|---|---|---|
| What runs | A model of the rules: a spreadsheet, a script, bots | The real build (or prototype), with people or test code |
| How often | Thousands or millions of times, in seconds | A handful of sessions, in hours |
| Answers | What happens? Averages, spreads, edge cases, broken economies | Does it work? Do people understand it? How does it feel? |
| Blind to | Fun, feel, confusion: anything the model leaves out | Rare events that need thousands of plays to appear |
Simulation before you build it; testing once you have something to hold.
Five systems that each look fine can combine into one that doesn't. Emergence cuts both ways.
A 5% crit, a 1-in-20 drop: ten playtests can't show you what happens over a season.
An AI that reacts to the player changes every run. You need many runs to see its range.
Therese's example: tune a racing game's AI difficulty curve by simulating thousands of AI laps and looking at the spread of lap times, not just the average. A rival who is fast on average but wildly inconsistent feels unfair.
Ragdolls, ballistics, vehicles: stable, believable, not exploitable.
bullet drop · car handlingPathfinding, NPC routines, directors that pace the action.
Left 4 Dead's AI DirectorResources in and out over time: inflation, scarcity, grinding.
strategy and management gamesBots of different skill playing the game to predict outcomes.
difficulty curves · win ratesEcosystems, crowds, procedural worlds: stress them to find the edges.
The Sims · No Man's SkyEach one connects back to a core loop and to how the player feels.
GDnD wiki · Economy Simulation with QueuesTherese's loop: prototype → simulate → test → evaluate → refine → re-test. It runs from paper prototype to launch, and beyond.
Bond's version: analysis → design → implementation → testing, repeated. Each loop answers one clear question.
"Game design is 1% inspiration and 99% iteration." Chris Swain, quoted by Bond
Play the game ten thousand times before lunch
=RANDBETWEEN(1,6), =RAND()=IF()AVERAGE, STDEV, MIN, MAX, COUNTIFRoll 2d20, keep the higher. Simulated: worth about +3.3 on average, roughly the old +3 bonus.
To get ~10 per 100 attacks needs a 57.5% hit rate, and individual rounds still range from 0 to 29.
In Week 3, banking barely changed the score. Players still argued about it for ten minutes. That is what a playtest finds.
GDnD wiki · Game BalanceWhat number, rate or spread would you want to know before building it?
About understanding, feeling or choice.
Does it work? Does it still work? Can people use it?
| Test | Asks | Typically |
|---|---|---|
| Smoke | Does the new build start and reach the main loop? | Every build, minutes, before anyone else gets it |
| Functional | Does each feature do what its spec says? | Per feature, against acceptance criteria |
| Regression | Did the fix break something that worked? | After every change; automate it |
| Exploratory | Can a skilled tester break it? | Unscripted, by experienced QA |
| Compatibility & performance | Does it run on every target device, at frame rate? | Hardware labs, profilers |
| Usability & accessibility | Can players learn and use it, whatever their needs? | Observed sessions, guidelines checks |
| Balance | Is any strategy dominant? Is it fair? | Simulation, expert play, public test servers |
Severity: how bad it is when it happens. Critical → high → medium → low.
Priority: how soon to act. P1 now → P4 after launch.
| Bug | Severity | Priority |
|---|---|---|
| Crash on the main menu | Critical | P1 |
| Crash in a debug-only scene | Critical | P3 |
| Logo wrong; press copies go out tomorrow | Low | P1 |
| Big bug in a feature cut from this release | High | P4 |
You'll triage your playtest notes the same way in Part D.
Edit Mode and Play Mode tests in C#.
unit + in-game checksAutomation tests run from the Session Frontend or the command line.
functional + smokeEvery build runs the test suite before anyone plays it.
continuous integrationWeapon tables, XP curves, drop rates, Monte Carlo.
Sheets · ExcelRecorded sessions with target players, at a distance.
PlaytestCloud (mobile)Two versions to two groups; compare what they do.
Firebase Remote ConfigDon't tell. Watch.
What's in your head and your design doc: the rules, the feeling, the "obvious" solution.
What a player does and feels with only the game in front of them. MDA's gap, in Week 2's terms.
Runs the session: script, setup, notes. Ideally not the designer, who sees what they hope to see.
Plays. Doesn't know your hypothesis. Their confusion is data.
You find the obvious. Friends are kind and fast. Acquaintances and target players give the truest picture. The public is wide, noisy and permanent.
Someone who has never seen it. Use them once, for first impressions, tutorials and surprises. Plan who sees what, and when.
How many? Nielsen's rule of thumb from usability work: five users find most of the problems. Test small and often.
Watch what they do, where they look, where they stall.
best for: confusion, flow breaksThey say what they're thinking as they play.
best for: rules, mental modelsLikert scales after play: compare across sessions.
best for: trends, fairness, funShort, open questions straight after the session.
best for: why, memorable momentsTwo versions, two groups, one difference.
best for: choosing between optionsA hidden human plays the "system" before it's built.
best for: AI, dialogue, matchmakingDon't explain. Don't defend.
Their confusion is the data.
✗ "Oh, you're meant to bank there, it's safer."
✓ "What are you trying to do right now?"
Players are good at diagnosing symptoms, poor at prescribing solutions. Collect the first; design the second.
| # | Where | Verbatim (what they did or said) | Underlying issue | Severity | Proposed fix |
|---|---|---|---|---|---|
| 1 | R5 turn 2 | Paid 2 ducks to cancel a bust on a pot of 3 | Insurance cost not weighed against pot | Medium | Show "pot at risk" on the sheet |
| 2 | R5 turn 4 | "Wait, can I insure the bank too?" | Rule unclear | High | One-line rule: pot only |
| 3 | R5 end | Laughed when another player insured a 1-point pot | A funny, social moment | As designed | Keep |
Severity: High · Medium · Low · As designed · Fact of life (can't be changed). Verbatim first; interpretation second.
Completion time, success rate, deaths per level, Likert scores, how many testers banked on turn 1.
Frustrations, enjoyment, quotes, what they tried, what they expected to happen.
Together: "4 of 5 testers failed the first wall jump" (what) + "I didn't know I could climb that" (why) → the fix is a signifier on the wall, not easier timing.
Next week: the same idea at the scale of thousands of players, with telemetry and analytics.
GDnD wiki · TelemetryHero changes go to a Public Test Region first, where players try them before they reach the live game.
The AI Director changes spawns and items to the team's state. Fair-feeling tension only shows across many runs.
About 18 quintillion planets. No team can visit them; procedural systems need sampling and automated checks.
Which one leans on players, which on simulation, which on automation?
GDnD wiki · AI Experience ManagementTesters are people. Data can lie.
What you'll record, why, and that they can stop at any time without giving a reason.
Player IDs, not names (as in Week 2). Store notes safely; delete what you don't need.
Recruit beyond your friends: different abilities, experience and backgrounds.
Warn about flashing lights, horror or motion sickness. Under-18s need extra safeguards.
Class playtests are for design feedback. If you want to use testers' data in a dissertation or publish it, that is research, and it needs approval through the university's ethics process first.
"Didn't you love the insurance rule?"
"Tell me about the insurance rule."
"Was it too hard?"
"The difficulty felt fair. 1 = disagree … 5 = agree"
Testing only with your own team, once
New testers each round; several small rounds
Keeping the quotes that agree with you
Count every observation; let a teammate interpret
Simulation runs the model; testing runs the game. You need both, early and often.
Read the spread, not just the average. Monte Carlo shows how a random system will feel.
Match the test to the question, and triage by severity and priority separately.
Don't explain, don't defend. One question, a script, verbatim notes, symptoms before causes.
Consent, inclusion, honest questions. Testers are people, and data can lie.
Simulate it, change it, test it, triage it
Kit per table: two d6 (main + modifier), a d8 or d6 + 2, duck tokens.
–
–
Simulation (10,000 games): –
Change or add one rule to Round 3. Write it in one sentence another group can follow.
What do you want to learn? About feeling, choice or understanding, not just score.
What do you expect testers to do and feel? What would prove you wrong?
Ideas: a second pot · a duck you can spend · banking that costs a duck · a "double or nothing" roll · a shared pot with the player to your left.
| Rule | Once per round, before you roll, you may pay 2 ducks to insure your pot: if you bust, you keep it. |
| Question | Does insurance make players push their luck more, and does it feel like a smart choice or a tax? |
| Prediction | Most players insure big pots late, then keep rolling. Some will feel ducks are "too precious". |
| Wrong if… | Nobody insures, or everyone insures on turn 1. |
Reads the script and the rule. Then silence. Only "What are you trying to do?"
One row per observation: where, verbatim, issue, severity. Interpretation later.
From the other group. Play one round of Round 5, then fill in the survey.
Then swap, so every group's rule gets tested. Testers: the survey is five Likert questions and one open one.
"We asked …. We saw …. The cause was …. Next we'll …."
“In my project I'd simulate …, but only a player could tell me ….”
One sentence each, on the back of the playtest pack.
Bond, J. G. (2022) Introduction to Game Design, Prototyping, and Development. 3rd edn. Boston: Addison-Wesley.
Keith, C. (2020) Agile Game Development: Build, Play, Repeat. 2nd edn. Boston: Addison-Wesley.
Metropolis, N. and Ulam, S. (1949) 'The Monte Carlo method', Journal of the American Statistical Association, 44(247), pp. 335–341.
Nielsen, J. (2000) 'Why you only need to test with 5 users', Nielsen Norman Group.
Schell, J. (2019) The Art of Game Design: A Book of Lenses. 3rd edn. Boca Raton: CRC Press.
Sellers, M. (2018) Advanced Game Design: A Systems Approach. Boston: Addison-Wesley.
Probability for Designers (Monte Carlo in a spreadsheet)
Economy Simulation with Queues