Adaptive
techniques in difficulty management: Do they hold
a prominent position in the future of computer gaming?
by
Robison Bryan of Inspired
Code.net
Part
1.
I will
share with you my thoughts on the subject and let you decide for yourself.
Implementing these concepts could afford your games an almost human
intelligence toward providing the best gaming experience for all concerned,
for as long as possible each time they play, and for as many replay
times as possible. While I will try to be general about these ideas,
I may use some language you consider to be a bit technical. I'll also
try to explain my terms in simple language, and you can also probably
get most
of it from context. So if one thing seems odd, keep going and it should
become clear. And one last note: I am not an expert. This is intended
to be a theoretical piece, and reducing such to actual practice by necessity
follows, rather than precedes such theoretical work. With that said,
here goes:
What is
your game's replay value? Does it give certain people an unfair advantage?
You can control the answers to both of these questions by using adaptive
techniques. The two basic questions are answered by two basic techniques
that use some of the same methods within them. This article will deal
with them in a purely theoretical sense, allowing you to utilize them
in any language, whether C++, VB or PEAL (Plain English Adventure Language).
Equalizer
An
equalizer is a method of anticipating and or detecting any unfair advantages
the player might have, and adjusting the difficulty accordingly. The
most basic equalizer is a "set and forget" system, which is
like saying you wind it up and let it run, instead of constantly taking
measurements and adjusting it. (Geeks like me would call this an open
loop system). The advantage of it is that although it compensates for
certain prevailing conditions it allows the player to progress and reap
the rewards of getting better without being penalized for ability.
AutoLevel
An
autolevel is a system that reacts to its own output. (Geeks like me
would call this a closed loop, or servo system). A perfect example of
this is the automatic recording level (compressor) that many older tape
recorders have. You can hear the results of this during commercials
on TV. It keeps adjusting the volume so that the output constantly stays
at the maximum allowable (yet annoying) sound pressure level. The use
of an autolevel in gaming can keep a player constantly challenged, but
can also give them the feeling that they'll do just as well if they
try hard or slack off.
The
Best of Both Worlds.
By combining these two general methods together, you can get results
that are much more fun than either method alone. This becomes possible
when you consider that difficulty in a game is not one dimensional.
You can have many kinds of settings in a game. Just as you can have
north or south, east or west and up or down, you can also have things
like hot or cold, wet or dry, fast or slow and so on. Each of these
dimensions of possibility is called a parameter. Your stereo has three
parameters called volume, treble and bass. In your game, you can set
up and use a great number of parameters to control difficulty. Certain
parameters can be treated with an equalizer
and other parameters can be treated with an autolevel. You can even
export the amount that your autolevel had to adjust things into another
parameter so as not to lose the significance of the parameter that you
squeezed with the autolevel.
Here's
an example of an autolevel that still manages to salvage something extra
out of the fact that the player is really good:
The earliest,
simple yet effective adaptive technique: increase the speed. Suppose
your game is a first person shooter. You can have the game adapt to
the player's ability by making the enemies keep getting faster and more
powerful. But the player might say what is the point in trying when
the game just compensates? The answer is in the fact that the more powerful
the enemy, the more points you get for shooting him down. That way no
matter how good or bad he is, the player stays on the edge of his seat
in order to just stay in the game. But his extra capability is rewarded
by the number of points he racks up against the enemy ships, and perhaps
by the ability to stay in the game for a longer total time each time
he plays.
This is the most simple method of adaptive difficulty control, and was
present in early
games like Asteroids. The enemy ships just kept getting faster, but
the best players were able to stay in the game long enough to rack up
the most points. Even this simple approach has lots of replay value,
because the player can stay in the game at first and eventually is so
challenged that he falls out of the game. Those are the advantages.
But the method also has some limitations.
Dead
heroes don't solve puzzles
Suppose you want to influence future text role play by the outcome of
a fast paced battle scene? Then it is not very convenient to guarantee
that your player will die in battle either sooner or later, depending
upon his ability. Tron would never get to hack the operating system
if he got killed on the game grid. In the movie he actually ran away
through a crack in the wall. But if your player's text adventure character
is someone else other than his battle character that might work out
anyway. An example of this would be if in the story the player were
controlling a fighter robot by remote control. Two more examples would
be Angels fighting demons overhead on behalf of the praying player,
or else a general dispatching troops who can win or lose the battle
by various quantities of casualties. The above technique is not the
only way that a game could adapt to the player's ability. This method
also adapts in only one way, that of speed. Thus the person with the
fastest reflexes will more often win. Also it gives an unfair advantage
to the player who can visually see the enemy. Furthermore, since the
player temporarily becomes someone else for the duration of the lethal
battle, you could not really call it a first person shooter in the truest
sense of the term.
Better
adaptive techniques needed
It can be seen from this that to successfully mix first person action
with an ongoing puzzle, text adventure and or mystery saga, what is
needed is more detail, more intelligent control over the difficulty
level, without sacrificing the rewards obtained by playing well. The
player must get a sense of reward that is proportional to his progress
in how well he plays.
I had at the beginning of this paper talked about two basic techniques,
the equalizer and the autolevel. The space invaders approach is almost
entirely an autolevel. The game reacts to how long the player stays
alive by compensating with faster enemies. Only the number of enemies
shot down preserves for the player the benefit of how well he plays.
The simplicity of this approach also can allow certain players to leverage
their own
advantages, fair or otherwise.
The
simple equalizer in action
An equalizer can be used to compensate for a certain specific known
advantage. For instance, what if you wanted to write a game that the
sighted and the visually impaired would find equally challenging. To
provide the stimulation of all senses available without
allowing the presence of certain senses to yield an unfair advantage
requires an intelligent method that does not give the visually impaired
player an easy way out or the baby treatment, either. The simplest way
to do that is to honestly evaluate what areas the sense of sight yields
an inappropriate advantage. In other words, which of the game's parameters
are influenced by the presence of that sense. Then to the appropriate
degree, adjust those parameters to compensate. The result is that if
the sighted player were to turn off the visual display and he would
rack up the same
number of points, or gain the same measure of success, whatever the
challenge is. This is a simple "set and forget" concept. The
steps are simple.
- Determine
whether the sense of sight is being used.
- Have
a preconceived notion about which game parameters are affected, and
how much, by this sense.
- Adjust
the difficulty settings along those parameters in the opposite
direction by that said amount, before any playing has even occurred.
Thus the outcome will be similar whether or not the sense is used.
But this
is not the only possible source of excessive advantage.
Compensating
for various kinds of individual strengths and weaknesses
As previously mentioned, a player might have lightning fast reaction
time. If the only way to influence certain adventure details is by means
of how well he does in battle, the more normally paced players may never
get to the place where their analytical skills would pay off for a more
consistent challenge all around. Likewise if the lightning fast player
is not a Sherlock Holmes by any stretch of the imagination he may never
get to the battlefield where he could show his stuff. Rather than insisting
that the player be good at everything in order to really enjoy any of
it, it would be helpful to allow the player to progress using what he
has more or less successfully, by the outcome of his labours in any
endeavour (whether on the battlefield or on the beat as a detective)
would yield quantifiable rewards that can be leveraged to his benefit
when he is challenged in his particular area of weakness. For those
players that are not very good at any of it yet, there can be different
general difficulty levels that can be selected from the menu, such as
bantam weight, lightweight and heavyweight. Any scores would be within
that particular difficulty group or weight class and would be understood
to apply to such.
But getting back to the adaptive aspect, within each difficulty class,
the different parameters of a person's ability should be compensated
so that he can stay in the game and get a sense of his own improvement
overall.
A new
fly in the ointment
Before proceeding to describe how to compensate for many parameters
at once, there is another aspect that should be considered, as it will
have to be dealt with at the same time. The new consideration is the
answer to the first question at the top of this paper.
What is your game's replay value? This is best answered by making the
very structure of the game different every time it is played. This can
be accomplished by allowing random numbers to dictate the generation
of maps, of locations, of tools, of monsters or any combination thereof,
as well as all of the properties of such items. I recognize that it
is a good thing also to save a game that is in progress and continue
playing it later, much
as one would put down a great novel and continue reading it later. I
will ignore the mechanics of doing so and consider such to be merely
a continuation of the same playing of the game.
Let
the numbers decide
In order to accomplish this versatility, as well as to adaptively control
difficulty, everything in the game must be controlled by variables.
Rather than having a monster always living at a certain precise location,
and behaving in exactly the same way each time you encounter him, it
would be better to assign details according to variables that are modified
by rules of logic that depend upon arbitrary numbers, and then seed
them with random values. If there is no way around certain preset values,
then have a table of all such possible preset values that you can assign,
like a spread sheet. Then have a variable index each dimension of the
array and the result that gets grabbed from the box at that address
will decide how to make the world you are setting up. In this way you
can create a number of monsters, enemies, towns and even situations
the player may
encounter. You can specify their personalities and write in plenty of
detail about them as text. Thus the descriptions can be quite vivid,
complete with behavioural tendencies and detailed kinds of capabilities
to match, while at the same time never being expected by the player.
The unpredictability can also be enhanced by mixing and matching whenever
possible, assigning certain attributes randomly from each list, complete
with detailed descriptions of just that attribute. A different random
number would select a different detail from each list.
An example
of replay variety that points to difficulty management
For example, your monster might be randomly issued a weapon from a list
of twenty possible weapons. There is detailed description of what the
weapon looks like, what the damage it does looks like, and there could
even be wave files associated with the firing of it. Furthermore, the
weapon could have rules associated with what it can and cannot harm,
as well as what kinds of defence are effective against it. Additionally,
any time numbers are used in the weapon's details there is an opportunity
to modify them by random and or adaptive means. The random means can
help to make each monster truly
unique. The adaptive means brings us full circle back to the topic at
hand. Every number involved in the details of a monster can have an
effect upon how difficult he is for the player to deal with. For every
monster, each of those numbers can have an allowable range, which is
how far the number can be stretched in either direction. This allows
the monster to retain his personality. It is also possible to specify
that for a given monster if one of his numbers gets stretched in one
direction, a different one of his numbers will be stretched in the same
or opposite direction, whatever will allow him to be modified in difficulty
while maintaining his unique personality.
Parameters
of Monster Challenge
After
a number of potential monsters have been created, they can be classified
according to type and difficulty, by prediction and or testing. Their
unique qualities will present varying challenges to various players.
Player 1 may have more trouble with Monster A rather than Monster B.
Player 2 may have the exact opposite experience.
He may find that Monster B is more difficult than Monster A. All things
being equal, why did one player have more trouble with one Monster while
the other player had more trouble with the other monster. Each player
thinks that his favourite monster is simply tougher. What accounts for
this difference? The difference is that the monsters are not the only
ones that have different parameters and aspects. The players are also
unique monsters in their own rights! Each player is stronger according
to certain parameters and weaker according to other parameters. It is
as if the aspects of each human player were also randomly selected from
a table, complete with detailed descriptions and number ranges. This
may be LOL hilarious but it is also true. Each person is not only uniquely
responsive to various monsters, but also to various other kinds of challenges
or partial aspects of challenges.
Having
carefully set the stage in Part 1, I will share in Part 2 my own
proposed integrated approach to accomplishing near infinite replay value
and
adaptive difficulty management within a multi-mode game.
This
article was written by Robison Bryan of Inspired
Code.net and is reprinted from Audyssey Magazine with permission
by the author. Robison Bryan is currently developing the Audio
Adventure Engine.
(C)
Robison Bryan 2003
|