Game
Programming All In One
Author: Bruno
Miguel Teixeira de Sousa
Publisher: Premier Press
ISBN: 1-931841-23-3
Purchasing: [Amazon.Com]
- RRP US$49.99
Reviewed: 26th May 2002
Front
Cover Shot:
Risky
Title
The title of this
book is quite adventurous in that it seems to
imply that it will cover ALL of game programming.
As we all know, game programming and all it's
connected areas is an absolutely huge subject. There
are lots of books available that spend 1000+ pages
discussing only one area of this industry, with
this book weighing in at just over 900 pages makes
it sound like an impossible feat.
Doing
the Impossible
However,
reading through the table of contents it is quite
clear that this book isn't going to cover
everything down to the finer details, rather, it
is going to give you a crash course in all the
AREAS that you will need to be familiar with. In
this sense, it sets out to do a realistic job and
you are paying for the following areas:
C++
Programming
Windows Programming
Game Design
Algorithms and Data Structures
Mathematics
Introduction to Artificial Intelligence
Physics Modeling
Publishing A Game
At
a fairly general level the above list covers
pretty much every base and hits all the main
targets for game programming. That is, if you're
happy writing games for Windows with DirectX.
Which hasn't bothered me at all in the last 5
years, but those of you looking for any OpenGL or
cross-platform/OS-Independence will be
disappointed.
As
Deep as it is Wide?
I've
already established the fact that this book covers
quite a wide range of topics, but for 900 pages
can it also deliver in depth?
Surprisingly
it does deliver more than you might give it credit
for - but don't expect a lot of background theory
or explanation. Several chapters in this book are
fairly blunt in their nature, but get the job done
and explain the important aspects.
The
Physics Modeling is a good example of this. This
chapter is the first real mention of physics in
the whole book, and starts with only two pages of
introduction and then it launches straight into a
code listing of "mrEntity" - the general
class interface for a physics object. I don't have
a good background in physics, so each time I
review/read a book covering the area I'm often
learning things for the first time, and launching
in this way into a listing of terms and names that
I simply don't understand ("Coefficient of
Restitution"? what!) is a bit of a shock.
However, it does work well this way - as I am now
interested to find out what it all does. The rest
of the chapter slowly works through all the major
areas - basic physics principles explained, and
then some more detailed sections on friction and
particle systems.
In
several chapters, equations are presented straight
up with a short explanation of how to use them -
which is fine for applied purposes, but for
theoretical/learning it's not so useful. Other
books that cover only one area in 1000+ pages
would often dedicate a couple of pages to the
proof/derivation/roots of such an
equation/formula. It is this excess background
"fluff" that this book looses, in favor
of covering the wider range of topics.
Keeping
Up With the Pace
This
book has quite a fast pace, as just mentioned, the
book drops a lot of unnecessary background theory.
Other books that don't drop this material often
give the feeling of having large "gaps"
between the applied programming/development
sections; in the long run it may be better, but
for this book it means that you are constantly
moving onto new things and hence, picking up a
considerable pace.
It
is worth baring in mind that if you want to know
more about a particular subject in detail then
you'll need to take a trip to the library, or make
good use of Google.
Some people I know aren't satisfied with just
learning the practical/applied areas of a subject,
and HAVE to understand the background to theories
and ideas - if you are one of these people, you'll
probably spend as much time looking online for
further reading as you will reading the book.
Who's
this book for?
This
book probably won't suit someone with a lot of
game-developing experience as they'll either have
other dedicated books, already have the experience
or will know the right places to look on the
internet. Rather I see this book as being for
intermediate programmers - those that know what
they want to do, but aren't entirely sure which
direction they should be going in. If you are one
of these people, you can read this book and get a
good overview of all the areas you need to be
familiar with, and probably get quite far applying
it to real-world situations; but you'll also know
which areas you need to do more reading/research
into.
In
Conclusion
In
some respects, this book could be seen as a more
modern and up-to-date version of Andre LaMothe's
"Tricks of the Windows Game Programming
Guru's" (reviewed
here) which tried, in a similiar style, to
cover as many key-areas as possible.
You
will have to decide if you are a person who wants
a crash course in everything, or would rather
select a few books dedicated to specific areas
only (and in more detail). As far as crash courses
go, this is very comprehensive and will certainly
send you in the correct direction(s).
Good
Things |
Bad
Things |
Well structured chapters and sections. |
Could have done with some more references
for further reading sources (books,
websites etc...) |
Covers almost everything you could need |
Entirely in C/C++, which may be a drawback
for VB developers. |
Up-to-date, discussing several of the
newer areas in game development. |
•
No consideration of cross-platform/OS
independence game development. |
Gives a C/C++ primer/introduction for those
not familiar. |
•
Will probably require additional research
and background reading |
Author knows what he is talking about,
and it shows! |
|
Excellent CD, with a good choice of software/files |
|
•
Good support exercises and answers for
most chapters. |
|
|