4. Interaction design
Patterns
Patterns and
pattern languages for describing patterns are ways to describe best
practices, good designs, and capture experience in a way that it is
possible for others to reuse this experience. Each pattern is a
three-part rule, which expresses a relation between a certain
context, a problem, and a solution. Usually a rationale is also
provided. Patterns originated as an architectural concept by
Christopher Alexander , but patterns in software became popular with
the “Gang of four” design patterns book. Since then a pattern
community has emerged that has specified patterns for all sorts of
domains including interaction design.
Patterns have
been used to describe knowledge about game design yet these have
focused on describing game play and not on usability/accessibility
solutions. In this article we propose to use interaction design
patterns. An interaction design pattern describes a repeatable
solution to a commonly occurring usability problem. The
quintessential example used to illustrate an interaction design
pattern is undo.
|
Name: undo
Problem: User
made a mistake and cannot revert this.
Context: Any
application where a user can manage information or create new artifacts
such as word processors or graphical applications.
Solution:
Maintain a list of user actions and allow users to reverse selected actions.
Why: users will
explore more since they know mistakes can beundone, facilitating
learning the application.
|
Patterns and guidelines
do not exclude each other; patterns describe one or more rules in a
very specific situation (depth) making them more useful as design
tools, whereas guidelines are more high level (breadth) and are useful
as requirements.
Several pattern collections can be found online of which the Yahoo UI
pattern collection is probably the most well known. Existing pattern
collections focus on problems in web and user interfaces (UI) for
general-purpose software, which makes them hard to use as tools for
game design. Although certain patterns such as a wizard are applicable
to games (e.g. an installation wizard), many others such as container
navigation, calendar picker or form validation are typically not
applicable to game design.
We identified that games exhibit some unique usability/accessibility
problems, e.g. lack of closed captions or not being able to skip a cut
scene is usually not a problem for web applications. As a result we
decided to develop our own interaction design pattern collection that
specifically addresses accessibility and usability problems in games.
The next section gives three examples of patterns we identified in
existing games.
5. Example patterns
Another benefit of using patterns to
describe design knowledge is their consistent format. To increase the
readability of our collection we use the following format:
-
Problem:
problems are related to playing the game, which is either a
usability and/or an accessibility problem.
-
Context:
the context extends the plain problem-solutions dichotomy by
describing specific situations or types of games in which the
problems may occur.
-
Forces:
within the context, a number of forces act, which need to be
resolved.
-
Solution:
a proven solution to the problem, which resolves the forces.
-
Why:
the rationale provides a reasonable argumentation for the specified
impact on aspects of usability when the pattern is applied.
-
Examples:
Examples of how this pattern has successfully been implemented in a
game.
We have currently identified 23
interaction design patterns, all of them may improve the usability of
a game and 8 may improve accessibility. We give three example
patterns: adaptive difficulty level, seamless gameworld and slow.
Only three patterns are included but the reader of his paper is
encouraged to visit the rest of our pattern collection on our website
http://www.helpyouplay.com.
Adaptive
difficulty level
|
|
Figure 1: adaptive difficulty level in
God of War
|
|
Problem
|
Problem - Player gets
killed/injured repeatedly because –
Accessibility- the game is too
hard to play on the current difficulty setting for someone with a
disability e.g. cannot respond quickly or precisely position a
pointer/crosshair (physical) or unable to deal with many events
at the same time (physical /cognitive)
Usability - the game is too hard
to play for the player on the current difficulty setting.
|
|
Use when
|
Games that offer different difficulty
levels to cater for different types of players. The most common
terms for levels of difficulty are easy, normal and hard.
Depending on the difficulty level:
-
The enemies are stronger or
weaker.
-
Puzzles are harder or easier to
solve.
-
More or less guidance is provided.
-
More or less control assistance is
provided (e.g. auto aim or auto steering).
The player has to choose a difficulty
level when starting the game, and usually it is not possible to
switch to a different difficulty level halfway without starting
over.
|
|
Forces
|
-
Players want the game to be
challenging yet forgiving. For example, it should be challenging to play
the game, but players do not want to have to try getting past a
point in the game over and over again.
-
Some players may have experience
playing similar games. Others have little experience
-
Some players are better or worse
than others at certain game aspects such as shooting or puzzle
solving.
-
The game's difficulty level with
regard to a certain aspect may vary during the game e.g. one part
of the game may focus more on shooting and another part of the
game on solving puzzles.
|
|
Solution
|
Adjust the difficulty level to the
player.
The game should adapt to different
players during different parts of the game. There are two options
for implementing this pattern:
-
Suggest a different difficulty
level according to the player’s performance. E.g. the game
could suggest an easier difficulty setting after the player has
failed/been killed a number of times to pass a point in the game.
-
Automatically adjust the
difficulty level based on the player's performance. Every time
the player dies or fails, there is a chance that the player will
switch to the next easiest difficulty setting. If playing well
for a while there is a chance the player will go up a difficulty
level. This solution is better as you can create a large amount
of difficulty levels (more than the traditional easy / medium /
hard). You can either notify the player or just make it
transparent to the player. The player does not have to choose a
difficulty level when it starts playing the game.
|
|
Why
|
Accessibility - Adjusting the
difficulty level to the disabled player may make it easier to play
the game and the player may make less errors. The game will
automatically determine the difficulty level the disabled player
is comfortable with.
Usability - Adjusting the
difficulty level to the player may increase satisfaction and
efficiency. Players will not become frustrated.
|
|
Examples
|
God of War - This 3rd person
action game suggests adjusting the difficulty level, if the player
dies frequently in a short period of time e.g. 7 times in a row, a
screen is presented which offers the option to switch to an easier
difficulty level.
Resident Evil 4 - This 3rd
person shooter has 5 levels of difficulty. It automatically
adjusts the difficulty level based on the player's performance.
Sin Episodes - This first person
shooter offers a very advanced dynamic difficulty system. It
continuously monitors performance and will tailor enemies’
health ammo, armor and damage to a specific playing style.
|
Seamless
Game world
|
|
Figure 2: seamless game world in
Dungeon Siege
|
|
Problem
|
Usability - Players need to wait
before entering a (new) part of the game.
|
|
Context
|
Typical to "free roaming"
games e.g. 3rd person shooters, role-playing, action or simulation
games with the ability to move around freely in a large world.
These games usually have a nonlinear game plot (if any). Usually
such a world is partitioned into zones as such a world cannot be
loaded in whole in the memory. When a player moves from one zone
to another (e.g. goes into a house) the player usually has to wait
for the new zone to be loaded into the memory.
|
|
Forces
|
• Players
are impatient and do not want to wait.
• Players do not want their game to
be interrupted.
|
|
Solution
|
Provide a
seamless game world.
Instead of
letting the player wait before entering a new zone, pre-load the
level before the player enters the zone. Rendering a huge seamless
world may have a significant effect on the game engine design; an
example implementation could be as follows:
• The
entire world is broken up into chunks (chunk size depending on
available memory).
• Only 9
chunks are loaded into memory at any given time, the chunk the
player is currently in and the 8 surrounding chunks.
• As the player moves out of the
central chunk into one of the bordering chunks, the 3 chunks
farthest from the player are discarded and the chunk the player
just entered then becomes the center chunk. Then the 3 new chunks
make the 3x3 grid are loaded. Some more detailed implementation
issues (such as loading parts of chunks and dealing with hardware
constraints) can be found in Bilas
|
|
Why
|
Having a large, persistent world adds a
level of constant immersion for the player, as the game never
stops and never loads. This solution increases efficiency and
satisfaction.
|
|
Example
|
Dungeon
Siege - This role playing game provides "content
streaming" which eliminates the need for "level
loading".
World of Warcraft - This massive
multiplayer online game provides a seamless world it connects a
number of different places and makes them appear as if they all
belong as parts of a whole. Loading times are as rare as they are
brief. They only crop up when traveling across the game's enormous
continents or entering some specific higher-level zones that are
instanced for each player group.
|
Slow
|
|
Figure 3: Slow in Max Payne
|
|
Problem
|
The player needs to successfully perform a series of actions in a
short period of time, which is difficult.
Accessibility
problem - if the player suffers from a physical, cognitive or
visual disability since they need more time to respond to multiple
events at the same time.
Usability problem- if the player
is not experienced.
|
|
Context
|
This is common to action games such as
first person shooters or platform games. Achieving a certain goal
(such as finishing a level) depends on successfully performing a
series of actions. Sometimes this has to be done within a
constrained period of time. For example, the player may push a
button to open a door. The door closes in a certain amount of
time. In order to go trough the door, the player may need to jump
over a pit, defeat an enemy etc.
Game designers put such
'challenges' in the game to pace the game and make it more
exciting. For advanced players such a challenge may not be an
obstacle but (novice) players may find it very hard to accomplish
and the player often has to try several times before the player
succeeds (if the player succeeds at all).
|
|
Forces
|
-
Time
manipulation cannot be implemented in multiplayer games.
-
Players
don't want to have to play part of the game over and over again
when they die.
-
Making the game too easy ruins
gameplay.
|
|
Solution
|
Solution
- Allow the player to slow down the time.
Throwing the
world into slow motion while moving around in real-time gives
several advantages.
-
Faster
movement - being able to run, jump, dodge, fight and shoot gives
unique advantages over enemies and obstacles, which is especially
helpful when trying to achieve time related goals.
-
Increased
damage - when fighting enemies one can do more damage as one can
deal more blows/hits/kicks and the enemy has a harder time
blocking the attacks.
Care must be taken that the world can
only be slowed for a brief period of time as slowing it all the
time can make the game too easy. In order to achieve this one can
consider letting the player sacrifice something in order to
activate slow. In the action game Prince of Persia slow is
activated by means of tokens that can be collected during the
game. At any given time there is only a limited amount of
activation tokens available. This makes sure the player only uses
slow sparsely.
For disabled gamers this might not be an issue and
they should be able to use slow whenever they feel the need to, it
can also be automatically triggered when multiple enemies attack.
The player however needs to be notified when slow is about to be
enabled to minimize confusion. This mechanism is also known as
bullet-time in first person shooters.
|
|
Why
|
Accessibility
- Throwing the world in slow motion will allow disabled players to
make less errors because:
-
Players
with a cognitive or physical disability have a hard time
responding quickly and dealing with multiple events, slowing down
the game will adjust the pace of the game to what they are
capable of handling without overwhelming them.
-
Players
with a cognitive or physical disability who find it difficult to
position a pointer or cross-hair have more time to achieve this
task when the game slows down.
Usability - Slowing down the
game makes will improve reliability and satisfaction as the player
has more time to respond and will make less errors.
|
|
Examples
|
Max Payne
- One of the first game to introduce matrix style bullet-time
(slow) in a first person shooter. The gameplay of Max Payne
revolves heavily around bullet-time. When triggered, bullet-time
slows down the passage of time to such an extent that the
movements of bullets can be seen by the naked eye. The player,
although his movement is also slowed, is still able to aim and
react in real time, providing a unique advantage over enemies.
Prince of
Persia: Warrior Within - This platform/action/puzzle game
allows the main character to slow time through the use of a
dagger. The dagger contains "charges" of the Sands of
Time from the hourglass that allow the Prince to "slow"
time for a while. The usages of the dagger are limited. However,
defeated enemies leave behind piles of the Sands of Time, which
can be absorbed by the dagger to replenish its stock. This
encourages the player to confront and vanquish enemies (as opposed
to avoiding them) in order to replenish the power to manipulate
time during the more tricky acrobatic sections of the game.
Blinx: The Time Sweeper - This
third person platform game offers time control which allows one to
control the flow of time e.g. slowing, speeding up, reversing or
stopping its flow entirely.
|
|