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
      Miscellaneous

Beginning Direct3D Game Programming
Author: Jonathan S. Harbour
Publisher: Premier Press
ISBN: 1-931841-25-X
Purchasing: [Amazon.Com
] [Fatbrain.Com] - RRP US$59.99
Reviewed: 10th March 2002

Front Cover Shot:

Overview

At the time of writing, I've only seen (And reviewed) two books specifically about DirectX/Gaming and Visual Basic - and if you've read the reviews (here and here) then you'll realise that whilst they aren't terrible books, they weren't that amazing either. So at first I didn't hold up much hope for this particular book - why was it going to be any better than the others?

However, it's part of the successful "Premier Press Game Development Series", of which I've already seen (and been impressed by) 3 books from this series; so maybe there's hope for the VB game development book that we've all been waiting for!

The book is a rather heavy piece of work - weighing in at 1100 pages (bigger than any of the other 3 books I've reviewed).

The Structure

The structure and formatting of the book follows a similiar pattern to the other books in the series. It's divided into 5 basic parts, and each of these is subdivided into several chapters (22 in total). The five parts look like this:

1. Introducing Visual Basic and DirectX
2. The Nuts and Bolts of Game Development
3. Advanced Game Programming
4. Complete Game Projects
5. Appendices

This structure works very well - the first part sets the scene, gets the reader familiar with the playing field and the intentions of the book, the second works on using the Win32 API to put together some more solid examples before getting into the DirectX code. The 3rd part is where you "meet" DirectX, thus its quite a large part of the book. The 4th part is very good - packing 4 complete (albeit simple) games to learn from, a real bonus as far as this type of book is concerned.

Content

This is the all-important factor - content. As I've already stated, this is a big book, and it DOES make very good use of it as well. The book isn't particularly deep when it comes down to individual areas, instead it goes for a broad all-encompasing approach. This book really does cover pretty much all the bases as far as game development is concerned.

Naturally, it covers all the areas of DirectX8, but surprisingly it also covers some legacy DirectDraw material, which could be of significant interest to some people. It also has a good basic coverage of Artificial Intelligence (Simulated Intelligence as the author calls it), in particular some fuzzy logic and genetic algorithms content. I think this is probably the first time I've seen an application of genetic algorithms in a pure VB context, even though it is a very simple coverage, its interesting nonetheless. The only weekness with regards to areas covered in this book is physics; I'm not very hot on physics myself, but I know how important physics is to any moderate complexity game engine, so even a basic coverage would be useful.

As well as the game programming content there are some other real gems in this book. The introduction chapters really cover the ground well - discussing compilers, version differences and plenty of background history and theory - something I like alot. You could quite probably (although not advisable) pick up on the basics of this book with very little experience with the VB language (2-3 months maybe).

The book also has a chapter dedicated to code optimisation, whilst this could warrant a much larger section this goes over some really good material. Not that its revolutionary to many experience programmers, but it's perfect ammunition in the C++ vs VB wars that have a tendency to errupt every now and then (rather stupid in my opinion!); it makes a clear point - well written code can work very fast, and can make a good game. Using some basic tips and ideas you can go a long way with the language.

There are some missing bits however, in particular I noticed a distinct lack of enumeration in many parts of the DirectX code, and there is no specific discussion of the topic (thus, a "newbie" to the subject may not even be aware of its existance). This in my opinion is a rather big failing - you can get a long way without enumeration, but when it comes to distributing a game/program it has a nasty tendency to bite you (hard). Even a short mention of its existance would have made me a bit happier :)

The other odd thing I noticed is the rendering techniques used in the Direct3D code; whilst the method is perfectly functional (as demonstrated by working source code!), it is not a method I've ever seen used before - and not one that many people would usually use/teach. Basically, the author goes about rendering each triangle in a model (a cube for example) individually, and by wrapping pairs of triangles in class objects (CRectangle = 2 triangles, the cube uses 6 "CRectangle" classes). Whilst I didn't get time to test it out, I'm guessing at a very noticable drop in speed should you implement that type of scene graph over a normal vertex buffer/array of ALL similiar pieces of geometry. It may well prove very confusing to a newbie to the world of DirectXGraphics if he/she implemented a "normal" detail game scene to find it running appallingly slow in comparison to other similiar projects.

It would probably be quite advisable to use the two other books in the series dedicated to D3D/Special effects in conjunction with this book - use this book to get a basic grounding in how it works in Visual Basic, then learn it properly from one of the more advanced texts available. However, do you really want to buy 3 books to learn this??

The CD Backup

The CD included with the book is of the same quality as the other books in the series - which is considerably better than many. There is a reasonable amount of trial/free software included on the CD, including the all-important DirectX8 SDK. The browser isn't the best one as far as the CD goes, but it is perfectly capable and looks pretty :)

The basic software list for the CD is: Paintshop Pro 7 trial, Cool Edit 200 trial (audio program), Mechwarrior 4 demo, Midtown Madness 2 demo, Motocross Madness 2 demo and Crimson Skies demo. The 4 demo's on the CD provide some entertainment value, but short of being adverts for microsoft games (yep, all by the same publisher) I dont see how they really fit into the context of the book... but well, if you're not interested in them they wont harm you in any way...

In Conclusion

Okay, I actually think that this book is the one the community has been waiting for. Even though I have found several flaws in it, they are far outweighed by the generally excellent coverage and content in the book. This book finally shows, in hard copy, that the Visual Basic language can, and should be taken seriously as a games/multimedia platform, sure, it aint commercial grade, but it is definitely time that it stopped being looked down upon as it has for the last 10 years!

Having been active in the community for several years now I believe that I have a good feel for how the community works, and the opinions of the general "population", and I think that this book does represent our community in the right way - and will hopefully bring new members into the fold.

A quote taken from Andre LaMothe's introduction (letter from the series editor): "I never thought I would say this but the time has finally come that Visual Basic is a valid language to create high-speed 2D and 3D games", if he can come to that conclusion I think there is hope in this world for the community :)

The only real issue is whether this book is advanced enough for you - I found this book to be a useful resource, with some good information in it, but I've already learnt and used pretty much everything discussed here. If you're fairly new to the scene then give this a good look over, but if you're looking for some specific coverage of key areas (in depth) then this may not be what you're looking for.

Oh, and one final note before I finish this review... the appendices include links/addresses for pretty much every VB gaming site on the planet, which is very useful indeed. BUT, why isn't my site / this site in the list, thats plain not fair (given the size and visitor throughput I'm getting!). This has happened in every single VB game programming book I've reviewed so far! I'm going to sulk now.

Bottom Line: This book comes with my positive recommendation!

 

Good Things Bad Things
• Well structured chapters and sections. • Maybe too broad for some people, and will require additional resources/research to go much further.
• Very broad, covers pretty much all the bases needed to get a foot-up into the community. • Skips enumeration for the majority of DirectX components - a big oversight in my opinion.
• Good formatting of key points, important text etc... • Some odd Direct3D rendering code used.
• Big - lots of content to read through.
• A pretty good CD with all the sample code.
• Good Appendices (except for not having my site in the web-links list!!)

 

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