Game Programming Gems 4
Third-Person Camera Navigation
Topics: Camera; Genres: Action
Abstract: For complex scenes, we must overcome some significant technical challenges to make a third-person camera interact smoothly with the world. While this problem can be solved by simply limiting the camera to fixed positions or predetermined paths, these solutions restrict the user's ability to explore freely. To allow unrestricted exploration of complex environments, it's necessary to design a dynamic and user-controllable camera. In this article, we outline a basic set of steps for building a dynamic third-person camera system, and describe a number of solutions for the trickier problems of scene-bounding and occlusion that arise in the camera's navigation of the scene.
Narrative Combat: Using AI to Enhance Tension in an Action Game
Topics: General; Genres: General
Abstract: This article discusses the creation of an AI system that can modulate difficulty and pacing for an action game. In addition to combining strongly paced elements wtih replayability and more freeform gameplay, it becomes much easier for a designer to create a well-paced level. This is because the system only requires a designer's guidelines for the overall difficulty of a particular area, while in most games, designers must extensively tweak enemy positions, spawn points, weapons, timing issues, and more to accomplish the same task. Adjusting for the player's skill level also avoids the common problem in which designers tune gameplay to their own skill level, rather than the typical user's skill level. As a result, the game becomes much too difficult for the average player. Adjusting for a player's skill allows for more seamless transitions between difficulty levels when the pacing changes.
Topics: Randomness; Genres: General
NPC Decision Making: Dealing with Randomness
Abstract: In this article, we describe an algorithm for solving multistep decision problems with randomness. The basic algorithm is called dynamic programming, or DP. Various versions of DP have been successfully used to build an excellent Tetris player and train a world-class backgammon player.
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.
Attractors and Repulsors
Topics: Pathfinding, Movement, Flocking; Genres: General
Abstract: Helping your AI-controlled entities know what to stay close to and what to avoid can go a long way in helping to generate realistic simulated behaviors. A large part of tasks such as walking through a crowd, racing down a track, or flying through space consists of staying close to some objects and avoiding others. Attractors and repulsors can be used for many purposes, including simulating flocking behaviors, collision avoidance for racing, and tracking opponents in 2D or 3D environments. We can build attraction curves - functions that determine the level of push and pull between objects - to influence the movement of our AI-controlled objects. We can also combine simple curves into more complex composite curves to build interesting emergent behaviors.
Advanced Wall Building for RTS Games
Topics: General; Genres: RTS
Abstract: Most real-time strategy (RTS) games include walls or similar passive defensive structures that act as barriers against enemy unit movement. Having an automated wall-building algorithm increases the competitiveness of nonplayer character opponents and provides a useful addition to random map generation. The original wall-building article presented a basic algorithm and discussed a few potential improvements. In this article, we will implement all of the suggested improvements and deal with more advanced issues like walling off cities, reusing existing walls, destructible natural barriers, and walling off shorelines.
Artificial Neural Networks on Programmable Graphics Hardware
Topics: Neural Networks; Genres: General
Abstract: This article shows how an artificial neural network can be implemented using a GPU-based BLAS level 3 style single-percision general matrix-matrix product (SGEMM) and an activation function pixel shader under Direct3D, version 9.