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.

  1. Determine whether the sense of sight is being used.
  2. Have a preconceived notion about which game parameters are affected, and
    how much, by this sense.
  3. 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