Section 1 General Programming
1.1 Optimization for C++ Games
1.2 Inline Functions Versus Macros
1.3 Programming with
Abstract Interfaces
1.4 Exporting C++ Classes from DLLs
1.5 Protect Yourself from DLL Hell
and Missing OS Functions
1.6 Dynamic Type Information
1.7 A Property Class for Generic
C++ Member Access
1.8 A Game Entity Factory
1.9 Adding Deprecation Facilities
to C++
1.10 A Drop-in Debug Memory
Manager
1.11 A Built-in Game Profiling Module
1.12 Linear Programming Model for
Windows-based Games
1.13 Stack Winding
1.14 Self-Modifying Code
1.15 File Management Using
Resource Files
1.16 Game Input Recording and
Playback
1.17 A Flexible Text Parsing System
1.18 A Generic Tweaker
1.19 Genuine Random Number
Generation
1.20 Using Bloom Filters to
Improve Computational
Performance
1.21 3ds max Skin Exporter and
Animation Toolkit
1.22 Using Web Cameras in
Video Games
Section 2 Mathematics
2.1 Floating-Point Tricks:
Improving Performance with
IEEE Floating Point
2.2 Vector and Plane Tricks
2.3 Fast, Robust Intersection of
3D Line Segments
2.4 Inverse Trajectory
Determination
2.5 The Parallel Transport Frame
2.6 Smooth C2 Quaternion-based
Flythrough Paths
2.7 Recursive Dimensional
Clustering: A Fast Algorithm
for Collision Detection
2.8 Programming Fractals
Section 3 Artificial Intelligence
3.1 Strategies for Optimizing Al
3.2 Micro-Threads for Game
Object Al
3.3 Managing Al with Micro-
Threads
3.4 An Architecture for RTS
Command Queuing
3.5 A High-Performance Tilebased
Line-of-Sight and
Search System
3.6 Influence Mapping
3.7 Strategic Assessment
Techniques
3.8 Terrain Reasoning for 3D
Action Games
3.9 Expanded Geometry for
Points-of-Visibility Pathfinding
3.10 Optimizing Points-of-Visibility
Pathfinding
3.11 Flocking with Teeth: Predators
and Prey
3.12 A Generic Fuzzy State
Machine in C++
3.13 Imploding Combinatorial
Explosion in a Fuzzy System
3.14 Using a Neural Network in a
Game: A Concrete Example
Section 4 Geometry Management
4.1 Comparison of VIPM Methods
4.2 Simplified Terrain Using
Interlocking Tiles
4.3 Sphere Ttees for Fast Visibility
Culling, Ray Tracing, and
Range Searching
4.4 Compressed Axis-Aligned
Bounding Box Trees
4.5 Direct Access Quadtree
Lookup
4.6 Approximating Fish Tank
Refractions
4.7 Rendering Print Resolution
Screenshots
4.8 Applying Decals to Arbitrary
Surfaces
4.9 Rendering Distant Scenery
with Skyboxes
4.10 Self-Shadowing Characters
4.11 Classic Super Mario 64
Third-Person Control and Animation
Section 5 Graphics Display
5.1 Cartoon Rendering: Real-time Silhouette Edge Detection and
Rendering
5.2 Cartoon Rendering Using
Texture Mapping and
Programmable Vertex Shaders
5.3 Dynamic Per-Pixel Lighting
Techniques
5.4 Generating Procedural Clouds
Using 3D Hardware
5.5 Texture Masking for Faster
Lens Flare
5.6 Practical Priority Buffer
Shadows
5.7 Impostors: Adding Clutter
5.8 Operations for Hardware-
Accelerated Procedural
Texture Animation
Section 6 Audio Programming
6.1 Game Audio Design Patterns
6.2 A Technique to Instantaneously
Reuse Voices in a
Sample-based Synthesizer
6.3 Software-based DSP Effects
6.4 Interactive Processing
Pipeline for Digital Audio
6.5 A Basic Music Sequencer
for Games
6.6 An Interactive Music
Sequencer for Games
6.7 A Low-Level Sound API
APPENDIX