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

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

 

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