• Create Account

Share:

1. Last; furthest or farthest; ending a process or series: the ultimate point in a journey; the ultimate style in hats
2. maximum; decisive; conclusive: the ultimate authority; the ultimate weapon.

I’m not sure if this strangely-titled book is intended, from the existing definition, to be the last DirectX programming book or the greatest DirectX programming book. It does cover Direct3D, DirectInput, DirectSound, and DirectMusic, and that makes up the bulk of DirectX nowadays. Some of the older bits of DirectX, like DirectDraw, have fallen to the wayside. If you’re looking for DirectDraw info, you’re probably better off shopping at your local used bookstore anyway, as the DirectDraw API is now locked and will likely never be added to.

“Ultimate Game Programming with DirectX” is a pretty substantial (725 page) guide to DirectX game development. And this is nothing new. This is at least the dozenth large tome that covers DirectX. So let’s dig a bit deeper.

The book starts out fairly well organized and, no surprise, it will build a game during the course of the text. The game in this case is a 3D shooter called “Stranded” and it will be built out of a (surprise!) game engine of the author’s own design. Thankfully the book does not spend the first couple of chapters building an engine and the rest of the space teaching you how to write games using the game engine rather than with DirectX. The engine is admittedly lightweight and exists mostly to free the user of some of the typical DirectX initialize-uninitialize cycle.

Lighting and textures start the book after the obligatory discussion of how to initialize DirectX and draw some simple figures. Following textures is a quick chapter on how to render text and build a simple GUI. Why we’re still rolling our own GUI’s in 2007 is beyond me, but this is really more of a complaint about DirectX than the book itself. I am glad that text-rendering is covered, because it is something that’s important to do but is often skipped by DirectX books because it’s not all that simple.

The book covers scripting in a rather cursory fashion, which is fine with me because scripting, while important for a game engine, is really outside the scope of a book focused on DirectX programming. Next comes input and sound (both quite important and straightforward) and loading 3D models in DirectX format.
All of that is used to build the engine, and the game itself is built in about the last 100 or so pages of the book. So really this book covers more of the actual DirectX API than other books I’ve seen.

The pack-in CD contains the code from every chapter, including the final chapter that implements the completed game. For some reason, the game threw an exception on my machine, but the “system requirements” of the book state Windows 2K or XP, so it might be a Vista thing.

All in all, not a bad book. It’s not the gentlest introduction to DirectX that you’ll find, but it’s fairly comprehensive and doesn’t spend a lot of time teaching you unnecessary stuff.
I personally enjoyed this book from beginning to end. If you’re looking to get into some engine programming, I think this book is a good start. While progressing through the book you’ll build a pretty basic game engine geared towards a simple FPS game titled “Stranded.” The engine works with input, sound, x-models, basic animation, some game math, collision detection by bounding boxes and spheres, cameras, lights, and of course 3D rendering. In addition, you get started with a particle system. Though it only includes the ability to make it rain in your game, adding snow to the system would be a fairly easy addition to make on your own. You’ll also learn how to create fog. I was pleased to find a logging system included with the engine. It may be pretty basic, but since I’d never used an actual logging system before, I have to say I was pretty pleased with it. This book also shows you how to use command and property scripting, which is a topic I’d been avoiding. It turns out that it’s not that complicated. It works well, and I’ve been using it to load level objects and to set some game-play variables. “Stranded” is as basic as it gets for a FPS, but it is complete (1st level anyways) and it leaves plenty of room to make your own additions and improvements.

I’d recommend this book to anyone that sounds interested after reading the book’s description. Like many books out there, it touches on a lot of different subjects which means the in-depth coverage is limited. However, a list of additional resources is listed in the appendix for when you’d like to dive deeper into any one topic. Overall, I believe that “Ultimate Game Programming with DirectX” makes a great 2nd book to buy for game development.
Simply put, this book is great. Its 800 pages of greatness, and you'll learn DirectX plus things that can be used with other APIs (Scripting, collision checking, ect.). The game at the end isn't too great, however, you can easily add to it, until you have a full FPS game! (or you can just go with the Author and make the game as you read the book instead of editing the final version). The book also comes with a handy CD which holds on of the demos that are shown in the book, with source code, assets, and the .exe file!
I also like how the book is structured. Just about every chapter you have a little theory, then you create the demos. After that, you add what you learned into the game engine. This is by far the best book on DirectX9, but if you want a DirectX10 book, just wait for the 2ND edition of this book.Remember: This book uses C++ and you have to be pretty good with it, but there is a one chapter C++ primer with the book. I'd advise you to create a few 2D games with SDL or Allegro before going into DirectX or this book.

PARTNERS