Core Techniques and Algorithms in Game Programm
Total Page:16
File Type:pdf, Size:1020Kb
This document was created by an unregistered ChmMagic, please go to http://www.bisenter.com to register it. Thanks. [ Team LiB ] • Table of Contents • Index Core Techniques and Algorithms in Game Programming By Daniel Sánchez-Crespo Dalmau Publisher: New Riders Publishing Pub Date: September 08, 2003 ISBN: 0-1310-2009-9 Pages: 888 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 This document was created by an unregistered ChmMagic, please go to http://www.bisenter.com to register it. Thanks. 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 This document was created by an unregistered ChmMagic, please go to http://www.bisenter.com to register it. Thanks. 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 This document was created by an unregistered ChmMagic, please go to http://www.bisenter.com to register it. Thanks. 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 This document was created by an unregistered ChmMagic, please go to http://www.bisenter.com to register it. Thanks. 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 This document was created by an unregistered ChmMagic, please go to http://www.bisenter.com to register it. Thanks . Distances Trigonometry Vector Math Matrices Appendix E. Further Reading Index [ Team LiB ] This document was created by an unregistered ChmMagic, please go to http://www.bisenter.com to register. it. Thanks [ Team LiB ] Copyright Copyright © 2004 by New Riders Publishing All rights reserved. No part of this book shall be reproduced, stored in a retrieval system, or transmitted by any means—electronic, mechanical, photocopying, recording, or otherwise—without written permission from the publisher, except for the inclusion of brief quotations in a review. Library of Congress Catalog Card Number: 2003107185 Printed in the United States of America First printing: September, 2003 08 07 06 05 04 03 7 6 5 4 3 2 1 Interpretation of the printing code: The rightmost double-digit number is the year of the book's printing; the rightmost single-digit number is the number of the book's printing. For example, the printing code 03-1 shows that the first printing of the book occurred in 2003. Trademarks All terms mentioned in this book that are known to be trademarks or service marks have been appropriately capitalized. New Riders Publishing cannot attest to the accuracy of this information. Use of a term in this book should not be regarded as affecting the validity of any trademark or service mark. Warning and Disclaimer Every effort has been made to make this book as complete and as accurate as possible, but no warranty of fitness is implied. The information is provided on an as-is basis. The authors and New Riders Publishing shall have neither liability nor responsibility to any person or entity with respect to any loss or damages arising from the information contained in this book or from the use of the CD or programs that may accompany it. Publisher Stephanie Wall Production Manager Gina Kanouse Development Editors Chris Zahn Anne Marie Walker Project Editor Michael Thurston This document was created by an unregistered ChmMagic, please go to http://www.bisenter.com to register it. Thanks . Senior Indexer Cheryl Lenser Proofreader Debbie Williams Composition Gloria Schurick Manufacturing Coordinator Dan Uhrig Interior Designer Kim Scott Cover Designer Aren Howell Marketing Scott Cowlin Tammy Detrich Hannah Onstad Latham Publicity Manager Susan Nixon Dedication Higher, Faster, Stronger [ Team LiB ] This document was created by an unregistered ChmMagic, please go to http://www.bisenter.com to register it. Thanks . [ Team LiB ] 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 [email protected]. [ Team LiB ] This document was created by an unregistered ChmMagic, please go to http://www.bisenter.com to register it. Thanks . [ Team LiB ] About the Technical Reviewer This reviewer contributed his considerable hands-on expertise to the entire development process for Core Techniques and Algorithms in Game Programming. As the book was being written, this dedicated professional reviewed all the material for technical content, organization, and flow. His feedback was critical to ensuring that Core Techniques and Algorithms in Game Programming fits our readers' needs for the highest-quality technical information. Wolfgang Engel is a programmer and author, having writtenBeginning Direct3D Game Programming (Premier Press) and written and edited Direct3D ShaderX: Vertex and Pixel Shader Programming Tips and Tricks (Wordware Publishing). He has also published articles on game programming in German journals and a number of online tutorials on sites