Am höchsten bewertete kritische Rezension
2 Personen fanden diese Informationen hilfreich
A good book, but not all that was promised.
am 9. November 1999
Andre Lamothe is one of the best game programming writers in terms of explaining complex matters clearly. So, this book looked like the Holy Grail of modern game programming. Well, not quite...
1) Until you get into the text itself, you don't find out that this is only volume one of a two-volume set. It is not mentioned anywhere on the book's cover, nor in any of the promotional material. If you're most interested in the 3D part (and who wouldn't be, since non-3D games are a dying breed, and good books on Direct3D Immediate Mode are practically nonexistent?), you'll have to wait until Lamothe finishes volume two. Since THIS volume shipped quite late, God only knows when you'll see THAT one. (There are some tutorials on 3D on the CD-ROM, but they're not written by Lamothe, which means that they don't have his trademark knack for explaining difficult concepts.)
2) Volume 1 is actually an extended re-write of his earlier "Windows Game Programming for Dummies." If you've read that book, you'll find that the vast majority of the topics (and the order they are presented in, such as: first general Windows programming, then GDI, then a game console framework, then COM, and finally DirectX itself) and even the "engine" source code comes directly from the "...Dummies" volume. Granted, "Tricks..." does go into a lot more detail and covers some newer features of DirectX (force-feedback, DirectMusic) that the earlier book didn't touch. Also, if you have any professional aspirations, it's a lot less embarrassing to say you picked up a technique from a book titled "Tricks of the Windows Game Programming Gurus" instead of "Windows Game Programming for Dummies!" However, those who bought the latter volume should be aware that they're going to see a LOT of material, verbatim, for the second time.
3) Finally, there are a number of typos in the text and bugs in the sample source code. As an example of the former, look at the rotation matrix at the bottom of page 455. Owing to a bad choice of font, it has two elements missing! In terms of code bugs, look at Demo7_13 or Demo7_14. In Scan_Image_Bitmap(), the dest_ptr is being incremented by ddsd.dwWidth, when it should be by ddsd.lPitch. The fact that Lamothe has cautioned the user against making this VERY SAME MISTAKE earlier in the book adds insult to injury. (This is not unusual, by the way. I've read several of Lamothe's books, and have always found bugs in the sample source, which can be especially maddening for the student who may only know that something isn't working right, but might have no clue on how to even begin to fix it. Worse, these bugs should have been immediately apparent when the program was run, which leads me to suspect that Lamothe considers himself such a "guru" that he writes his code blind and doesn't always bother testing it before sending it out to the publisher.)
So, there you have it. Despite its faults, this book is one of the most comprehensive texts on the current iteration of DirectX (minus Direct3D), and contains other valuable information about AI, advanced algorithms and data structures, multithreading, game physics, etc. It is probably a "must buy" for anyone serious about game programming. However, until Lamothe gets around to finishing volume two, this is really nothing more than a "work in progress." Even as such, the reader had better be prepared to do some serious debugging on his or her own.