Architecture
An Architecture for Integrating Plan-Based Behavior Generation with Interactive Game Environments
Abstract: In this article, we describe an architecture called Mimesis, designed to integrate a range of intelligent components with conventional game engines. The architecture is designed to bridge the gap between game engine design and development and much of the work in AI that focuses on the automatic creation of novel and effective action sequences. Users of the system construct two parallel models of the game world, one using extensions to existing game engine code, the other using techniques for explicit modeling of actions in terms of their requirements for execution and their effects on the game world. When integrated with a game engine, Mimesis acts as a runtime behavior generator, responsible for both generating plans--coherent action sequences that achieve a specific set of in-game goals--and maintaining the coherence of thos plans as they execute in the face of unanticipated user activity. In this article, we describe the architecture, its main components, and the APIs available for integrating it into existing or new game engines.
An Object-Oriented Utility-Based Decision Architecture
Topics: Architecture; Genres: General
Abstract: This article presents an object-oriented utility-based decision architecture that has signficant advantages over explicit decision tree architectures in terms of flexibility and maintainability. The principles described in this article derive from decision theory literature and have been applied in many situations, including the weapon selection AI in the real-time strategy game Star Wars: Obi-Wan. Like traditional AI expert systems, this architecture often derives its intelligence by encoding human knowledge in the form of heuristic rules.
A Distributed-Reasoning Voting Architecture
Topics: Architecture; Genres: General
Abstract: This article discusses an alternative AI architecture composed of multiple independent reasoning modules, henceforth called advisors, plus an arbiter that performs command fusion on the inputs from the advisors. This voting-based architecture is easy to use, easy to implement, and easy to maintain.
Beyond Finite State Machines: Managing Complex, Intermixing Behavior Hierarchies
Abstract: This lecture discusses the design and implementation idioms for structuring complex, hierarchical, character behavior. This includes idioms for authoring tightly coordinated multi-character behavior, such as conversation behavior. Techniques include the use of meta- behaviors to monitor and modify the execution state of other behaviors, and the use of joint behaviors to manage multi-character coordination (avoiding ad hoc communication). Finally, advantages and challenges of moving away from imperative programming (C++) to behavioral programming are discussed.
A Subsumption Architecture For Character-Based Games
Topics: Architecture; Genres: Action
Abstract: The Subsumption Architecture was invented in 1986 by Rodney Brooks to give robust real-world behavior to robots. The technique works equally well for the "virtual robots" of the video game world. It cleanly decomposes the implementation of an AI driven character into concurrently executing layers of finite state machines (FSMs). Lower layers take care of immediate goals; upper layers take care of long-term goals. The architecture solves three major problems with character AI: minor setbacks causing a character to lose focus on a long term goal, characters getting stuck on a goal that is no longer relevant, and robust handling of animation and character physics.
An Architecture for A-Life | |
Topics: Architecture, A-Life; Genres: Action
Abstract: This chapter presents Insect AI, a straight forward architecture, notation, and design methodology for artificial life. The principles and techniques are derived from neuroethology, the study of neural control of behavior. Simple computational units are introduced and examined, and the creation of Insect AI agents is demonstrated. Insect AI agents exhibit a number of interesting properties which satisfy the characteristics of motivated behavior as defined in the ethological literature - behaviors can be grouped and sequenced, the agents are goal directed, behavior can change based on the internal state of the agent, and behaviors can persist if stimuli are removed. A number of agents are created as examples, ranging from a simple light follower to an artificial insect that shows all the characteristics of motivated behavior.
A Flexible Tagging System for AI Resource Selection
Topics: Architecture, NLP; Genres: General
Abstract: As game designs increasingly evolve away from linear, scripted gameplay experiences and toward open-ended worlds and gameplay based on emergent behaviors, gameplay has become much less predictable, and it has become increasingly difficult to create content that exactly matches the specific situation the user will experience at any given moment. Although in an ideal world, it would be possible to create content that responds to all of the different possible game states, open-ended game designs present far too many unpredictable situations, and one can never hope to create enough audio or animation content to handle all of them. However, it is possible to fit some of the specifics of the situation some of the time, and create content at varying levels of specificity. We present a flexible tagging system that allows you to create art and audio content across a wide spectrum from the most general to the most specific, along with a simple resource-selection algorithm that allows you to select the most situation-specific piece of content to use in any given situation. We also discuss potential applications of this system for audio and animation assets in detail.
Motivational Graphs: A New Architecture for Complex Behavior Simulation | |
Topics: Architecture; Genres: General
Abstract: Recent research in cognitive science and ethology has led to the development of biologically-inspired autonomous behavior models. Such models differ from classical AI models since they account for both internal state and environmental constraints. They define a new generation of systems, closer to Artificial Life and situated cognition than to classical AI.
In the present article, we introduce a new architecture based on such models. Applied to game development, this architecture enables designers and developers to easily describe, model and implement realistic autonomous software agents. This architecture, called a motivational graph, is a hybrid between rule-based approaches and connectionist systems. Especially, it uses concepts such as activity propagation to trigger modules within a hyperconnected graph. In this article, we demonstrate the benefits of this approach: multitasking, opportunism, tradeoff and emergence.
Minimizing Agent Processing in Conflict Desert Storm
Topics: Architecture; Genres: General
Abstract:
Using a Spatial Database for Runtime Spatial Analysis
Topics: Architecture; Genres: FPS
Abstract: AI developers have employed a number of different techniques for performing spatial reasoning about a game world using precomputed "hints" placed by level designers or automated game-world analysis tools. However, as game worlds increasingly feature larger numbers of AI characters and moveable physically-modeled objects, it becomes increasingly important to model the ways that the dynamic aspects of the ever-changing game world influence an AI's spatial reasoning. We discuss a spatial database technique that allows you to perform spatial reasoning about any number of different factors that can potentially affect an AI agent's reasoning about the game environment and techniques for combining multiple factors together to construct desirability heuristics. A spatial database can also allow you to implicitly coordinate the activities of multiple AI agents simply by virtue of sharing the same data structure.
Representational AI Planning Techniques Charles Martin (University of Chicago)
Game Developers Conference Proceedings, 2003.
Topics: Architecture, Planning; Genres: General
Abstract: This talk presents representational AI planning techniques and how they can be layered on top
of existing game AI. These techniques explicitly manipulate representations of the world to
simulate and choose between alternative behaviors. This is contrasted with situational AI
techniques, in which behaviors depend directly on the current state. The exciting work in
game AI over the past couple of years remains primarily situational. These techniques will
always be crucial to maintaining a satisfying real-time play experience. By layering
representational planning over situational AI, we can hope to develop a more satisfying
through-line, more strategic behavior, better in-game understanding of the player experience,
and richer design vocabularies for building better games. This talk covers the essential
elements of representational planning techniques, motivated by specific game examples,
and documented with references and resources for further exploration.
Architecting a Game AI
Topics: Architecture; Genres: General
Abstract:
An Efficient AI Architecture using Prioritized Task Categories
Topics: Architecture; Genres: General
Abstract: Real-time games have many diverse subsections: rendering, AI, collision detection, player-input and audio are just a few. Each of these tasks has a finite amount of time in which to execute, each is trying to do so as quickly as possible, and all of them must work together to give a rich, detailed gaming world. This article concentrates on the AI component and specifically, how to distribute it over time and make it fast for real-time games. It also details how to avoid processing until it's absolutely necessary. The goal will be to structure our AI so that it can execute quickly and efficiently. Two benefits will be realized by doing this; our games will run more smoothly and we'll have freed up the necessary processing power to bring about even more advanced AI.
An Architecture Based on Load Balancing
Topics: Architecture; Genres: General
Abstract:
A Simple Inference Engine for a Rule-Based Architecture | |
Topics: Architecture; Genres: General
Abstract:
Implementing a State Machine Language | |
Topics: Architecture, FSM, State Machines, Scripting; Genres: General
Abstract: This article presents a robust way to structure your state machines with a simple language. This State Machine Language will not only provide structure, but it will unleash some powerful concepts that will make programming games much easier. While the language itself is simple, it embodies some very important software engineering principles such as simplicity, maintainability, robustness, and ease of debuggine. The following article, "Enhancing a State Machine Language through Messaging," expands on this language with a powerful communication technique using messages. Each article has full soure code on the accompanying CD-ROM.
Enhancing a State Machine Language through Messaging | |
Topics: Architecture, FSM, State Machines, Scripting; Genres: General
Abstract: The previous article, "Implementing a State Machine Language," set the groundwork for a powerful language that can structure state machines in a simple, readable, and very debuggable format. In this article, that language will be expanded to encompass the problem of communication between AI game objects. This communication technique will revolutionize the State Machine Language by allowing complicated control flow and timers. Full source code is included on the accompanying CD-ROM.
Blackboard Architectures | |
Topics: Architecture; Genres: General
Abstract: The blackboard architecture is a simple technique for handling coordination between agents. Although simple to implement, the architecture has proven elegant and powerful enough to be useful for problems ranging from synthetic character control to natural language understanding and other reasoning problems. This article explains the canonical blackboard architecture and shows many examples of how a game AI can benefit.
A General Purpose Trigger System | |
Topics: Architecture, Trigger System; Genres: General
Abstract: This article describes the implementation of a general-purpose centralized Trigger System. A Trigger System is used to keep track of events in the game world, and to optimize processing agents need to perform to recognize these events. Centralizing the Trigger System allows for culling by priority and proximity before delivering Trigger events to agents. The article and companion CD include working code for a stimulus-response Trigger System. Enhancements are discussed to extend the system to handle processing a grouping hierarchy of agents, in addition to individual agents.
Introduction to Bayesian Networks and Reasoning Under Uncertainty
Topics: Architecture, Bayesian Networks; Genres: General
Abstract: Since the 1990s, probabilistic inference techniques, and the specific subfield of Bayesian networks, have become immensely popular in the academic AI community. The game AI field, however, seems to have missed the boat. This is unfortunate, because Bayesian reasoning techniques can be extraordinarily helpful in getting your AI to reason about situations in a human-like fashion. This article provides a thorough introduction to the underlying concepts of probabilistic reasoning techniques and Bayesian networks, and describes a number of specific examples of the ways you can use them in game AI systems to perform more human-like reasoning.
A Rule-Based Architecture using Dempster-Shafer Theory | |
Topics: Architecture, Dempster-Shafer; Genres: General
Abstract: DST is a variant of probability theory that explicitly models ignorance and uncertainty. Instead of reasoning on discrete events, it manipulates sets of possible events when evidence is imprecise or partially contradictory. Since DST obeys axioms that are less restrictive than those of classic probability, it may apply in more circumstances.
An Optimized Fuzzy Logic Architecture for Decision-Making
Topics: Architecture, Fuzzy Logic; Genres: General
Abstract:
A Flexible Goal-Based Planning Architecture
Topics: Architecture; Genres: General
Abstract:
First-Person Shooter AI Architecture
Topics: Architecture; Genres: FPS, Action
Abstract: This article provides a basic
introduction to building an AI architecture for a first-person shooter game (such as Quake or Unreal) or a first-person sneaker (such as Thief: The Dark Project). We discuss the major components of an FPS AI (including specific subsystems for animation, movement and pathfinding, behavior, combat, sensory modelling, and scripting and trigger systems) and how those components should fit together.
Architecting an RTS AI
Topics: Architecture; Genres: RTS
Abstract: RTS games are one of the more thorny genres as far as AI is concerned, and a good architecture is necessary to ensure success. Most examples presented in this article are taken from the work done on Empire Earth. Issues include game components (civilization manager, build manager, unit manager, resource manager, research manager, and combat manager), difficulty levels, challenges (random maps, wall building, island hopping, resource management, stalling), and overall strategies.
An Economic Approach to Goal-Directed Reasoning in an RTS
Topics: Architecture; Genres: RTS
Abstract: In this article, we discuss one approach to creating an agent for a real-time strategy game, using the Utility Model. This approach takes Economic theories and concepts regarding consumer choice, and creates a mapping onto our game agent's decision space. We explain relevant AI terminology (goal-directed reasoning, reactive systems, planning, heuristic functions) and Economic terminology (utility, marginal utility, cost, production possibilities), and introduce a simplistic RTS example to provide a framework
for the concepts.
A Extensible Trigger System for AI Agents, Objects, and Quests
Topics: Architecture, Trigger System, Scripting; Genres: General
Abstract:
Action-Based Discretization for AI Search Todd Neller (Gettysburg College)
Game Developers Conference (Audio only), 2002.
Topics: Architecture, Pathfinding; Genres: General
Abstract: For agents to act intelligently in continuous, dynamic environments, some facility for look-ahead
is necessary. In order to apply AI search techniques to continuous problems, one must first form a discrete
approximation of the continuous problem. State-space-based discretization techniques (such as waypoints and
additional state) suffer computationally when the environment is very dynamic, making it necessary to keep
track of many changing variables. An alternate technique focuses on discretizing continuous action spaces
(how to act), and action timing (when to act). So long as the environment is efficiently simulated, the
complexity (dimensionality) of the state space is irrelevant. Since complex actions can arise from a few
simple action primitives, it is possible to synthesize complex actions dynamically with search. Lecture
attendees learn about the fundemental trade-offs between state-space discretization and action/action-timing-space
discretization. Additionally, they learn new algorithms that perform such discretization autonomously.
Managing AI with Micro-Threads | |
Topics: Architecture; Genres: General
Abstract:
Micro-Threads for Game Object AI | |
Topics: Architecture; Genres: General
Abstract: Presents code and concepts to create hundreds of low-overhead threads by manipulating the stack. This technique has notable benefits in terms of AI load balancing and the author has implemented the architecture on systems ranging from the PC to the GameBoy.
Stratagies for Optimizing AI
Topics: Architecture, Optimization; Genres: General
Abstract: Presents 11 strategies for optimizing AI, along with tips and examples for each. 1. Use event-driven behavior rather than polling. 2. Reduce redundant calculations. 3. Centralize cooperation with managers. 4. Run the AI less often. 5. Distribute the processing over several frames. 6. Employ level-of-detail AI. 7. Solve only part of the problem. 8. Do the hard work offline. 9. Use emergent behavior to avoid scripting. 10. Amortize query costs with continuous bookkeeping. 11. Rethink the problem.
Creature Smarts: The Art and Architecture of a Virtual Brain Robert Burke, Damian Isla, Marc Downiew, Yuri Ivanov, Bruce Blumberg (M.I.T. Synthetic Characters Group)
Game Developers Conference Proceedings, 2001.
Topics: Architecture; Genres: General
Abstract: This lecture describes the process of character creation from a behavior-based standpoint.
Drawing upon experience designing interactive installations, the speakers discuss the components necessary
to take a character from its initial artistic design phase through to its implementation as an
autonomous agent in a dynamic virtual world. In designing these virtual creatures, the Synthetic
Characters Group at the MIT Media Lab draws inspiration from animal behavior, experimental biology,
and the brain and cognitive sciences. The speakers discuss how the lessons drawn from these diverse
fields can inform the design of a character's cognitive architecture, perception system, short-term
and associative memory, emotion system, motor system, and learning. The primary case study used is
Duncan, an autonomous sheepdog first presented at the Game Developers Conference in 2000. Intelligence
is a problem that can be tackled in layers, by breaking its components into discreet subsystems as
suggested by nature. Under this system, in the end, doing things right is easier. Enforcing perceptual
honesty and making use of biologically inspired cognitive models results in more lifelike behavior.
Expressiveness is key; if it's in the character, show it. AI is not an afterthought; an interactive
system should be designed with AI in mind from the beginning.
The Future of AI in Games: A Personal View Richard Evans (Lionhead Studios)
Game Developer Magazine, August 2001.
Topics: Architecture, Learning, History; Genres: General
Abstract:
Designing a General Robust AI Engine | |
Topics: Architecture, FSM, State Machines, Scripting; Genres: General
Abstract:
A Finite-State Machine Class | |
Topics: Architecture, FSM, State Machines; Genres: General
Abstract: Simple Finite-State Machines are powerful tools used in many computer game AI implementations. This article introduces a generic C++ class that implements a Finite-State Machine that is useful to the novice for learning about Finite-State Machines and as a building block for more complex AI implementations in development projects. The processes of a Finite-State Machine are presented, an example game implementation is offered as an example of Finite-State Machine usage, and source code illustrates how finite-state functionality can be implemented in a generic manner.
More AI in Less Processor Time: 'Egocentric' AI Ian Wright and James Marshall
Available Online at Gamasutra, 2000.
Topics: Architecture; Genres: General
Abstract: Discusses a technique for confining per frame AI processing. Covers time-slicing the processing with dynamic suspension and reactivation, running AI code at different frequencies, and staggering AI processing relative to each other to prevent processing spikes.
Designing AI Engines with Built-in Machine Learning Capabilities Zhimin Ding
Game Developers Conference Proceedings, 1999.
Topics: Architecture, Learning; Genres: General
Abstract: A game engine usually consists of a set of 3D environments and a collection of simulated
interactive characters. The behaviors of these characters are often specified in an ad hoc fashion
with if...then... statements. This is both tedious and inflexible. An alternative solution
is to assign an AI engine to each of these characters and let their behaviors evolve. This is
possible if the AI engine has built-in learning capabilities. This presentation introduces machine
learning technologies that combine system identification and optimal control into an integrated AI engine.
The AI engine does not assume any prior knowledge abou the system under its control and synthesize
an optimal control strategy at run time. Once you have completed the interface of the AI engine with
the characters through the simulated sensors and actuators, you can assign a goal to each of the
characters and let them evolve interesting interactive behaviors.
Developing an Artificial Intelligence Engine John Laird, Michael van Lent
Game Developers Conference Proceedings, 1999.
Topics: Architecture; Genres: General
Abstract: As computer games become more complex and consumers demand more sophisticated
computer-controlled agents, developers are required to place a greater emphasis on the artificial
intelligence aspects of their games. One source of sophisticated AI techniques is the academic
artificial intelligence community. This lecture presents our recent efforts to develop a behavior engine
based on state-of-the-art artificial intelligence techniques from the academic research community.
The first part of the behavior engine is a large knowledge base of game independent goals, strategies,
and tactics. By adding a small amount of game specific information the behavior knowledge baase can
be easily applied to any game within a genre. The second part of the behavior engine is the Soar
artificial intelligence architecture, which applies the behavior knowledge base to generate intelligent
behaviors for agents in a game. Our behavior engine, which has been interfaced with Quake II and Descent III,
draws on advanced AI techniques such as goal-directed reasoning, hierarchical decomposition and machine
learning.
AI for Games and Animation: A Cognitive Modeling Approach John Funge
Available Online at Gamasutra, 1999.
Topics: Architecture; Genres: General
Abstract:
Project AI Mark Lewis Baldwin
Computer Game Developers Conference Proceedings, 1998.
Topics: Architecture; Genres: General
Abstract:
Multiple Character Interaction Between Believable Characters Adam Frank, Andrew Stern
Computer Game Developers Conference Proceedings, 1998.
Topics: Architecture; Genres: General
Abstract:
Hardcore AI for the Computer Games of Tomorrow John Funge
Computer Game Developers Conference Proceedings, 1998.
Topics: Architecture; Genres: General
Abstract:
Building Advanced Autonomous AI Systems for Large Scale Real Time Simulations John Laird, Randolph Jones
Computer Game Developers Conference Proceedings, 1998.
Topics: Architecture; Genres: General
Abstract:
Making the Play: Team Cooperation in Microsoft Baseball 3D Steve Rabin (WizBang Software Productions)
Computer Game Developers Conference Proceedings, 1998.
Topics: Architecture, Cooperation; Genres: Sports, Baseball
Abstract: Explains a technique for coordinating 9 fielders during defensive play so that they cooperate and can dynamically cover each other's positions if needed. The technique involves using a manager entity to assign jobs by priority based on the ball and baserunner positions, instead of each player having a static job, like cover first base.
Incorporating Motion Capture Animation into an AI Engine Wyeth Ridgway (Zombie)
Game Developer Magazine, June 1998.
Topics: Animation, Architecture; Genres: General
Abstract:
Adding Planning Capabilities to Your Game AI W. Brian Stout
Game Developer Magazine, January 1998.
Topics: Planning, Architecture; Genres: General
Abstract:
Representing Artificial Personalities Greg Pisanich and Michael Prevost
Computer Game Developers Conference Proceedings, 1997.
Topics: Architecture; Genres: General
Abstract:
Inside NHL Powerplay 96: What Are They Thinking? David Roberts
Computer Game Developers Conference Proceedings, 1997.
Topics: Architecture, Scripting; Genres: Sports, Hockey
Abstract:
Cyberlife: A Biologically Inspired Architecture for Games Toby Simpson
Computer Game Developers Conference Proceedings, 1997.
Topics: Architecture; Genres: General
Abstract:
The Making of HyperBlade Stuart Rosen (WizBang! Software Productions), Robert Duisberg (WizBang! Software Productions)
Game Developer Magazine, August 1996.
Topics: Scripting, Architecture; Genres: General
Abstract:
|