Professional

Game Programming Gems 6, 1st Edition

  • Mike Dickheiser
  • ISBN-10: 1584504501  |  ISBN-13: 9781584504504
  • 695 Pages
  • © 2006 | Published
  • List Price = $ 69.95
  • For quantity discounts, Contact your Representative
  • For single copy purchases, visit CengageBrain.com

About

Overview

Welcome to the sixth volume of the Game Programming Gems series. With team sizes constantly expanding, developers are finding themselves pushed to become increasingly specialized. This makes it important to have cutting-edge, ready-to-use material in your specialization, as well as resources that you can call upon if you need to work outside your area of expertise. Volume 6 has been explicitly designed with your current challenges in mind. With the new generation of machines, players expect higher-fidelity models and animations, fancier physics and graphics effects, and more intelligent AI. All of these capabilities require robust teams and longer schedules, so to help ensure that your games are still delivered on time and on budget, you’ll find 50 all new articles written by experts in game technology from many different backgrounds and over twenty countries. This volume also includes a brand new section dedicated to Scripting and Data-Driven Systems, which is focused entirely on the growing trend of removing the programmer from the data-tweaking loop. So, whether you're a new game programmer starting out on this exciting path, a grizzled, industry veteran, or a most welcome visitor, we hope that you will find inspiration, insight, and at least one or two true gems to use in your world!

Additional Product Information

Features and Benefits

  • Teaches advanced AI techniques for creating cognitive models for computer-controlled characters
  • Includes the latest pixel shader and GPU programming techniques
  • Discusses unit testing and fingerprinting
  • Covers all key development areas�General Programming, Artificial Intelligence, Mathematics & Physics, Graphics, Networking & Multiplayer, Audio, and Scripting & Data-Driven Systems

Table of Contents

Foreword
Preface
About the Cover Image
Contributor Bios
SECTION 1 GENERAL PROGRAMMING
Introduction
1.1 Lock-Free Algorithms
1.2 Utilizing Multicore Processors with OpenMP
1.3 Computer Vision in Games Using the OpenCV Library
1.4 Geographic Grid Registration of Game Objects
1.5 BSP Techniques
1.6 Closest-String Matching Algorithm
1.7 Using CppUnit To Implement Unit Testing
1.8 Fingerprinting Pre-Release Builds To Deter and Detect Piracy
1.9 Faster File Loading with Access-Based File Reordering
1.10 Stay in the Game: Asset Hotloading for Fast Iteration
SECTION 2 MATHEMATICS AND PHYSICS
Introduction
2.1 Floating-Point Tricks
2.2 GPU Computation in Projective Space Using
Homogeneous Coordinates
2.3 Solving Systems of Linear Equations Using the Cross Product
2.4 Efficient Sequence Indexing for Game Development
2.5 Exact Buoyancy for Polyhedra
2.6 Real-Time Particle-Based Fluid Simulation with
Rigid Body Interaction
SECTION 3 ARTIFICIAL INTELLIGENCE
Introduction
3.1 Applying Model-Based Decision-Making Methods to Games:
Applying the Locust AI Engine to Quake III
3.2 Achieving Coordination with Autonomous NPCs
3.3 Behavior-Based Robotic Architectures for Games
3.4 Constructing a Goal-Oriented Robot for Unreal Tournament Using
Fuzzy Sensors, Finite-State Machines, and Behavior Networks
3.5 A Goal-Oriented Unreal Bot: Building a Game Agent with
Goal-Oriented Behavior and Simple Personality Using
Extended Behavior Networks
3.6 Short-Term Memory Modeling Using a Support Vector Machine
3.7 Using the Quantified Judgment Model for Engagement Analysis
3.8 Designing a Multilayer, Pluggable AI Engine
3.9 A Fuzzy-Control Approach to Managing Scene Complexity
SECTION 4 SCRIPTING AND DATA-DRIVEN SYSTEMS
Introduction
4.1 Scripting Language Survey
4.2 Binding C/C++ Objects to Lua
4.3 Programming Advanced Control Mechanisms with
Lua Coroutines
4.4 Managing High-Level Script Execution Within
Multithreaded Environments
4.5 Exposing Actor Properties Using Nonintrusive Proxies
4.6 Game Object Component System
SECTION 5 GRAPHICS
Introduction
5.1 Synthesis of Realistic Idle Motion for
Interactive Characters
5.2 Spatial Partitioning Using an Adaptive Binary Tree
5.3 Enhanced Object Culling with (Almost) Oriented Bounding Boxes
5.4 Skin Splitting for Optimal Rendering
5.5 GPU Terrain Rendering
5.6 Interactive Fluid Dynamics and Rendering on the GPU
5.7 Fast Per-Pixel Lighting with Many Lights
5.8 Rendering Road Signs Sharply
5.9 Practical Sky Rendering for Games
5.10 High Dynamic Range Rendering Using
OpenGL Frame Buffer Objects
SECTION 6 AUDIO
Introduction
6.1 Real-Time Sound Generation from Deformable Meshes
6.2 A Lightweight Generator for Real-Time Sound Effects
6.3 Real-Time Mixing Busses
6.4 Potentially Audible Sets
6.5 A Cheap Doppler Effect
6.6 Faking Real-Time DSP Effects
SECTION 7 NETWORK AND MULTIPLAYER
Introduction
7.1 Dynamically Adaptive Streaming of 3D Data for
Animated Characters
7.2 Complex Systems Based High-Level Architecture for
Massively Multiplayer Games
7.3 Generating Globally Unique Identifiers for Game Objects
7.4 Massively Multiplayer Online Prototype Utilizing
Second Life for Game Concept Prototyping
7.5 Reliable Peer-to-Peer Gaming Connections Penetrating NAT
About the CD-ROM
Index

Meet the Author

Author Bio

Mike Dickheiser

Michael Dickheiser (Raleigh, NC) is a Software Engineer with over nine years experience in team-oriented projects within the computer game industry. He has been involved in all stages of development from conceptual design, technical design and documentation, to implementation, debugging, and formal testing.Dickheiser was most recently a Senior Engineer at Red Storm Entertainment and he is now Senior Computer Scientist at Applied Research Associates.