CDN$ 57.95
  • List Price: CDN$ 128.95
  • You Save: CDN$ 71.00 (55%)
In Stock.
Ships from and sold by Gift-wrap available.
Game Programming Gems 6 has been added to your Cart
Have one to sell?
Flip to back Flip to front
Listen Playing... Paused   You're listening to a sample of the Audible audio edition.
Learn more
See all 2 images

Game Programming Gems 6 Hardcover – Mar 7 2006

See all formats and editions Hide other formats and editions
Amazon Price
New from Used from
"Please retry"
CDN$ 57.95
CDN$ 51.45 CDN$ 20.91

Unlimited FREE Two-Day Shipping for Six Months When You Try Amazon Student

No Kindle device required. Download one of the Free Kindle apps to start reading Kindle books on your smartphone, tablet, and computer.

  • Apple
  • Android
  • Windows Phone
  • Android

To get the free app, enter your e-mail address or mobile phone number.

Product Details

  • Hardcover: 695 pages
  • Publisher: Charles River Media; 1 edition (March 7 2006)
  • Language: English
  • ISBN-10: 1584504501
  • ISBN-13: 978-1584504504
  • Product Dimensions: 3.8 x 19.7 x 24.1 cm
  • Shipping Weight: 1.4 Kg
  • Average Customer Review: Be the first to review this item
  • Amazon Bestsellers Rank: #593,620 in Books (See Top 100 in Books)
  •  Would you like to update product info, give feedback on images, or tell us about a lower price?

  • See Complete Table of Contents

Product Description


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

About the Author

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.

Customer Reviews

There are no customer reviews yet on
5 star
4 star
3 star
2 star
1 star

Most Helpful Customer Reviews on (beta) HASH(0xa834d8a0) out of 5 stars 3 reviews
53 of 54 people found the following review helpful
HASH(0xa835cc18) out of 5 stars Good bag of tricks for advanced game programmers April 5 2006
By calvinnme - Published on
Format: Hardcover
This is the latest volume in the game programming gems series that is now six years old. This book, like the others in the series, is a collection of articles written by industry experts for the advanced game programmer. Because it covers so much ground with little or no background information, I doubt that one reader will be able to appreciate the whole book. The book comes with a CD that has source code for all of the articles, which is very helpful.

I'm a multimedia programmer rather than a game programmer, and I found quite a few nuggets in this edition. Among them was the article on using OpenCV, which is the open source computer vision library, and also the article on CPPUnit, which can be used for unit testing of any type of software, not just games. The section on math and physics was the least helpful. It either set the bar too low with easy articles like "How to do floating point faster than hardware", or set the bar too high with difficult terse articles such as "Real-Time Particle-Based Fluid Simulation". However, if you are into game physics, this section might be something you really enjoy. In the AI section, it seemed like I had seen most of the material before. The last article though was really unique - "Constructing a Goal-Oriented Robot for UnrealTournament Using Fuzzy Sensors, Finite-state Behaviors and Behavior Networks". This is an outstanding article for those interested in robots in games. The whole section on scripting was worthwhile. I especially enjoyed the Script language survey at the front of the section, since this is a moving target with many languages to choose from. The graphics section is quite advanced, and unless "Realtime Rendering" seems like light bedtime reading to you, most of the articles will probably not make much sense. My favorite section of the book was the one on audio for two reasons. First, most game programming books ignor this subject entirely. Second, it is hard to find readable books or articles on the subject with the effects presented in plain language as this section did in all five articles. I notice that Amazon does not show the table of contents, so I do that here:


Introduction 1.1 Game Object Component System 1.2 Closest- String Matching Algorithm 1.3 Implementing Lock-Free Algorithms 1.4 Computer Vision in Games using the OpenCV library 1.5 Using CPPUnit to implement unit testing 1.6 Visualizing Performance Data 1.7 Faster Loading with Access-Based File Reordering 1.8 Stay in the Game: Asset Hotloading for Fast Iteration 1.9 Geographic Grid Registration of Game Objects 1.10 Real-Time Continuous Profiling 1.11 Fingerprinting Prerelease Builds to Deter and Detect Piracy 1.12 The Dynamic Actor Layer


Introduction 2.1 Efficient Sequence Indexing 2.2 How to do floating point faster than hardware. 2.3 Solving linear systems by using the cross product 2.4 Real-Time Particle-Based Fluid Simulation 2.5 Exact Buoyancy for Polyhedra


Introduction 3.1 Designing a Multi-layer Pluggable AI Engine Framework 3.2 Smart Scene Load Management using Fuzzy Logic 3.3 Achieving coordination with autonomous NPC's 3.4 Using a Quantified Judgment Model for Engagement Analysis 3.5 Short-term memory using support vector machine (SVM) 3.6 Applying Model-Based Decision-Making Methods to Games 3.7 Constructing a Goal-Oriented Robot for UnrealTournament Using Fuzzy Sensors, Finite-state Behaviors and Behavior Networks


Introduction 4.1 A Script language survey 4.2 Managing High-Level Scripts Execution within 4.3 Automatic Function Binding for Game Scripting and Networking 4.4 Programming advanced control mechanisms with Lua coroutines 4.5 Binding C/C++ objects to Lua


Introduction 5.1 Automatic Realistic Idle Motion Synthesis for Interactive Characters" 5.2 GPU Terrain Rendering 5.3 Rendering Road Signs Sharply 5.4 Interactive Fluid Dynamics and Rendering on the GPU 5.5 Spatial Partitioning using an Adaptive Binary Tree 5.6 Enhanced Object Culling with (Almost) Oriented Bounding Boxes 5.7 Fast per-pixel lighted scenes with a high number of lights 5.8 Efficient Sky Rendering Techniques 5.9 High Dynamic Range Rendering using OpenGL Frame Buffer Objects 5.10 Skin Splitting for Optimal Skin Rendering


Introduction 6.1 Real- Time Sound Generation From Deformable Meshes 6.2 Volume Control Through Chained Busses 6.3 Faking Real-time DSP Effects 6.4 A lightweight oscillator for ambient sound generation 6.5 Cheap Doppler effect


Introduction 7.1 Complex High-Level Systems 7.2 Reliable Peer-to-Peer Gaming Connection Penetrating Firewall and NAT 7.3 Massively Multiplayer Online Prototype (MMOP): Utilizing Second Life for Game Concept Prototyping 7.4 Dynamically Adaptive Streaming of 3D Data for Animated Characters 7.5 Generating globally unique identifiers for game objects About the CD-ROM

HASH(0xa835cf48) out of 5 stars watch this trend April 15 2007
By W Boudville - Published on
Format: Hardcover
One interesting feature of this book on game programming is how graphics does NOT dominate the discussion. Most books on the subject are chock-a-block with every graphics tip you could imagine. But Dickheiser does not write for the novice. He has gathered a set of papers (chapters) that try to delineate the research boundary. It is a measure of the rising maturity of the field, and the complexity of many games, that graphics is relatively deprecated.

Though I hasten to add that there are still the pretty colour plates of renderings, and several chapters on these methods.

Why is the book symptomatic of the changing trends? In part because graphical methods are starting to saturate. The techniques are now good enough for near-photorealistic impressions. If you look carefully at the non-graphics chapters, you see that they tackle non-trivial problems arising from evermore intricate games. One instance is the use of AI-style decision making methods for how a game proceeds. When well coded, it can give behaviour of characters that is more intelligent, hence yielding a more interesting game. Another chapter looks at the learning process in AI, where a player might change strategies. Here, the research use of Support Vector Machines is suggested as apropos for commercial game development.

Professionally, you should pay attention to the book for the trend it exemplifies. You probably got into game programming because you were attracted by the graphics. But as graphics methods peak, the value added aspect of games is starting to shift towards the story line and how elaborate is the game logic.
13 of 21 people found the following review helpful
HASH(0xa835fbc4) out of 5 stars Programming Tips from the Pros April 3 2006
By John Matlock - Published on
Format: Hardcover
Intended for the intermediate to advanced game programmer, this is a book that will literally have something for everyone. It contains fifty-two 'gems' that is, articles on how to some particular aspect of game programming. Sophisticated game programming is probably the most complex programming there is. And this book goes into some pretty sophisticated programming details.

For instance:

1.2 Using Multicore Processors - New software that facilitates programming to make the most effective use of dual/triple core CPUs.

2.5 - Exact Buoyancy for Polyhedra - Your game character has built a raft. How does it look like it's floating realistically?

5.9 - Practical Sky Rendering - The sky is so simple, unless, of course you want it to look real. ==There is no question that the main driving force for faster computers is to make for more realistic gaming. And the faster computers allow more sophisticated programming to be done to make the grass wave realistically.

This is probably not a book you're going to sit down and read from cover to cover. You'll probably scan through and read the ones that are applicable to just what you need to do next. But then in a couple of weeks, in a couple of months....