Challenge Design • After a protagonist is created and given a goal, you will not have a game until obstacles are put in the way. • These obstacles create the challenge faced by the player in playing the game. • Obstacles were briefly discussed in level design, as they must be considered when creating and properly stocking a level. • Two types of obstacles, roadblocks and traps, tend to be aspects of the levels themselves, and do not require further discussion. • Enemies and puzzles, on the other hand, do need a closer examination …
Enemy Design • As discussed earlier, enemies are opponents that have to be defeated through combat, avoided, or otherwise overcome to proceed forward in the game. • Enemies are controlled through some kind of artificial intelligence, except in multiplayer games, in which case some or all enemies are controlled by other players. • Since we discussed the character aspects of enemies in our earlier discussion of storytelling, we will focus on gameplay elements here.
Enemy Design: Artificial Intelligence • Artificial intelligence can mean a variety of different things in different contexts. • By purist definitions, a game would possess artificial intelligence if a game player cannot distinguish between characters controlled by a human, or by the game itself. • In such a case, the game would be passing a limited version of what is called the Turing test. • In actual practice, however, a game that does not pass this test still has artificial intelligence.
Enemy Design: Artificial Intelligence Screen shot from Unreal Tournament 3. If you cannot tell if an enemy or teammate is a human or a bot, then the bot’s artificialintelligence has passed the Turing test.
Enemy Design: Artificial Intelligence • Game developers rarely use the Turing test definition of artificial intelligence. • In a game, artificial intelligence refers to the code used to control all non player characters and opponents within a game. • The reactions of the game may be totally random, or totally logical, but the control code is still referred to as the artificial intelligence of the game. • As long as the right player experience is created, that is what counts in a game. • Recall that this means entertaining the player!
Enemy Design: Artificial Intelligence Even though the opponent control for Centipede (left) and block droppercode for Tetris (right) is simple and scripted, with a random number generator producing some variation, both are still considered to be the artificial intelligence for those games.
Enemy Design: Artificial Intelligence Screen shot from CompuChess. Without strong artificial intelligence, a game of chess might not be worth playing, except for beginners. More is needed here than in Centipede or Tetris!
Enemy Design:Challenge the Player • Providing a reasonable challenge for the player must be the primary goal for the enemies in any game. • However, it is generally not advisable to pin all your hopes on creating an enemy that can compete with human players relying solely on its synthetic intellect alone.
Enemy Design:Challenge the Player • Aside from a very sophisticated artificial intelligence, there are several ways to provide challenge to the player with enemies: • Outnumbering the player. • Giving enemies abilities, advantages, resources, or knowledge that the player does not have. • Assigning the players teammates or additional obligations that might hold them back. • Cheating. (As long as you don’t get caught!) • Poor game design. (Do not do this!!!)
Enemy Design:Challenge the Player Screen shot from Doom II. It created challenges for players by vastlyoutnumbering the player, and providing opponents many advantages (unlimited ammunition, seeing in the dark, flying, and so on).
Enemy Design:Challenge the Player Screen shot from Warcraft III. Sometimes, the difficulty in selecting and controlling units in the heat of battle provides an unwanted and frustrating challenge.
Enemy Design:Challenge the Player • Creating a challenging and sophisticated artificial intelligence can be quite difficult. • In some games, outnumbering the player and providing additional abilities is not what the player wants or expects. • In such cases, the artificial intelligence must be very good. • Depending on the game genre and game characteristics, the player must be challenged in different ways.
Enemy Design:Challenge the Player Screen shot from NHL 10. It would break player expectations by giving opponents extra abilities or by outnumbering the player. The artificial intelligence must be better to compensate for this.
Enemy Design:Challenge the Player Screen shot from Alpha Centauri. Since it is a strategy game, the player expects a strong opponent as the game is very thought intensive. Since thegame is turn based, the game cannot overwhelm the player by processing alone; the player can take their time and think.
Enemy Design:Challenge the Player • Remember that you are only to challenge the player up to a point. • Keep in mind that your role is not to defeat the player, but rather to provide the player a good overall experience. • This means that, ultimately, your enemies should put up a good fight to challenge the player, but then be overcome so that the player can win the game in the end.
Enemy Design:Be Realistic • Enemies in a game should possess artificial intelligence that is appropriate to their setting, story, and own character. • Characters that are supposed to be smart should not do dumb things (usually). • Characters that are supposed to be dumb should not do smart things (usually). • The more human and realistic a character is, the smarter it should behave. • Beast-like, alien, robotic, and undead characters can get away with more stupid actions, depending on the situation.
Enemy Design:Be Realistic Screen shot from Quake. The Zombies behave pretty much as one would expect: they lumber towards you and take your shots until they get close enough for an attack. Unless they are blown to bits, they willget up and come back for more, just like real zombies!
Enemy Design:Be Realistic • There are some things, however, that are so dumb that nothing should do it. • For example, walking off of a cliff or not being able to navigate around a small obstacle. • In these situations it is obvious to the player what the enemy should have done. • Unfortunately, players seldom recognize how complex or difficult such obvious actions are to recognize and perform. • To avoid ridicule, the enemies in a game must have a mastery of what is obvious to human players.
Enemy Design:Be Realistic Screen shot from Quake. The ogre was notorious for getting stuck in doorways in many levels with its chainsaw, and not knowing how to get unstuck.To players, this seemed ridiculous, even for an ogre.
Enemy Design:Be Realistic Screen shot from Oni. In this situation, Konoko is being chased by Muro. A TCF officer on Konoko’s side has beaten his enemy in the background,and stands over her body for several minutes. Why isn’t he helping me?
Enemy Design:Be Realistic Screen shot from New World Order. Unlike most games, the AI enemies in thisgame do not have the benefit of infinite ammunition (for realism, I guess). When they run out, they’ll just follow you around (for no apparent reason),until you tire of their company and end their misery. Who thought that up?
Enemy Design:Be Realistic Screen shot from Counter-Strike. In the Xbox version, there is a singleplayer mode with AI bots for team mates and enemies. When these eliteterrorists and counter-terrorists fail to navigate even the simplest ofobstacles, it totally breaks immersion in the game.
Enemy Design:Be Realistic • One must be careful, however, to not make enemies behave too realistically. • Games often have unreal situations set up because they are interesting, fun, and ultimately entertaining. • For example, if an opponent realizes it has no chance of winning, it should run away indefinitely, which quickly ceases to be fun. • In building good artificial intelligence, one must keep in mind the true goal of the project: building a fun, playable game.
Enemy Design:Be Realistic Screen shot from Metaltech: Battledrome. A fairly decent game in its day withincredibly annoying enemy AI. When the AI had no chance of winning, it wouldrun away indefinitely. Chasing down a weaponless mech for an hour to finishit off is absolutely, positively, not fun!
Enemy Design:Be Realistic Screen shot from 007 Nightfire. Realistically, the villain should just killJames Bond and be done with it, instead of toying around with him. That wouldn’t make for a very good game though!
Enemy Design:Be Unpredictable • Humans are unpredictable. This is part of what makes them good opponents. • The same should be true of the artificial intelligence enemies in a game. • Players want their enemies to surprise them and use strategies and techniques that are unanticipated. • If the player can predict with some measure of certainty what the game will do, the fun in the game quickly disappears.
Enemy Design:Be Unpredictable Screen shot from Starcraft. Strategy games benefit greatly fromunpredictability. It does not take long for a seasoned player to recognize the same strategy over and over again.
Enemy Design:Be Unpredictable • Successful unpredictability can take many forms, depending on the game. • Usually, this involves adding some element of randomness to the game’s artificial intelligence. • Could be pure randomness. • Could be a form of selection in which there are several valid choices of action that are chosen from randomly. Weights can be applied to vary the amount of randomness. • In the end, the player will never know the action was random, and will tend to attribute it to some intelligence with a purpose.
Enemy Design:Be Unpredictable Screen shot from Unreal Tournament 3. Enemies can act inan unpredictable fashion through pseudo-randomly selecting a weaponto use, and use tactics appropriate to that weapon.
Enemy Design:Be Unpredictable • Keep in mind that unpredictability should enhance the challenge presented by the artificial intelligence in a game. • If things are so random that the game cannot put together a solid plan for defeating the player, you have gone too far. • Make sure that random choices are still realistic given the scenario. • If an opponent is about to win, and its artificial intelligence randomly selects a poor action, this will seem ridiculous.
Enemy Design:Precomputation is Good • Good artificial intelligence to drive your enemies can be computationally expensive to provide at run-time. • Scarce resources are also needed for graphics, animation, physics, networking, and other subsystems though. • Precomputation should be used wherever possible to provide good AI cheaply. • Scripting of sequences of actions. • Navigation through game terrain. • Collisions with obstacles.
Enemy Design:Precomputation is Good Screen shot from Thief II. This game uses navigation meshes to help characters navigate terrain. By precomputing these in advance, and usingthem in level design, character artificial intelligence is simpler and cheaper.
Enemy Design:Timeouts and Fallbacks • Nothing looks worse than a character that repeatedly does the wrong thing over and over. • Players will not notice them make a wrong turn, but they will notice continuous collisions with an easy to navigate obstacle. • Every artificial intelligence system should check for success conditions within a reasonable amount of time. • If a timeout occurs, the system should give up and try something different. • At a minimum, it can fall back to interesting idle animations that express its confusion or frustration while a new plan is formulated in the background.
Enemy Design:Timeouts and Fallbacks Screen shot from Grand Theft Auto. Police were notoriously bad at moving around stopped vehicles to arrest the player; they could easily get stuck or run back and forth. Timing out and falling back would have been good.
Enemy Design:Avoid Story Interference • If an enemy character in a game interferes with the game’s story in its pursuit of the player, this is unacceptable. • Characters must be aware of events that are important to telling the story. • This includes conversations, listening to dialogue, watching a cut-scene, and solving game puzzles. • The character should know it should back off and not get in the way.
Enemy Design:Avoid Story Interference Screen shot from Oni. Konoko was having a conversation with the scientist inthe lab coat when she was viciously interrupted. Unfortunately, she missedthe rest of the story. The guard was punished appropriately.
Enemy Design:Provide Memories • Enemy characters in a game should remember what has happened to them and others during a game. • They can then change their behaviour and dialogue accordingly. • This gives the player a sense that they are living beings with thoughts and feelings. • If the artificial intelligence in a game can learn and adapt from its memories of events, so much the better.
Enemy Design:Provide Memories Screen shot from Quake 3 Arena. Most game characters and bots havememories. If you shoot them and get on their bad side, they rememberit. They will even keep grudges against each other too!
Enemy Design:Variety Through Data • A variety of enemy behaviours keeps games interesting and entertaining. • Providing code for each behaviour introduces programming, debugging, and testing headaches. • Instead, code should provide one or a small handful of behaviours that are greatly customizable through data. This is sometimes called “data driven design”. • Designers can then introduce a “new” behaviour by tuning these variables. • This includes awareness, speed, tactics, weapon preference, field and range of view, inventory, strength, abilities, chatter, and so on. • This data should be available to designers to assist in game balancing and adjustments.
Enemy Design:Variety Through Data Screen shot from Unreal Tournament. It provides a wide variety of bot behaviours based on the settings of a few parameters.
Enemy Design:Putting It All Together Movie from Far Cry, built on the Crytek Engine. It exemplifies a lotof the goals of good game enemy AI in action.
Enemy Design:Putting It All Together Video from Devastation (courtesy of TechTV’s X-Play). A good exampleof video game AI put together the wrong way. Big time.
Puzzle Design • Puzzles can be a very important type of challenge to many games. • Good puzzles contribute to plot, character, and story development. • Bad puzzles, on the other hand, are intrusive and obstructionist in nature. • Good puzzles can help establish immersion. Bad puzzles can throw you out of immersion just as quickly.
Types of Puzzles • The art of puzzle design lies in the ability to create an original set of problems and solutions appropriate to the game world. • Despite similarities, there are several different classifications of puzzles. • The best games will use a variety of different kinds of puzzles to engage the player.
Types of Puzzles • Ordinary use of an object. • One of the simplest puzzles of all. • The player simply uses an object in the way it would ordinarily be used. • The challenge in these puzzles usually comes from finding the object, rather than figuring out what is needed. • To make things interesting, sometimes these objects are protected by another puzzle, or an enemy that must be defeated first.
Types of Puzzles Screen shot from Doom. Collecting the keys was critical to unlocking doorsto continue in the game, but wasn’t a very difficult problem to figure out. Figuring out how to actually get the keys was often a different story!
Types of Puzzles • Unusual use of an object. • Unusual use takes advantage of objects’ secondary characteristics. • It requires players to recognize that things can be used in ways other than their creator had intended. • In this case, the trick is not so much in acquiring the objects to use, but in figuring out how to make appropriate use of them.
Types of Puzzles Screen shot from Splinter Cell. Sticky cams were not only good for surveillance. A well aimed shot to the head would knock a guard out, and the cameracould be reused again and again! Bonus!
Types of Puzzles Screen shot from Psi-Ops: The Mindgate Conspiracy. In this game, guards can also be used as handy dandy glass breakers. Sweet!