Tuesday, September 16, 2008

Dynamic Assistance


When thinking of ways to let players define for themselves how hard a level is, most folks come up with the idea of a "difficulty slider" or its equivalent. (Pick one: "hard", "normal", "easy".) There's nothing especially wrong with this approach... but what about some other approaches? Has game technology progressed to a point where there are now viable alternatives to a static difficulty system?

How about this: What if the game itself could detect that you were having trouble and respond appropriately with help? What if instead of being balanced for "easy" and made harder by a slider, the game was balanced for "hard" and players were dynamically helped through tough spots?

As an example of how this might work, let's take the big strider battle from Half-Life2 Episode 2.

For those who haven't played this game, this is a big fight sequence between the player as the scientist-protagonist Gordon Freeman and several slow but huge and deadly three-legged "strider" tripods, each with several attendant "hunters," which are fast, agile and aggressive. To counter the striders, which spawn with their hunters every few minutes and all of which must be destroyed before they reach a key location on a large map, the player is given a number of tools: an explosive device that can be launched at and sticks to a strider and which will destroy the strider when hit by fire from one of the player's weapons; several buildings containing stockpiles of various kinds of ammunition for the player's weapons; numerous NPCs who provide minor fire support; and a fast vehicle that includes a simple "radar" showing the location of striders on the local map.

This fight generated a certain amount of controversy on Valve's user forum. While some gamers (typically the self-described hardcore FPS gamers) claimed to have found this section of the game trivially easy, many other gamers reported finding it frustratingly difficult. They reported frequent deaths and reloads, in some cases quitting the game without finishing it. The most common analytical complaint was that the difficulty of this section wasn't just harder than previous sections (an earlier section of the game included a major firefight), but that it was hard in a different way from the rest of the game which "taught" the player that all challenges had at least one relatively simple solution, although you might have to think laterally to realize it. The strider battle, because it had to be solved quickly and often contained multiple challenges (striders plus hunters) which required challenge prioritization, seemed to demand a shift from the leisurely tactical puzzle-solving typical to Half-Life generally to frenetic twitch gameplay.

Shifting the requirements for success from the intelligent use of environmental features to mere speed and accuracy seemed to make this part of the game much harder for many players. Many suggestions thus concerned the perceived difficulty level of this section of the game. By far the most common suggestion for improvement was some variation on "reduce the difficulty." The "slider" approach (already available in HL2 Episode 2) was a popular suggestion.

Instead, what if we turned that around? Rather than maintaining the utility of all the tools given to the player and reducing the difficulty, let's instead consider leaving the high difficulty level where it is but increasing the value of the assistance given by tools.

Imagine two gamers, A and B. A has played some action games before, but mostly enjoys solving problems through planning and creative use of resources. B, meanwhile, is a veteran gamer with great coordination who enjoys the adrenaline rush of solving problems by tackling them head-on with massive firepower and agile movement.

Player B goes through the strider battle, and it plays pretty much like it does for most people who nailed it without breaking a sweat.

Player A then tries it, and the first two hunters kill him immediately; he keeps trying to shoot them and missing most of the time; he doesn't realize he can use his vehicle to ram the hunters; he has trouble getting the explosive device to stick to the strider; and so on. He dies and reloads a lot. He feels frustrated that none of the skills honed by previous parts of the game seem to be helping him here.

Suppose the game notices Player A's many deaths on that level due to the hunters. What if instead of expecting the player to turn a dial to make the game easier somehow (and lose some of the intended fun), the game could give Player A some useful assistance? How about if the game started spawning NPCs who were effective at engaging the hunters? "I'll take care of these hunters, Freeman -- you concentrate on taking down that strider!"

Now suppose you figured out how to ram the hunters but you keep missing the strider with the explosive device. The Half-Life2 game engine could, I think, pretty easily spawn humans who would form a convoy to bring more of these devices to you so that you wouldn't have to keep racing back to the nearest building for a fresh one, thereby losing time against the striders. You'd still have to do the shooting because you've got the only gravity gun, but wouldn't it be helpful if the game itself noticed that you could use some help in this area and offered it to you?

This "dynamic assistance" feature would work for other challenges as well. For example, if some gamers were being killed repeatedly by the antlion guardian in the tunnels, the game could pop up a notice reminding them to use the Shift key to run. If that didn't seem to help, it could start spawning antlions for the guardian to "chase," distracting it long enough to give you a little more time to sprint to the next safe location.

You get the idea. Instead of (or perhaps in addition to) static difficulty sliders, today's games should and could be smart enough to notice when a player is having problems and offer some kind of dynamic, in-game, context-appropriate help. Help would be provided only when and where needed, rather than "dumbing down" the entire game through a global difficulty setting.

It should be noted that this is not the same thing as a "dynamic difficulty adjustment" system. Such approaches (like the automatically scaling opponents in Bethesda's The Elder Scrolls IV: Oblivion) have been criticized for not allowing players to experience very difficult challenges early on in a game. A dynamic assistance feature would allow such challenges to be designed hard and remain hard; the difference is that gamers who persist in trying to take on these challenges would eventually get a little game-supplied help in doing so. Anyone who didn't want the help could simply move on to some other challenge, then come back later when they're more powerful. This combines the advantage of having hard content to come back to with a way to help more persistent gamers not to feel frustrated and discouraged at being unable to progress.

Finally, not only would a dynamic assistance feature improve the playability of challenge-based games for more people, it would be a great way to get even more value out of a developer's investment in NPC AI, since NPCs can be a particularly valuable tool for helping players in that they also help contribute to a game's story.

No comments:

Post a Comment