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.
Sample Chapter - 604 kb - Chapter 7 - Action-Oriented AI
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.