Beginning
Direct3D Game Programming
Author: Wolfgang
F. Engel and Amir Geva
Publisher: Premier Press
ISBN: 0-7615-3191-2
Purchasing: [Amazon.Com]
[Fatbrain.Com]
- RRP US$49.99
Reviewed: 29th December 2001
Front
Cover Shot:
Overview
I
had high hopes for this book when I first got
wind of it, and particularly when it arrived at
my house - was this finally going to be the definitive
book on Direct3D programming? There have been
several attempts in the past, and there have been
a few books that covered it as part of DirectX
(ie, not a dedicated book).
As
I mentioned in my review of "DirectX 8 and
Visual Basic Development" (here), Direct3D
(or any of the DirectX components) deserve an
entire book by themselves - they are that big.
And luckily for us, this is one book, it's dedicated
to one component (well, almost), and it's a big
book - 500 pages.
The
Structure
There
are 12 chapters in total, with the last 2 written
by Amir Geva all about physics (albeit, a brief
overview). The first 5 chapters deal with the
basics and the background - which may sound like
a lot, but given the compexity of the Direct3D
API this is perfectly warranted.
One
thing to note straight away, is that this book
is entirely in C/C++, but that really shouldn't
bother anyone - it's a very trivial matter to
convert the source code in this book into VB should
you want to, as the Direct3D interfaces are (99.9%
of the time) identical in both languages. Chapter
3 of the book covers some basic C/C++ COM rules
for Direct3D programming, which is worth reading
before you get stuck in (VB hides most of this
from the programmer).
The
book builds up fairly quickly after that - spending
a considerable amount of time covering texture
mapping, blending and effects. Whilst it doesn't
go too deeply into the special-effects side of
things, it does a reasonable job, and the book
would end up 4x bigger if it had gone into a full
depth coverage. The last couple of chapters deal
with geometry - X Files and .md3 (quake3 format)
files, which is quite an interesting read - particularly
the .md3 chapter. Finally we are given 5 appendices
- which are very useful indeed. They cover maths,
a C++ primer and windows programming.
Content
Okay,
now onto the important part - what is the actual
content like? Well, in general it is of excellent
quality. There are a few bits here-and-there I'd
of liked to be in greater detail, but that's just
my personal preference. The writing style is very
easy to get into, and learn from, which is the
important part.
Wolfgang
Engel definitely knows his subject, and knows
it well - the descriptions, and inter-linking
of past sections reinforces the knowledge you
gain, and there are 100's of "TIP",
"NOTE" and "WARNING" boxes
to give you further information. Another aspect
is the diagrams - When necessary there is usually
a diagram/picture to back up everything that he's
explaining. My only reservation with the pictures/diagrams
is that they're all in black-and-white; whilst
it is still clear what is going on, being all
about the graphics, it would have been nice to
have some colour-plates as in some other books
of this kind...
Whilst
the physics chapters are only short in comparison,
the author (Amir Geva) deserves credit for them.
They wont teach you physics, as that would require
a book entirely to itself; however, it will point
you in the correct direction and give you something
to get started with. Consider these chapters as
an introduction to game physics - whether you
need this introduction or not is entirely dependent
on you. Again, there is a good use of diagrams
and pictures.
The
CD Backup
The
majority of computer technical manuals come with
CD's included, and they are often a bit of a grey
area - if they're done well, they tend to be done
very well, if they're not then it's not really
worth including it with the book. In this case,
the CD is just about right for the book - it has
the standard source code library and more.
The
author obviously thought about the CD's contents,
being a graphics book about Direct3D it would
be good to have a) the DirectX SDK, b) A 2D graphics
program and c) a 3D graphics program. And what
do we get? all of them! in the form of the DirectX8
SDK, Paintshop Pro 7 and TrueSpace 5. As well
as that we get a demo of MidTown Madness 2 (dont
know why though), and a demo of "Quarternion"
which is very simple, but quite addictive... Well,
I wasted a good 30mins of my day on it ;-)
Andre'
LaMothe
I
dont know quite how much influence/help the author(s)
of this book got from Andre' LaMothe, but being
the series editor must mean he had some influence.
For those of you who dont know who he is, he's
a generally helpful and promminant figure in the
game programming world - author of many books,
owner of a company that helps publish games (Xtreme
Games LLC) and numerous other things... His association
with this series (Premier Press' Game Development
Series) cannot be a bad thing!
In
Conclusion
This
is definitely a good book - whilst it may well
be a little difficult for rookie VB programmers
(having to convert from C++ to VB) it is still
perfectly valid for VB programmers. There are
still a few things that haven't been covered,
which probably should, but they aren't enough
to warrant properly complaining about - and you
can probably find any of this information on the
net if you really need it.
Good
Things |
Bad
Things |
Well structured chapters and sections. |
Could have done with some colour diagrams/colour
plates |
Aimed specifically at game programming |
Entirely in C/C++, which may be a drawback
for VB developers. |
Finally, a large dedicated book on D3D8! |
|
Gives a C/C++ primer/introduction for those
not familiar. |
|
Good Depth to coverage ratio |
|
Author(s) know what they are talking about,
and it shows! |
|
Excellent CD, with a good choice of software/files |
|
|