Game
Programming Gems Volume 1
Author: Various
Contributors (Edited by Mark Deloura)
Publisher: Charles Rivers Media
Published: 2000
ISBN: 1-58450-049-2
Purchasing: [Amazon.Com]
[Fatbrain.Com]
- RRP US$69.95
Reviewed: 3rd September 2001
Front
Cover Shot:
Overview
of whats on offer
well,
picking up the book for the first time - not too
heavy, not too big (unlike some massive computer
related books), it has a nice picture on the front
cover. It runs into 615 pages in total with a
few pages of glossy colour-plates in the middle.
Looking
inside (as you should never judge a book by its
cover!), we find a total of five sections, each
with around 10-12 articles ("Gems"),
those five sections are:
1:
Programming Techniques (14 Gems) - covering
data structures, code layout, optimisations and
other clever tricks
2: Mathematics (10 Gems) - surprisingly
this covers lots of stuff about maths, and how
to use it/optimise it for games
3: Artificial Intelligence (9 Gems) - Goes
over a lot of common aspects of artificial intelligence
4: Polygonal Techniques (19 Gems) - rendering,
terrain generation, geometry culling - all that
sort of stuff!
5: Pixel Effects (11 Gems) - essentially
just 2D effects, but includes articles about clever
texture effects (reflections etc..)
All
in all we have 63 gems to read - working out at
roughly $1 (RRP) per article; which is good, as
alot of the articles in here are worth 10 times
that.
As per normal with computer programming books,
we get a fully featured CD with the book - covering
almost all of the source code in the gems (except
for the ones where there is no source code). Most
of the samples are quite interesting to play with/look
at, and all the source code is there for you to
break/experiment with. The only annoying aspect
is that it's just files and directories - and
the directories being named by author - so it's
sometimes a bit of a pain trying to find the source
code for the article you just read.
Analysing the content - what it's got
Each
article is relatively short, which is partly a
good thing, partly a bad thing. The good point
being that we get a lot of different information,
and we get it quickly - rather than having to
read 20 pages of dense text just to find out a
simple formula/algorithm. The bad thing is that
some of the articles are very complicated and
would be much better off with a longer, more detailed
description of the algorithm/process/idea. Having
said this though, each article tends to offer
several reference papers/books/websites with further
information, so if you are still scratching your
head at the end of it all you can go look up the
references for more information.
The
articles are well chosen, offering unique content
you wont normally find on the net, or if you can
it's not easy to find. The articles do assume
a certain level of experience - this isn't a book
for an absolute beginner, I would say it was more
for the intermediate game programmer looking to
go up to the next level, or add some of the more
clever/cool features to their next game. There
is, in almost all of the book a huge tendency
towards 3D games/graphics - which is fine if you
are writing a 3D/semi-3D game, but if you're still
sticking to plain 2D games then there is suddenly
a lot less on offer here. There is the pixel-effects
section, which is essentially 2D graphics, but
it's all with respect to 3D graphics - light maps,
shadow maps, bump mapping, texturing, reflective
textures etc...
The
other interesting aspect is that it's fairly platform
independent - which is a good thing. It uses OpenGL
for almost all of it's 3D rendering articles (which
is growing in popularity amongst VB developers),
and all but a few articles are just plain programming
- not tied to a particular operating system or
platform. However, as with many game development
books it's all in C/C++, but as I just said, much
of it can be ported over to visual basic relatively
easily as long as you can read and interpret C/C++
code. I have heard many people just cant be bothered
to learn C/C++ just for learning new techniques.
I think they're wrong, simple as that. Grab a
good C and a good C++ book, read them over (neither
language is as hard as their reputations make
out) and you'll have a whole new goldmine of information
available to you (90% of online tutorials are
in C/C++). It is worth it for this book, almost
none of this material is available in visual basic
form, so if you dont do it, no one else is doing
it for you...
Analysing the content - what it hasn't got
Whilst
this book so far is looking absolutely excellent,
there is no such thing as a perfect book. This
book has weaknesses and flaws just like any other
book - but luckily they dont offset the excellent
content of the rest of the book.
Music,
Sound, Input and multiplayer gaming - none of
these are covered, or mentioned significantly
(with the exception of one article about online
gaming data protection). This is a major downer,
graphics are great and so is the AI and general
programming, but forget these three things and
all your left with is a demo - not a game. I can
appreciate the abscense of these sections to a
certain degree, there would not have been enough
space in the book - simple as that. If they had
made space for them then it would probably have
reduced the quality of the existing sections.
A second volume of the book is out at the moment
(at time of writing, I intend to review it soon),
and hopefully this will make up for the lack of
music, sound, input and multiplayer sections -
but we'll have to wait and see!
The
AI section is another one to mention, of 9 gems,
4 of them are about path finding - A* in particular.
Whilst this isn't too much of a bad thing (A*
is an important algorithm), you will get a feeling
of "I've read enough about A*, tell me something
else". There are sections on neural networks,
fuzzy logic, FSMs etc... but they are relatively
small and dont help a huge amount when it comes
to writing an AI engine. Maybe I'm just being
picky, but I would of prefered that only 5 AI
gems be included, and for them to be longer and
more detailed - AI isn't really something you
can cover that quickly, it takes a lot of understanding
to get a half-decent AI component written.
The
other aspect is back to the good-old language
problems, the first section (Programming Techniques)
is obviously based entirely in C/C++; but this
time almost none of it is transferable to visual
basic. Maybe it will be in VB.Net, but definately
not VB5 or VB6. It discusses template meta programming,
macro's, scripting, data structures (inheritance/polymorphism),
Standard Template Library, resource allocation,
debugging - whilst if you're a good VB programming
you are probably aware that some of those listed
are possible/useful - but they key to these gems
is in things that you cant do in VB. Take the
data structures articles, sure you can learn from
the articles, but without the ability to use inheritance
and polymorphism you will be missing out on the
most interesting parts of the gem. This is a shame,
but not one you can really do anything about.
Finishing
things off
Well,
I think thats covered pretty much everything.
As with all the other reviews I've done I'm going
to leave you with a summary of good and bad things
- I dont like giving books scores, I feel that
they dont portray the book very well. Needless
to say, if you still cant decide if you want this
book: you can do an awful lot worse than this
book, but not much better.
Good
Things |
Bad
Things |
Excellent selection of articles |
Uses C/C++ for all code examples |
Neat, to the point content, with references
for further reading if required |
Sometimes a little to brief on important
subjects |
Good enough to warrant learning C/C++ so
that you can understand it |
Not for the absolute beginner, assumes some
understanding of the field. |
Works like a reference book, you want to
know about something, look it up in here. |
Large sections not applicable to visual
basic development. |
Everything in one place - would take hours
to find all of these gems on the web. |
Not very cheap! |
If you make good use of the majority of
the gems the price:content ratio is very
reasonable (~US$1 per Gem) |
Large areas of game development not covered
(sound, music, input, multiplayer). Do you
really want to shell out for Volume 1 and
Volume 2 just to get a complete coverage? |
Contains a CD of all source code |
|
|