core techniques and algorithms in game programming - daniel sanchez-crespo dalmau

745 754 0
core techniques and algorithms in game programming - daniel sanchez-crespo dalmau

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

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 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 [ Team LiB ] 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 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 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 Data Structures and Algorithms Types, Structures, and Classes Data Structures The Standard Template Library In Closing Chapter Design Patterns Design Patterns Defined Some Useful Programming Patterns Usability Patterns In Closing Chapter User Input The Keyboard Mouse Joysticks Hardware Abstraction Force Feedback In Closing Chapter Fundamental AI Technologies Context Structure of an AI System Specific Technologies In Closing Chapter 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 Tactical AI Tactical Thinking Explained Military Analysis: Influence Maps Representing Tactics In Closing Chapter 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 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 dsanchez@novarama.com [ Team LiB ] This document was created by an unregistered ChmMagic, please go to http://www.bisenter.com to register it Thanks [ Team LiB ] [SYMBOL] [A] [B] [C] [D] [E] [F] [G ] [H] [I] [J] [K] [L] [M] [N] [O ] [P] [Q ] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] tables 2nd hash tables 2nd 3rd 4th multi-key tables 2nd 3rd tactical AI 2nd group dynamics boids algorithm 2nd 3rd 4th 5th formation-based movement 2nd influence maps (IMs) 2nd data structure 2nd 3rd tests for 2nd path finding 2nd A* algorithm 2nd 3rd 4th 5th 6th crash and turn algorithm 2nd 3rd 4th Dijkstra's algorithm 2nd 3rd 4th human path finding algorithm 2nd iterative-deepening A* algorithm 2nd region-based A* algorithm 2nd rule representation 2nd 3rd tagged animation 2nd 3rd 4th 5th 6th Taito history of game programming taking cover [See hiding behaviors] target selection camera placement algorithms 2nd TC method TCP (Transmission Control Protocol) 2nd 3rd TCP clients 2nd call sequences closing sockets connection process 2nd 3rd data transfer process 2nd TCP servers 2nd 3rd 4th multiclient servers 2nd concurrent servers 2nd 3rd 4th iterative servers 2nd TCP/IP 2nd TDPS (Trihedral Discretized Polyhedra Simplification) teamwork [See synchronization of AI systems] technical support [See also maintenance phase (game programming)] technology ideas based on This document was created by an unregistered ChmMagic, please go to http://www.bisenter.com to register it Thanks Tekken clipping process temporal coherence (continuous LOD policies) Tennis for two history of game programming Terragen cloud rendering terrain blocks (geomipmapping) terrain rendering [See outdoors rendering] tests for influence maps (IMs) 2nd Tetris game world rendering history of game programming player update routines presentation programming Texas Instruments history of game programming texture bottlenecks 2nd 3rd 4th texture mapping 2nd shaders 2nd 3rd 4th texture mapping [See textures]2nd [See textures] texture matrix (OpenGL) textures 3D pipelines 2nd 3rd animating blending 2nd 3rd 4th 5th arithmetic for 2nd 3rd 4th 5th 6th bump mapping 2nd Dot3 bump mapping 2nd emboss bump mapping 2nd chunk LODs cylindrical mapping 2nd decals detail textures 2nd Direct3D 2nd environment mapping 2nd filtering 2nd mipmapping 2nd 3rd geomipmapping 2nd 3rd 4th 5th gloss mapping 2nd 3rd light mapping [See light mapping] memory usage caching and paging 2nd color reduction 2nd 3rd compression 2nd This document was created by an unregistered ChmMagic, please go to http://www.bisenter.com to register it Thanks multipass rendering techniques 2nd 3rd 4th 5th multitexturing 2nd OpenGL 2nd 3rd 4th 5th procedural textures shaders 2nd 3rd 4th shadow mapping 2nd 3rd 4th 5th spherical mapping 2nd texture mapping 2nd shaders 2nd 3rd 4th tiling 2nd triangle mapping 2nd 3rd 4th types of 2nd The Getaway facial animation The Legend of Zelda history of game programming memory requirements player update routines The Lion King boids algorithm The Lord of the Rings composite design pattern The Lord of the Rings (film) blending inverse kinematics and forward kinematics The Sims content creation tools The Two Towers camera styles things (lump type) in Doom third-person cameras 2nd 3rd 4th 5th tile table (mapped games) tile tables (TT) format of tiles 2nd number of tiles 2nd tiles format of 2nd memory requirements formula number of 2nd tiling textures 2nd time-varying parameters rendering particles timing routines (performance tuning) 2nd 3rd Tokyo Telecommunications Engineering Corporation history of game programming This document was created by an unregistered ChmMagic, please go to http://www.bisenter.com to register it Thanks Tomb Raider forward kinematics quaternions third-person cameras Torrance-Sparrow-Cook model tournament fitness testing tracking shooters (shooting behaviors) 2nd 3rd traffic light example (palette rotation effects) 2nd 3rd transferring data [See data transfer process] transform stage (3D pipelines) 2nd transformation shaders (Renderman) transformations OpenGL 2nd 3rd 4th concatenation of 2nd hierarchical transforms 2nd transforms Direct3D 2nd hierarchical transforms of matrices concatenation of 2nd transitions (graphs) translation of matrices 2nd translation matrix (OpenGL) transmission (light) [See refraction] Transmission Control Protocol (TCP) 2nd 3rd transparency 2D game programming 2nd 3rd 3D pipelines 2nd of water 2nd OpenGL RGBA mode 2nd 3rd with glenzing effects 2nd with stippling effects 2nd 3rd transposition of matrices traversal operations (trees) 2nd 3rd Tread Marks ROAM algorithm Trebilco, Damian fire generator trees 2nd binary trees 2nd 3rd ordered binary trees N-ary trees 2nd quadtrees and octrees 2nd 3rd This document was created by an unregistered ChmMagic, please go to http://www.bisenter.com to register it Thanks rendering 2nd Image-Based Rendering (IBR) 2nd Orthogonal IBR method 2nd 3rd 4th Parallel IBR method 2nd 3rd 4th with billboards 2nd 3rd 4th traversal operations 2nd 3rd tries 2nd 3rd 4th triangle clipping 2nd triangle indexing [See indexed primitives] triangle reduction algorithms 2nd edge collapsing 2nd nonconservative triangle reduction 2nd 3rd progressive meshes 2nd 3rd vertex collapsing 2nd 3rd triangle splitting BSP construction 2nd 3rd triangle strips triangle texture mapping 2nd 3rd 4th triangles discarding OpenGL performance tuning point-triangle set collision tests 2nd ray-triangle intersection test 2nd 3rd ray-triangle intersection tests 2nd triangle reduction algorithms 2nd edge collapsing 2nd nonconservative triangle reduction 2nd 3rd progressive meshes 2nd 3rd vertex collapsing 2nd 3rd tries 2nd 3rd 4th trigonometric functions on older hardware 2nd trigonometry review of formulas 2nd 3rd Trihedral Discretized Polyhedra Simplification (TDPS) trilinear texture filtering Trubshaw, Roy history of game programming true-color sprites TT [See tile tables] tuning performance [See performance tuning] twin-threaded approach (real-time software loops) 2nd 3rd two-color sprites two-dimensional game programming [See 2D game programming] two-way scrollers [See scrolling games] types [See data types] This document was created by an unregistered ChmMagic, please go to http://www.bisenter.com to register it Thanks [ Team LiB ] This document was created by an unregistered ChmMagic, please go to http://www.bisenter.com to register it Thanks [ Team LiB ] [SYMBOL] [A] [B] [C] [D] [E] [F] [G ] [H] [I] [J] [K] [L] [M] [N] [O ] [P] [Q ] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] UDP (User Datagram Protocol) 2nd 3rd UDP clients 2nd call sequences UDP servers 2nd Ulrich, Thatcher chunked LOD algorithm Ultima Online history of game programming maintenance phase of game programming Ultima series history of game programming union function (sets) Unreal boids algorithm feature set execution graphs and AI systems optical effects with portal rendering portal rendering Unreal Tournament 2003 history of game programming update loops (real-time software) 2nd 3rd 4th 5th 6th 7th updating AI systems 2nd game worlds 2nd 3rd logic systems players 2nd 3rd usability patterns 2nd automatic mode cancellation (AMC) 2nd focus 2nd magnetism 2nd progress 2nd shield 2nd states 2nd User Datagram Protocol (UDP) 2nd 3rd user input force feedback 2nd 3rd hardware abstraction 2nd 3rd 4th joysticks 2nd 3rd 4th response curves 2nd 3rd 4th keyboards 2nd 3rd with DirectInput 2nd 3rd 4th This document was created by an unregistered ChmMagic, please go to http://www.bisenter.com to register it Thanks mice 2nd 3rd mouse look (first-person shooters) 2nd user pointer primitives Direct3D 2nd user-defined data types evolution of programming languages 2nd user-defined facts coding rule systems 2nd 3rd user-defined functions in Lua 2nd [ Team LiB ] This document was created by an unregistered ChmMagic, please go to http://www.bisenter.com to register it Thanks [ Team LiB ] [SYMBOL] [A] [B] [C] [D] [E] [F] [G ] [H] [I] [J] [K] [L] [M] [N] [O ] [P] [Q ] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] VAOs (vertex array object) variable-duration AI testing variance ROAM 2nd 3rd VARs (vertex array range) 2nd VAs [See vertex arrays] VBOs (vertex buffer object) 2nd vector math review of formulas cross product 2nd dot product 2nd modulo VectorC (code profiler) 2nd vectors (STL containers) 2nd vehicles and prop handling (character animation) velocity handling in first-person shooters 2nd particle systems vertex array object (VAOs) vertex array range (VARs) 2nd vertex arrays OpenGL 2nd compiled vertex arrays regular vertex arrays 2nd server-side vertex arrays 2nd 3rd 4th 5th 6th 7th vertex buffer object (VBOs) 2nd vertex buffers vertex buffers (Direct3D) declaring performance tuning 2nd vertex collapsing algorithms 2nd 3rd vertex shaders 2nd animation lighting 2nd special effects texture mapping vertex splits vertex-based facial animation 2nd vertices 2nd in Doom This document was created by an unregistered ChmMagic, please go to http://www.bisenter.com to register it Thanks vertices [See also primitives] VGA color history of game programming video cards hardware-assisted occlusion testing 2nd 3rd video game programming [See game programming] view angle selection camera placement algorithms 2nd view-dependent sorting BSP trees 2nd 3rd virtual classes pure virtual classes viscous drag particle systems visibility processing with leafy-BSPs visual parameters for particles volume rendering grass 2nd 3rd volume shaders (Renderman) volume textures volumetric cloud systems cloud rendering 2nd VTune (code profiler) 2nd [ Team LiB ] This document was created by an unregistered ChmMagic, please go to http://www.bisenter.com to register it Thanks [ Team LiB ] [SYMBOL] [A] [B] [C] [D] [E] [F] [G ] [H] [I] [J] [K] [L] [M] [N] [O ] [P] [Q ] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] WAD files history of game programming 2nd 3rd Warcraft stippling effects water animation example (palette rotation effects) 2nd 3rd water [See also oceans] wave frequency spectrum weakest enemy test (IMs) web sites NIST (National Institute of Standards and Technology) NVIDIA weighted graph data structure willing suspension of disbelief Win32 API asynchronous keyboard routines 2nd 3rd Windows 95 history of DirectX Wolfenstein history of game programming progress design pattern Wolfenstein 3D indoors rendering world transform Direct3D World Wide Web history of game programming worlds [See game worlds] Worley, Steven Renderman shaders Wozniak, Steve history of game programming [ Team LiB ] This document was created by an unregistered ChmMagic, please go to http://www.bisenter.com to register it Thanks [ Team LiB ] [SYMBOL] [A] [B] [C] [D] [E] [F] [G ] [H] [I] [J] [K] [L] [M] [N] [O ] [P] [Q ] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] Xbox history of game programming [ Team LiB ] This document was created by an unregistered ChmMagic, please go to http://www.bisenter.com to register it Thanks [ Team LiB ] [SYMBOL] [A] [B] [C] [D] [E] [F] [G ] [H] [I] [J] [K] [L] [M] [N] [O ] [P] [Q ] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] Yacc (Yet Another Compiler Compiler) Yamauchi, Fusajiro history of game programming Yet Another Compiler Compiler (Yacc) Yosemite National Park example (resolution testing) 2nd [ Team LiB ] This document was created by an unregistered ChmMagic, please go to http://www.bisenter.com to register it Thanks [ Team LiB ] [SYMBOL] [A] [B] [C] [D] [E] [F] [G ] [H] [I] [J] [K] [L] [M] [N] [O ] [P] [Q ] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] Z-buffer 2nd Zelda mapped games scrolling games [ Team LiB ] This document was created by an unregistered ChmMagic, please go to http://www.bisenter.com to register it Thanks Brought to You by Like the book? Buy it! ... 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-1 31 0-2 00 9-9 Pages: 888... video-on-demand, online capabilities, and e-commerce integrated into a simple, cost-effective, and easy-to-use solution The game console will evolve into a completely integrated, general-purpose... Tactical Thinking Explained Military Analysis: Influence Maps Representing Tactics In Closing Chapter Scripting Building a Scripting Language Embedded Languages Socket-Based Scripting In Closing Chapter

Ngày đăng: 04/06/2014, 11:55

Từ khóa liên quan

Mục lục

  • Main Page

  • Table of content

  • 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

Tài liệu cùng người dùng

Tài liệu liên quan