Table of Contents
Introduction.
I. GAMEPLAY PROGRAMMING.
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.
2. Game
Architecture.
Real-Time Software. The Game Logic Section. The Presentation
Section. The Programming Process. In Closing.
3. Data Structures
and Algorithms.
Types, Structures, and Classes. Data Structures. The Standard
Template Library. In Closing.
4. Design Patterns.
Design Patterns Defined. Some Useful Programming Patterns.
Usability Patterns. In Closing.
5. User Input.
The Keyboard. Mouse. Joysticks. Hardware Abstraction. Force
Feedback. In Closing.
6. Fundamental AI Technologies.
Context. Structure of an AI System. Specific Technologies. In
Closing.
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.
8. Tactical AI.
Tactical Thinking Explained. Military Analysis: Influence Maps.
Representing Tactics. In Closing.
9. Scripting.
Building a Scripting Language. Embedded Languages. Socket-Based
Scripting. In Closing.
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.
II. ENGINE PROGRAMMING.
11. 2D Game Programming.
On Older Hardware. Data Structures for 2D Games. Mapping Matrices.
2D Game Algorithms. Special Effects. In Closing.
12. 3D Pipeline
Overview.
A First Look. Fundamental Data Types. Geometry Formats. A Generic
Graphics Pipeline. In Closing.
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.
14.
Outdoors Algorithms.
Overview. Data Structures for Outdoors Rendering. Geomipmapping.
ROAM. Chunked LODs. A GPU-Centric Approach. Outdoors Scene Graphs.
In Closing.
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.
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.
17. Shading.
Real-World Illumination. Light Mapping. The BRDF. Nonphotorealistic
Rendering. In Closing.
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.
19. Particle
Systems.
Anatomy of a Particle System. The Particle Data Structure. Some
Notes on Architecture. Speed-Up Techniques. In Closing.
20.
Organic Rendering.
Nature and Complexity. Trees. Grass. Clouds. Oceans. In Closing.
21. Procedural Techniques.
Procedural Manifesto. Renderman. Real-Time Shading Languages. Types
of Shaders. Texture Mapping. Particle Systems. Animation. Special
Effects. In Closing.
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.
III. APPENDICES.
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.
Part 1. Chronology Of Game Programming. Part 2. Game Architecture.
Part 3. Data Structures and Algorithms. Part 4. Design Patterns.
Part 5. User Input. Parts 6, 7I, and 8: Fundamental AI
Technologies, Action-Oriented AI, and. Tactical AI. Part 9.
Scripting. Part 10. Network Programming. Part 11. 2D Programming.
Part 12. 3D Pipeline Overview. Part 13. Indoors Rendering. Part 14.
Outdoors Algorithms. Part 15. Character Animation. Part 16.
Inematography. Part 17. Shading. Part 18. Texture Mapping. Part 19.
Particle Systems. Part 20. Organic Rendering. Part 21. Procedural
Techniques. Part 22. Geometrical Algorithms. Appendix A:
Performance Tuning. Appendix B: OpenGL. Appendix C: Direct3D.
Appendix D: Some Math Involved.
Index.Promotional Information
To even try to keep pace with the rapid evolution of game
development, you need a strong foundation in core programming
techniques-not a hefty volume on one narrow topic or one that
devotes itself to API-specific implementations. Finally, there's a
guide that delivers! As a professor at the Spanish university that
offered that country's first master's degree in video game
creation, author Daniel Sanchez-Crespo recognizes that there's a
core programming curriculum every game designer should be well
versed in-and he's outlined it in these pages! By focusing on
time-tested coding techniques-and providing code samples that use
C++, and the OpenGL and DirectX APIs-Daniel has produced a guide
whose shelf life will extend long beyond the latest industry trend.
Code design, data structures, design patterns, AI, scripting
engines, 3D pipelines, texture mapping, and more: They're all
covered here-in clear, coherent fashion and with a focus on the
essentials that will have you referring back to this volume for
years to come.
About the Author
Daniel Sánchez-Crespo Dalmau is a professor at Pompeu
Fabra University in Barcelona, Spain where he co-organized and
serves as the current director of Spain's first Master's Degree in
Video Game Creation. He also founded Novarama, an independent game
studio in Barcelona that focuses on creating innovative games for
the PC/Xbox platform. As a columnist he has been a frequent
contributor to Byte Magazine Spain, Game Developer Magazine, and
the Gamasutra web site, publishing more than 40 articles. Send
comments about the book to him at dsanchez@novarama.com.