Easier to read with cream paper, a tint, more contrast or larger text? Choose your colours and text, once, for every page.

Free lesson

Playtesting and game balance

After this lesson: I can read playtest results and decide what to change in a game.

55 min lesson2 commandsGame development lab: a game loop, gravity and collisions in the browser

Playtesting shows what you cannot see yourself

Playtesting means watching real people play your game and writing down what happens. Balance is how fair and how fun the difficulty feels. A playtest is the main way to find out whether a level is balanced.

You know how your own game works, so you cannot see where a new player gets stuck. Someone else can.

By the end of this lesson

Note

I can read playtest results and decide what to change in a game.

Key words

WordWhat it means
Playtesta session where someone plays and you watch
Balancehow fair the difficulty feels to a player
Metrica number you record, such as seconds played
Accessibilityhow easy a game is for different people to use
Feedbackwhat a tester says or does about the game

The cells students fill in are left blank in this preview.

A playtest records numbers and words

Decide what to record before testers arrive. Numbers are the easy part: how many seconds each person lasted, what score they reached, and whether they quit early.

Words matter too. Write down what a tester says out loud, such as "I do not know what the box does". Do not help them. Watch, stay quiet and write.

Worked example: four made-up playtest sessions

PlayerSeconds playedScoreQuit before 30 seconds?
mia407No
omar201Yes
li609No
sam200Yes

The cells students fill in are left blank in this preview.

Results show if a level is too hard

Work out two numbers from the table. The average is the total seconds divided by the number of players. Here, 40 + 20 + 60 + 20 is 140, and 140 divided by 4 is 35 seconds.

The second is the share who quit early. Two of four quit before 30 seconds, which is half. A common rule is that when half or more quit early, the first level is too hard.

Worked example: from a result to a change

What you seeWhat it may meanA change to try
Half quit in under 30 secondsThe start is too hardLower GRAVITY or raise PLAYER_SPEED
Nobody loses a lifeThe game is too easyLower SPAWN_EVERY
Testers ask what to pressThe controls are unclearPut the keys on the page
Scores differ a lotLuck matters a lotTest again with more players

The cells students fill in are left blank in this preview.

A game should work for different players

Accessibility means more people can play. Some players cannot use a keyboard, some cannot tell two colours apart, and some need more time to react.

A game can offer more than one way to play, show important things in more than one way, and let the speed be changed. Many of these cost only a few lines of code.

Find where the buttons move the box

Command
docker exec jupyter grep -n "pointerdown" game/game.js

Shown here, not run. Create a free account to press Run and type it into your own lab’s terminal.

On-screen buttons let people play without keys

The search prints one line, number 130. It adds a pointerdown listener to the Left and Right buttons on the page. A pointer is a mouse, a finger or a pen.

So a player can hold a button to move the box and does not need a keyboard. That is one accessibility choice already made in the lab game.

Count the listeners the game adds

Command
docker exec jupyter grep -c "addEventListener" game/game.js

Shown here, not run. Create a free account to press Run and type it into your own lab’s terminal.

Six listeners cover keys, buttons and restart

With -c, grep prints a count and not the lines. The answer is 6. Two listeners are for the arrow keys. Three are for the pointer events of the on-screen buttons. One is for the Restart button.

A tester who cannot use a keyboard can still play and start again.

A common mistake

Warning

Many people explain the game to the tester before they start. Then the test shows only how well the game works when someone has explained it. Say nothing about how to play. If the tester cannot work it out, that is the result you came for.

About this lab and its source: Game development lab: a game loop, gravity and collisions in the browser

Teaching a class? Set this module for your students with a teacher guide, marked assignments and a lab for every student.