| | | 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 |