Home    General Programming    Artificial Intelligence    Math    Physics    Graphics    Networking    Audio Programming   
Audio/Visual Design    Game Design    Production    Business of Games    Game Studies    Conferences    Schools    Contact   
State of the Industry
State Machines
A* pathfinding
Pathfinding / Movement
Group Movement
Group Cooperation
Strategy / Tactical
Animation Control
Camera Control
Player Prediction
Fuzzy Logic
Neural Nets
Genetic Algorithms
Natural Language
Tips and Advice
Tools and Libraries
Genre: RTS / Strategy
Genre: RPG / Adventure
Genre: FPS / Action
Genre: Racing
Genre: Sports
Genre: Board Games
Open Source
All Articles
Game Programming Gems
Game Programming Gems 2
Game Programming Gems 3
Game Programming Gems 4
Game Programming Gems 5
Game Programming Gems 6
Game Programming Gems 7
AI Game Programming Wisdom
AI Game Programming Wisdom 2
AI Game Programming Wisdom 3
AI Game Programming Wisdom 4
AI Summit GDC 2009
GPU Gems
GPU Gems 2
GPU Gems 3
Massively Multiplayer Game Development
Massively Multiplayer Game Development 2
Secrets of the Game Business
Introduction to Game Development
GDC Proceedings
Game Developer Magazine

AI Wisdom book series is going OUT OF PRINT
Used copies of AI Game Programming Wisdom 4 are selling for $440.00 on Amazon. There are a couple new copies of the first volume from Amazon resellers at a reasonable price ($54.73). Volumes 2 and 3 are still available, but since new books won't be printed, they will soon be just as scarce.

The whole series will soon be out of print - get your copies
before they are gone:

  • $54.73 (8 new books left from resellers) AI Game Programming Wisdom 1
  • $39.96 (43% off) AI Game Programming Wisdom 2
  • $39.96 (43% off) AI Game Programming Wisdom 3
  • $440.00 (USED PRICE - out of print premium) AI Game Programming Wisdom 4

  • Please don't contact me about AI Game Programming Wisdom 4 books. I don't have any to offer.

    Game AI: Genre - Racing / Simulation

    A Combat Flight Simulation AI Framework

    Phil Carlisle (University of Bolton and Ace Simulations Ltd.)
    AI Game Programming Wisdom 3
    Abstract: This article covers the AI framework requirements specific to an air combat based flight simulation. It explains the general AI framework that should already be in place before continuing on to describe the air combat flight simulation specific data structures, algorithms and requirements that need to be in place to deliver a playable AI opponent for such simulations.

    Intelligent Steering Using Adaptive PID Controllers

    Euan Forrester (Next Level Games Inc.)
    AI Game Programming Wisdom 3
    Abstract: As physics systems become more complex and are embedded more deeply into our games, our jobs as AI programmers become more difficult. AI characters need to operate under the same physical restrictions as the player to maintain the visual continuity of the game, to reduce the player's sense of being cheated by the computer, and to reduce the development workload necessary to create multiple physics systems which must interact with one another. Although this problem can be solved by using standard PID (Proportional-Integral-Derivative) controllers, they are difficult to tune for physics systems whose characteristics vary over time. Fortunately, control engineering provides a solution to this problem: adaptive controllers. This article focuses on Model Reference Adaptive Controllers: controllers which attempt to make the AI character's behavior match a predefined model as closely as possible within the physical constraints imposed by the game. The article comes with full source code for a demo that lets you change the handling characteristics of a missile flying towards a moving target, and watch while the PID coefficients are updated in real-time.

    Intelligent Steering Using PID Controllers

    Euan Forrester (Electronic Arts Black Box)
    AI Game Programming Wisdom 2
    Abstract: In order to achieve the realism demanded by many of today's games, physics simulations have become more complex and accurate. Although realistic physics simulations are often rewarding for human players to control, they can be frustrating from an AI programmer's perspective. As these simulations become more complex, the effects of a given input to the system become less clear, and it becomes more difficult to write a simple if...then...else logic tree to cope with every possible circumstance. Thus, new methods of controlling objects operating under these rules must be developed.

    In the context of game AI, the primary use for such control is in the steering of objects operating under the constraints of a physics system. The article will detail a solution to this problem by applying an engineering algorithm known as a Proportional-Integral-Derivative (PID) Controller that has been used for over 50 years. The article comes with full source code to a demo that let's you interactively play with the PID variables that control a rocket steering toward a moving target.

    Racing Vehicle Control using Insect Intelligence

    Alex Darby (FreeStyleGames Ltd.)
    AI Game Programming Wisdom 2
    Abstract: Despite their simplicity and inability to adapt by learning, insects and other simple animals manage to survive and navigate in the complex and unpredictable real world very well. Since evolution tends to find very efficient solutions to the problems faced by living creatures a lot of the mechanisms used by simple animals are relatively efficient, and in addition often have a potential for behavioral richness far beyond the extra processing power it takes to model them.

    This article presents a robust and extensible system architecture which is based around emergent behaviors, and several techniques which utilize principles derived from the results of academic AI research into modeling insect level intelligence - in particular vision based steering behavior utilizing simple compound eye-like sensors.

    Fast and Efficient Approximation of Racing Lines

    John Manslow
    AI Game Programming Wisdom 2
    Abstract: Racing game AI has developed to the point where it is able to challenge even the best players. To do this, an AI usually relies heavily on information stored along the length of a track, which provides it with instructions on how it should approach upcoming sections. Critically, this information is derived during a game's development, almost always from the way in which human players drive each track, and will therefore not be available for random or player created tracks. This prevents random track generators and track editors being shipped with many racing games, because it would not also be possible to provide a challenging AI that could compete against the player on all the resulting tracks. This article presents an algorithm that can be used to quickly and efficiently derive approximations to racing lines, thus providing information vital to an AI. A demonstration implementation of the algorithm in C++ is included with the article.

    The Art of Surviving a Simulation Title

    Dr. Brett Laming (Argonaut Sheffield)
    AI Game Programming Wisdom 2
    Abstract: This article aims to simplify the task of writing simulation AI by providing a number of guidelines. These were adopted after working on the space simulation, "Independence War 2" (I-War 2) and continue to bring success to the futuristic racing game, "Powerdrome". The guidelines cover many aspects from higher-level design and keeping it simple to diagnostic support and impressing the user. While they far from guarantee a successful and stress free implementation, they at least put the developer on the right path.

    Realistic Turning between Waypoints

    Marco Pinter (Badass Games)
    AI Game Programming Wisdom

    Representing a Race Track for the AI

    Gari Biasillo (Electronic Arts Canada)
    AI Game Programming Wisdom
    Abstract: This article is the first in a series of three racing AI articles and describes a practical representation of a racetrack for an AI system. The representation includes defining sectors, interfaces, the driving lines (racing line, overtaking line), path type, terrain type, walls, hairpin turns, and brake/throttle points. Methods for determining the current sector and the distance along a sector are also discussed.

    Racing AI Logic

    Gari Biasillo (Electronic Arts Canada)
    AI Game Programming Wisdom
    Abstract: This is the second article in a series of three racing AI articles that describes how to implement an AI capable of racing a car around a track. Although the AI will follow predefined driving lines, it will not rigidly follow the track like a train on rails, but merely use these lines as a guide. This goal is to have the AI produce an output that emulates human input; specifically joystick and/or key presses. Using this method, the game engine only needs to gather input from the AI controller instead of a human input device. The article will cover the basic AI framework (FSM, fixed-time step, controlling the car, simplifying with 2D), traversing sectors (anticipating the road ahead, hairpin turns), driving to a target, overtaking, handling under-steer and over-steer (detecting the car's stability, testing for stability, correcting the car), wall avoidance, other states (airborne, off the track), and catch-up logic.

    Training an AI to Race

    Gari Biasillo (Electronic Arts Canada)
    AI Game Programming Wisdom
    Abstract: This is the final article of the three article series, and shows ways to train the AI to race optimally around a racetrack. Issues covered include tuning the car handling (adjusting parameters, converging on optimum values, modifying parameter values, modifying the range, training at high simulation speeds) and real-time editing (real-time track modification, user control overriding AI).

    Competitive AI Racing under Open Street Conditions

    Joseph C. Adzima (Motocentric)
    AI Game Programming Wisdom

    Camera AI for Replays

    Sandeep V. Kharkar (Microsoft)
    AI Game Programming Wisdom

    Computing the Distance into a Sector

    Steven Ranck (Midway Home Entertainment)
    Game Programming Gems
    Abstract: This article describes a simple and fast algorithm for determining where a point is between the edges of a 2D quad (or sector). The result is a unit floating point number, where 0 indicates that the point lies on the leading edge, and where 1 indicates that the point lies on the opposite edge. The sector may be any four-sided, 2D convex shape.

    43% off discount
    "AI techniques from commercial games"
    AI Game
    Wisdom 3

    "Cutting-edge graphics techniques"
    GPU Pro 3

    Stealth BLANK Keys
    Das Keyboard
    $133 at Amazon.com
    Show everyone you're a BAD ASS!
    Bad Ass
    Unique Abyss LED Watch
    Abyss LED Touchscreen Watch

    See how it works
    On sale 40% off
    Cool Camping Gear
    Camping Gadgets
    Steampunk Gadgets
    Steampunk Decor
    Gifts for Teenage Girls
    Teenage Girl Bedroom Ideas
    Gifts for Gardeners
    Garden Gadgets