Skip to main content

5 Common Mistakes in Game Usability Testing And How To Avoid Them



People playing mobile gamesTesting sessions in full swing
It was a full day long session and consisted of two groups of 25 youngster

1. Too much guidenceWhen you are moderating a testing session, try to talk about the game or app as little as possible. It is perfectly ok to be mute and not give the player any background information about the game at all. 
Let them figure it out themselves. Players need to understand the game mechanics from the moment they install and run it for the first time ever. If they don´t then you have some work to do.
2. Assuming too muchDon´t assume that the player always understands your in-game menu. Before testing the game itself, try to get the test subjects to speak about the menus and items in the game. Do the players understand what each setting and button does? How do they think they can move around the different menu items?
During the sessions I witnessed teams skipping past the start screen and also the menu options, which is a bad move. You might have usability errors in the menu system and not even know it.
A kid playing a tetris like game on a mobile deviceLook out Tetris, here comes Huebrix!
Do check if the options also include easy mode and handicapped mode for players with disabilities. The options might change the colour scheme for players with colour blindness, enable detailed subtitles for players who can`t hear and change the game pace for players with cognitive or mobility problems.
3. Testing with just one demographicIf you are making casual games which should appeal to several different age and gender groups then you should test the games with all of them. With learning games aimed at small children you might want to test the game with their parents who actually buy the games.
If they can´t understand the concept then chances are they won´t buy the game. 
4. Talking too muchDon´t distract the players with too many questions and take them away from the game world.  Instead, ask them to play the game and verbalise their experience. Ask them what they are feeling at the moment and try to make the questions as open ended as possible. Is something frustrating them? Is something triggering a strong emotional response?
People playing a drawing gameDraw N Guess was a hit with both girls and boys
The less you interrupt the player, the better. Try to limit the number of moderators to 1 per player. The player gets confused if suddenly somebody else starts asking the questions. 
Try to observe the body language – are they relaxed or tense, does their body react to certain actions in the game. When do they have that special glare in their eyes etc.
5. Not recording the sessionsTaking notes during the test sessions is a good thing, but do also record the actual tests. For games I suggest using a combination of a screen recorder (there`s a nifty app for iOS apps out which also records the face of the player with the inside camera) and a video camera aimed at the face of the test subject.
Couple this setup with a skin response sensor and you will have a great way of validating your test results.
Extra tip: Use skin response sensors and eye tracking tools if possibleThe skin response sensor will show you what the player is actually feeling by measuring strong emotional responses. If you are testing video games for Xbox or PS3 then there also a sensor available which is built-in to the game controller itself, giving you a nice non-intrusive way to test your game.
Should you need the maximum results then you can also use an eye tracking device for in-depth data.

Comments

Popular posts from this blog

Python and Parquet Performance

In Pandas, PyArrow, fastparquet, AWS Data Wrangler, PySpark and Dask. This post outlines how to use all common Python libraries to read and write Parquet format while taking advantage of  columnar storage ,  columnar compression  and  data partitioning . Used together, these three optimizations can dramatically accelerate I/O for your Python applications compared to CSV, JSON, HDF or other row-based formats. Parquet makes applications possible that are simply impossible using a text format like JSON or CSV. Introduction I have recently gotten more familiar with how to work with  Parquet  datasets across the six major tools used to read and write from Parquet in the Python ecosystem:  Pandas ,  PyArrow ,  fastparquet ,  AWS Data Wrangler ,  PySpark  and  Dask . My work of late in algorithmic trading involves switching between these tools a lot and as I said I often mix up the APIs. I use Pandas and PyArrow for in-RAM comput...

How to construct a File System that lives in Shared Memory.

Shared Memory File System Goals 1. MOUNTED IN SHARED MEMORY The result is a very fast, real time file system. We use Shared Memory so that the file system is public and not private. 2. PERSISTS TO DISK When the file system is unmounted, what happens to it? We need to be able to save the file system so that a system reboot does not destroy it. A great way to achieve this is to save the file system to disk. 3. EXTENSIBLE IN PLACE We want to be able to grow the file system in place. 4. SUPPORTS CONCURRENCY We want multiple users to be able to access the file system at the same time. In fact, we want multiple users to be able to access the same file at the same time. With the goals now in mind we can now talk about the major design issues: FAT File System & Design Issues The  FAT File System  has been around for quite some time. Basically it provides a pretty good file structure. But I have two problems with it: 1. FAT IS NOT EXTENSIBLE IN PLAC...

Fetching Facebook Friends using Windows Azure Mobile Services

This tutorial shows you how to fetch Facebook Friends if you have Facebook accessToken. Here is the the code for Scheduled task called getFriends function getFriends() { //Name of the table where accounts are stored var accountTable = tables.getTable('FacebookAccounts'); //Name of the table where friends are stored var friendsTable = tables.getTable('Friends'); checkAccounts(); function checkAccounts(){ accountTable .read({success: function readAccounts(accounts){ if (accounts.length){ for (var i = 0; i < accounts.length; i++){ console.log("Creating query"); //Call createQuery function for all of the accounts that are found createQuery(accounts[i], getDataFromFacebook); } } else { console.log("Didn't find any account"); prepareAccountTable(); } }}); } function prepareAccountTable(){ var myAccount = { accessToken: "", //enter here you facebook accessToken. You can retrieve ...