Main Site Links Resources Tutorials
News VB Gaming Code Downloads DirectX 7
Contact Webmaster VB Programming Product Reviews DirectX 8
  General Multimedia Articles DirectX 9

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:


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.


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  


DirectX 4 VB 2000 Jack Hoxley. All rights reserved.
Reproduction of this site and it's contents, in whole or in part, is prohibited,
except where explicitly stated otherwise.
Design by Mateo
Contact Webmaster