Game
Programming Gems 3
Author:
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
coverage
One 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 Board
There 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
Conclusion
This 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) |
|
|