| | Copyright |
| | About the Author |
| | About the Technical Reviewer |
| | Acknowledgments |
| | Tell Us What You Think |
| | Introduction |
| | | What You Will Learn |
| | | What You Need to Know |
| | | How This Book Is Organized |
| | | Conventions |
|
| | Chapter 1. A Chronology of Game Programming |
| | | Phase I: Before Spacewar |
| | | Phase II: Spacewar to Atari |
| | | Phase III: Game Consoles and Personal Computers |
| | | Phase IV: Shakedown and Consolidation |
| | | Phase V: The Advent of the Game Engine |
| | | Phase VI: The Handheld Revolution |
| | | Phase VII: The Cellular Phenomenon |
| | | Phase VIII: Multiplayer Games |
| | | In Closing |
|
| | Chapter 2. Game Architecture |
| | | Real-Time Software |
| | | The Game Logic Section |
| | | The Presentation Section |
| | | The Programming Process |
| | | In Closing |
|
| | Chapter 3. Data Structures and Algorithms |
| | | Types, Structures, and Classes |
| | | Data Structures |
| | | The Standard Template Library |
| | | In Closing |
|
| | Chapter 4. Design Patterns |
| | | Design Patterns Defined |
| | | Some Useful Programming Patterns |
| | | Usability Patterns |
| | | In Closing |
|
| | Chapter 5. User Input |
| | | The Keyboard |
| | | Mouse |
| | | Joysticks |
| | | Hardware Abstraction |
| | | Force Feedback |
| | | In Closing |
|
| | Chapter 6. Fundamental AI Technologies |
| | | Context |
| | | Structure of an AI System |
| | | Specific Technologies |
| | | In Closing |
|
| | Chapter 7. Action-Oriented AI |
| | | On Action Games |
| | | Choreographed AIs |
| | | Object Tracking |
| | | Chasing |
| | | Evasion |
| | | Patrolling |
| | | Hiding and Taking Cover |
| | | Shooting |
| | | Putting It All Together |
| | | In Closing |
|
| | Chapter 8. Tactical AI |
| | | Tactical Thinking Explained |
| | | Military Analysis: Influence Maps |
| | | Representing Tactics |
| | | In Closing |
|
| | Chapter 9. Scripting |
| | | Building a Scripting Language |
| | | Embedded Languages |
| | | Socket-Based Scripting |
| | | In Closing |
|
| | Chapter 10. Network Programming |
| | | How the Internet Really Works |
| | | The Programmer's Perspective: Sockets |
| | | Clients |
| | | A Simple TCP Server |
| | | Multiclient Servers |
| | | UDP Servers |
| | | Preventing Socket Blocks |
| | | Designing Client-Server Games |
| | | Massively Multiplayer Games |
| | | In Closing |
|
| | Chapter 11. 2D Game Programming |
| | | On Older Hardware |
| | | Data Structures for 2D Games |
| | | Mapping Matrices |
| | | 2D Game Algorithms |
| | | Special Effects |
| | | In Closing |
|
| | Chapter 12. 3D Pipeline Overview |
| | | A First Look |
| | | Fundamental Data Types |
| | | Geometry Formats |
| | | A Generic Graphics Pipeline |
| | | In Closing |
|
| | Chapter 13. Indoors Rendering |
| | | General Analysis |
| | | Occluder-Based Algorithms |
| | | Binary Space Partition Algorithms |
| | | Portal Rendering |
| | | Hierarchical Occlusion Maps |
| | | Hybrid Approaches |
| | | Hardware-Assisted Occlusion Tests |
| | | In Closing |
|
| | Chapter 14. Outdoors Algorithms |
| | | Overview |
| | | Data Structures for Outdoors Rendering |
| | | Geomipmapping |
| | | ROAM |
| | | Chunked LODs |
| | | A GPU-Centric Approach |
| | | Outdoors Scene Graphs |
| | | In Closing |
|
| | Chapter 15. Character Animation |
| | | Analysis |
| | | Explicit Versus Implicit Methods |
| | | Explicit Animation Techniques |
| | | Implicit Animation Overview |
| | | Prop Handling |
| | | A Note on Vehicles |
| | | Limb Slicing |
| | | Facial Animation |
| | | Inverse Kinematics |
| | | Blending Forward and Inverse Kinematics |
| | | In Closing |
|
| | Chapter 16. Cinematography |
| | | First-Person Shooters |
| | | Handling Inertia |
| | | Flight Simulators and Quaternions |
| | | Third-Person Cameras |
| | | Cinematic Cameras: Camera Styles |
| | | Cinematic Cameras: Placement Algorithms |
| | | Agent-Based Approaches |
| | | In Closing |
|
| | Chapter 17. Shading |
| | | Real-World Illumination |
| | | Light Mapping |
| | | The BRDF |
| | | Nonphotorealistic Rendering |
| | | In Closing |
|
| | Chapter 18. Texture Mapping |
| | | Types of Textures |
| | | Tiling and Decals |
| | | Filtering |
| | | Mipmapping |
| | | Texture Optimization |
| | | Multipass Techniques |
| | | Multitexture |
| | | Texture Arithmetic and Combination |
| | | Detail Textures |
| | | Environment Mapping |
| | | Bump Mapping |
| | | Gloss Mapping |
| | | In Closing |
|
| | Chapter 19. Particle Systems |
| | | Anatomy of a Particle System |
| | | The Particle Data Structure |
| | | Some Notes on Architecture |
| | | Speed-Up Techniques |
| | | In Closing |
|
| | Chapter 20. Organic Rendering |
| | | Nature and Complexity |
| | | Trees |
| | | Grass |
| | | Clouds |
| | | Oceans |
| | | In Closing |
|
| | Chapter 21. Procedural Techniques |
| | | Procedural Manifesto |
| | | Renderman |
| | | Real-Time Shading Languages |
| | | Types of Shaders |
| | | Texture Mapping |
| | | Particle Systems |
| | | Animation |
| | | Special Effects |
| | | In Closing |
|
| | Chapter 22. Geometrical Algorithms |
| | | Point Inclusion Tests |
| | | Ray Intersection Tests |
| | | Moving Tests |
| | | Point Versus Triangle Set Collision (BSP-Based) |
| | | Mesh Versus Mesh (Sweep and Prune Approach) |
| | | Computing a Convex Hull |
| | | Triangle Reduction |
| | | In Closing |
|
| | Appendix A. Performance Tuning |
| | | Analysis Techniques |
| | | Analysis Tools |
| | | General Optimization Techniques |
| | | Application |
| | | Efficient Data Transfer |
| | | Tuning the Geometry Pipeline |
| | | Tuning the Rasterizer Stage |
| | | Other Optimization Tools |
| | | In Closing |
|
| | Appendix B. OpenGL |
| | | Philosophy |
| | | Basic Syntax |
| | | Immediate Mode Rendering |
| | | Transformations |
| | | Camera Model |
| | | Lighting |
| | | Texturing |
| | | Working in RGBA Mode |
| | | Display Lists |
| | | Vertex Arrays |
| | | OpenGL Extensions |
| | | Efficiency Considerations |
| | | Geometric Representation |
| | | In Closing |
|
| | Appendix C. Direct3D |
| | | History |
| | | Booting Direct3D |
| | | Handling Geometry |
| | | Indexed Primitives |
| | | User Pointer Primitives |
| | | Efficient Geometry Delivery |
| | | Flexible Vertex Formats |
| | | Matrices, Cameras, and Transforms |
| | | Working with Texture Maps |
| | | Lighting |
| | | Render States |
| | | The Extension Library |
| | | Animation Helpers |
| | | In Closing |
|
| | Appendix D. Some Math Involved |
| | | Distances |
| | | Trigonometry |
| | | Vector Math |
| | | Matrices |
|
| | Appendix E. Further Reading |
| | Index |