Introduction To Game AI
Introduction to Game AI
Preliminary Remarks:
The field of game AI has existed since the creation of the earliest video games in the 1970's. The field is evolving rapidly, setting new standards for computer hardware engineering and establishing benchmarks for future game industry production. In the past few years, sophisticated game AIs that are more entertaining than simple video game AIs of the past have emerged and dominated the market. As 3D rendering hardware improves and as the high-resolution quality of game graphics have become the de facto industry standard, game AI has increasingly become one of the critical factors determining a game's success. Programmers dedicated to just game AI are now an integral part of the core design group.
Programming game AI is one of the most challenging enhancements that a game developer can engineer; at the annual Game Developer Conference an increasing number of presentations are concerned with AI techniques. The real-time performance requirements of computer game AI and the demand for humanlike interactions, appropriate animation sequences, and internal state simulations for populations of scripted agents have impressively demonstrated the potential of academic AI research and game AI technologies.
The commercial success of licensed 'game engines' like Unreal Tournament have inspired an entire genre of First Person Shooter designs that have incorporated increasingly sophisticated and expert agent behaviors in their productions. The bots of Epic Games' Unreal Tournament are well known for their scalability and tactical excellence. See, also, Bot Navigation
Hardware performance capabilities and constraints have been a persistent bottleneck to the creation of advanced game AI. Real-time graphics rendering has traditionally been a huge CPU hog, leaving insignificant time and memory for game AI (and collision detection). Some fundamental AI problems, such as pathfinding, can't be solved without adequate processor resources.
Techniques and Principles of Game AI Design:
Game industry observers expect that the next revolution in game AI will be learning and agent adaptation. Developers have been pursuing and researching learning techniques. To be believable, the AI in a game must simulate cognition, sense the environment realistically, and act convincingly within that context. In defining game AI, the programmer will have to code agent activity and behavior so that characters appear intelligent and respond realistically to perceived conditions and situations.
Ironically, the simplest AI techniques – finite-state machines, decision trees, and production rule systems – have been most successfully used by the game AI community.
The following is a listing of AI techniques that are relevant to present and future game AI:
- Expert Systems An expert system represents expertise within a knowledge database and performs automated reasoning in response to a series of queries.
- Finite-State Machines Simple, rule-based systems in which a finite number of "states" are connected in a directed graph by "transitions" between states. Finite-State Machines are the most used software AI in the computer game industry. They are easy to program, simple to understand, and easy to debug.
- Production Systems Comprised of a database of associated rules. Rules are conditional program statements with consequent actions that are performed if the specified conditions are satisfied.
- Decision Trees Data structute created by an algorithm that outputs an activity decision based on automatic selection from input data and a static node tree.
- Case-Based Reasoning Analysis of set of inputs and comparison to a database of possible situations and advisable behavioral outputs.
- Genetic Algorithms Genetic Programming techniques attempt to imitate the dynamics of macro-evolution by performing directed selection and modification on associations of programs, sub-routines, and assemblages of parameters.
- Neural Networks Class of machine learning techniques based on the architecture of interconnected neural components of a network. Operates through repeatedly adjusting internal numeric parameters with the goal of optimizing response to a wide variety of circumstances.
- Fuzzy Logic Utilizes numeric values to represent a degree of order in specified relationships or phenomena. The technique allows for more expressive reasoning and greater subtlety and richness than traditional Boolean or Bayesian inference.
The most successful game AIs have emerged when developers clearly identified the specific subproblems that game agents would be engaged in, and designed algorithms to optimize AI responses to those situations. Essentially, game AI programmers attempt to design agents that exhibit appropriate behaviors,...which appear to players as context-dependent expertise.
Go back to: Artificial Intelligence
Or, advance to: First Person Shooter AI Architecture
Interesting Game AI Links
[Collection of Game AI References]
[Game Artificial Intelligence]
[GameDev.net (Game Developer Site)]
[AI Depot - Knowledge Resources & Games Oriented Features]
Recommended Technical Reference
Edited by Steve Rabin, Copyright 2002, by Charles River Media, Inc., 672 pages, with accompanying Source Code CD, $69.95 in U.S.
Several Excellent Research Papers on Game AI
[Human-Level AI's Killer Application, Interactive Computer Games]
[Developing an Artificial Intelligence Engine]
General Artificial Intelligence
[AI on the Web, Massive Acedemic Links Site, UC Berkeley Computer Science Division]