Game artificial intelligence

From Wikipedia, the free encyclopedia

Game artificial intelligence refers to techniques used in computer and video games to produce the illusion of intelligence in the behavior of non-player characters (NPCs). The techniques used typically draw upon existing methods from the academic field of artificial intelligence (AI). However, the term game AI is often used to refer to a broad set of algorithms that also include techniques from control theory, robotics, computer graphics and computer science in general.

Since game AI is centered on appearance of intelligence and good gameplay, it is very different in approach to traditional AI; hacks and cheats are acceptable and, in many cases, the computer abilities must be toned down to give human players a sense of fairness, especially on First-Person Shooter games, where their perfect movement and aiming is beyond human skill.

Contents

[edit] History

The first videogames developed in the 1960s and early 1970s, like Spacewar!, Pong and Gotcha (1973), were games implemented on discrete logic and strictly based on the competition of two players, without AI.

Games that featured a single player mode with enemies started appearing in the 1970s. The first notable ones for the arcade included the 1974 Atari games Qwak (duck hunting) and Pursuit (dogfight simulator). Two text-based computer games from 1972, Hunt the Wumpus and Star Trek, also had enemies. Enemy movement was based on stored patterns. The incorporation of microprocessors would allow more computation and random elements overlaid into movement patterns.

Light cycle characters compete to be the last one riding, in GLtron.
Enlarge
Light cycle characters compete to be the last one riding, in GLtron.

The idea was perfected with Space Invaders (1978), sporting an increasing difficulty level, distinct movement patterns, and in-game events dependent on hash functions based on the player's input. Galaxian (1979) added more complex and varied enemy movements.

Pac-Man (1980) applied these patterns to maze games, with the added quirk of different personalities for each enemy, and Karate Champ (1984) to fighting games, although the poor AI prompted the release of a second version. Meanwhile, in 1983 the first computer victory against a human player in chess was recorded, although a chess world champion would not be defeated until 1997, with the victory of Deep Blue over Kasparov.

In the 1980s and 1990s the emergence of sophisticated sports games advanced game AI that was built on the tradition of expert systems. Games like Madden Football, Earl Weaver Baseball and Tony La Russa Baseball all based their AI on an attempt to duplicate on the computer the coaching or managerial style of the selected celebrity. Madden, Weaver and La Russa all did extensive work with these game development teams to maximize the accuracy of the games. Later sports titles allowed users to "tune" variables in the AI to produce a player-defined managerial or coaching strategy.

The emergence of new game genres in the 1990s prompted the use of formal AI tools like finite state machines. Real-Time Strategy games taxed the AI with many objects, incomplete information, pathfinding problems, real-time decisions and economic planning, among other things (Schwab, 2004, p.97-112). The first games of the genre had notorious problems. Herzog Zwei, for example, had almost broken pathfinding and very basic three-state state machines for unit control, and Dune II attacked the players' base in a bee line and used numerous cheats. (Schwab, 2004, p.107). Later games in the genre exhibited much better AI.

Later games have used nondeterministic AI methods, ranging from Battlecruiser 3000AD first use of neural networks in a videogame in 1996, to the emergent behaviour and evaluation of player actions in games like Creatures or Black & White.

[edit] Views

Some game programmers consider any technique that is used to help create the illusion of intelligence to be part of a game's AI. This view is controversial because it includes techniques that are also widely used outside of a game's AI engine. For example, information about potential future collisions is an important input to algorithms that help create characters that are clever enough to avoid bumping into things. But the same collision detection techniques are also commonly needed to implement a game's physics. Similarly, line of sight test results are usually important inputs to AI targeting decisions, but are also widely used inside the rendering engine. A final example is scripting, which can be a convenient tool for all aspects of game development, but is often closely associated with controlling NPC's behavior.

Purists complain that the "AI" in the term "game AI" overstates its worth, as game AI is not about intelligence, and shares few of the objectives of the academic field of AI. Whereas "real" AI addresses fields of machine learning, decision making based on arbitrary data input, and even the ultimate goal of strong AI that can reason, "game AI" often consists of a half-dozen rules of thumb, or heuristics, that are just enough to give a good gameplay experience.

Game developer's increasing awareness of academic AI and a growing interest in computer games by the academic community is causing the definition of what counts as AI in a game to become less idiosyncratic. Nevertheless, significant differences between different application domains of AI mean that game AI can still be viewed as a distinct subfield of AI. In particular, the ability to legitimately solve some AI problems in games by cheating creates an important distinction. For example, inferring the position of an unseen object from past observations can be a difficult problem when AI is applied to robotics, but in a computer game an NPC can simply look up the position in the game's scene graph. Such cheating can lead to unrealistic behavior and so is not always desirable. But its possibility serves to distinguish game AI and leads to new problems to solve, such as when and how to use cheating.

[edit] Usage

The uses of game AI are varied depending on the need. In most cases, the AI is used strictly for controlling enemy actors or sprites to provide a challenge for the player, and in this respect, by tweaking the AI alone, changes in difficulty levels can be obtained. Likewise, AI can be used to control friendly characters, and by tweaking the AI of these, the difficulty can be changed in an opposite manner to how the same change would affect difficulty with enemy characters.

In some cases, however, actual AI techniques have been used in video games, such as for the game Black & White, in which part of the game involves teaching and training a creature "avatar" to act within the game.

[edit] Cheating AI

Cheating AI is a term used to describe the situation where the AI has bonuses over the players, e.g. giving more damage, having more hit-points, driving faster etc. It is usually used in games to artificially increase the difficulty of the game, because humans generally use more intelligent strategies than the AI, and could defeat it much more easily if it were not for the bonuses.

Critics claim that using this technique draws away the focus from developers to program more human-like bots. Instead they use the easy approach by letting the AI 'cheat'.

[edit] See also

[edit] References