| Game
                              Programming Gems 3Author: 
                              Edited by Dante Treglia
 Publisher:   Charles River Media
 ISBN:   1-58450-233-9
 Purchasing: [Amazon.Com]
                              - RRP US$69.95
 Reviewed:     11th September 2001
 Front 
                                Cover Shot: Overview This
                              is the third volume in one of the more high
                              profile, and definitely successful, Game
                              Programming Gems series. Where the first
                              volume set out to 'do it differently' to previous
                              game programming manuals (with the possible
                              exception of the graphics gems series) -
                              it's essentially an archive by many different
                              authors (67 are credited in this volume) on many
                              different game related subjects. Another
                              Year, another volume...The
                              Game Programming Gems series launches a new
                              volume at, or around, the annual SIGGRAPH
                              exhibition (end of July this year). Typically the
                              new volume is presented to attendee's, and you can
                              then buy it (in shops) shortly after the
                              exhibition finishes.
 The
                              first book was different, the second book revised
                              the format slightly and carried on where it left
                              off, this just keeps the ball rolling. Which is
                              far from a bad thing - with a book like this,
                              where the format has proven to be successful why
                              change?  One
                              thing that some might notice is that the editor of
                              the first two volumes (Marc DeLoura) has moved
                              over to let Dante Treglia move in. Whilst the
                              editor acts as the decision maker and overall
                              coordinator, there isn't much in the book that you
                              could directly attribute to him - the majority of
                              the content is written by the other authors. This
                              book presents 67 new 'gems' for the collection,
                              which conveniently matches the number of authors
                              quoted above. However, that doesn't mean that
                              there is one author per gem - several authors pop
                              up twice in this volume, and several authors work
                              together on one gem. Given the recommended price
                              tag of US$69.95, it makes (by laws of averages)
                              each gem cost US$1.04 - a rather small value
                              really. Over
                              the 3 volumes of this book now available we have a
                              whopping 200 gems (63 in volume 1, 70 in volume 2
                              and 67 in this volume). Each of the volumes are
                              pretty much the same physical dimensions (and all
                              hard-back), with this particular volume covering
                              663 pages. Broader
                              coverageOne of the criticisms I made when reviewing
                              the previous two volumes was it's rather biased
                              and narrow view of game programming, in the first
                              volume there was no mention of audio or network
                              programming, the second one added a small section
                              on audio programming, and this third version has
                              continued the audio section and added the
                              networking section. Its good to see a better
                              coverage - and not just AI, graphics and
                              C/C++ optimization tricks. Having said that, they
                              still do occupy the greater proportion of 'gems' -
                              19 graphics gems to 9 network and 7 audio gems.
 The
                              range of gems on offer is as good as ever - with
                              67 gems available, you're likely to find plenty
                              specific to your current (or future) interests,
                              yet at the same time there will be quite a few
                              that are of no interest or use to you. Having said
                              that, assuming you have the time - reading the
                              gems about things that aren't obviously
                              interesting can prove useful and enlightening. Industry
                              Professional Display BoardThere are several reasons why this book is as
                              useful as it is successful is that the majority of
                              the authors work in the games industry and/or
                              related industries. This means that the authors
                              either have direct experience, or are experts in
                              their respective fields. At the same time it poses
                              one big problem: the book becomes very corporate,
                              and in some cases you almost get an impression of
                              "look what I can do!" and "we used
                              this brilliant technique in our game, which is why
                              it's great". For the most part this won't
                              bother you, but in some cases it detracts from the
                              very reason you'll be reading this book - to learn
                              cool new things.
 As
                              one example, ATI and their developers pop up in
                              several places in the graphics section - not a bad
                              thing, they are currently the top-dogs of the 3D
                              graphics card market. However, one of their more
                              useful (to me) gems 'Textures as Lookup Tables
                              for Per-Pixel Lighting Computations' is
                              specific to the ATI/Radeon graphics cards (despite
                              using the standard D3D8.1 interfaces). In
                              particular, they use the pixel shaders version
                              1.4, which the GeForce 4 series doesn't support. I
                              fully appreciate that the Radeon8500 may be the
                              better card for this trick, but other articles
                              I've read online have at least suggested (if not
                              demonstrated) ways you can get a similar effect
                              running on the GeForce 4's and 3's. I like the
                              Radeon8500 (I own one) and am happy to write
                              special features for it, BUT I still want it to
                              run well on a GeForce 3 and 4 if possible. Do
                              you talk my language?The other aspect that won't bother some
                              people, but will irritate quite a few is the books
                              reliance on the C/C++ language. This is obviously
                              the gem-author's choice, but now and in the future
                              there are many different languages moving into
                              game usage - the .Net languages, java and VB for
                              example. A few of the gems in the "General
                              Programming" section can be applied to other
                              languages, but they are often fairly specific to
                              assembly and/or C/C++ programming.
 In 
                                ConclusionThis is yet another solid extension to an
                              already great series. For 'newbies' to the whole
                              series this is probably the best one yet if you're
                              only buying one. For veterans of the series, this
                              is another essential addition to the bookshelf,
                              one that will sit very nicely alongside volume's 1
                              & 2.
 Lets
                              hope we're back here again in a year for volume 4. 
                                
                                   
                                    | Good 
                                      Things | Bad 
                                      Things |   
                                    | •
                                      Another solid addition to the series. | •
                                      Some gems, and sections of the book not
                                      much use if you don't use C or C++ |   
                                    | •
                                      Better variation of coverage than previous
                                      volumes | •
                                      Some authors miss out on good content for us
                                      readers due to the companies they work
                                      for. |   
                                    | •
                                      Each gem (on average) may cost $1.04, but
                                      many are worth 10x that. | •
                                      The book as a whole is relatively
                                      expensive, and can work out very expensive
                                      if you buy all 3 volumes. |   
                                    | •
                                      Well presented book, plenty of diagrams,
                                      and a reasonable number of color plates. |  |   
                                    | •
                                      Short bio's of all contributing authors. |  |   
                                    | •
                                      CD has all of the source code presented in
                                      the book. Includes several useful
                                      libraries (DX8.1 & GLUT) |  |     |