"Advanced 3D Game Programming with DirectX 9.0" by Peter Walsh covers a broad range of subjects critical to making games: graphics, artificial intelligence, networking, and mathematics. Priced at just under $60, the book contains eleven chapters that span approximately 520 pages.
The first chapter, "Windows" describes how to create a window and respond to some of the common Windows messaging events. The chapter defines several custom classes that loosely resemble code created by Visual Studio's workspace wizard but cleaner and in a Win32 flavor. These classes form the framework for a generic Windows game.
The next three chapters (Getting Started with DirectX, DirectInput, and DirectSound) show how to compile and link DirectX with your application and initialize two of the sub-systems found in DirectX, DirectSound and DirectInput. The sub-systems are briefly highlighted and wrapper classes are given to simplify their usage. The DirectInput and DirectSound chapters focus on initialization of each system rather than exploring the more sophisticated uses of each system like force feedback or dynamic audio mixing.
Chapters on 3D math, artificial intelligence, and networking follow. The math chapter provides basic math definitions like the dot and cross products as well as container classes for vectors and matrices. The AI chapter is brief. Readers seeking to gain a deeper understanding should read the chapter in conjunction with a decent college text that describes fundamental search routines like A* or Djkstra's algorithm. Lastly, the networking chapter relies on WinSock without mentioning DirectPlay. Classes are provided to encapsulate the network layer of a game. While all three chapters are essential to game programming, none adequately covered the complexity and nuances of each subject given the space provided.
The remaining chapters presented in the last fifth of the book discuss rendering and are easily the highpoint of the text. Walsh attempts to detail advanced topics like multi-texture and multi-pass rendering using the fixed function pipeline. Yet despite featuring DirectX 9.0, many of the new SDK features were missing from the text such as vertex and pixel shaders, displacement maps, or the two-sided stencil mode. Beginning with lighting and fog parameters, Walsh explores several sophisticated graphics techniques including the mathematics of animation, subdivision of surfaces, radiosity, and progressive meshes. Then, examples of multi-pass texture mapping (light maps, environment maps, and glow maps) are provided to illustrate various DirectX render states. Last, Walsh discusses scene management to assist in reducing the number of objects drawn per frame by using portals to test visibility and octrees.
For the price of the book, a companion CD containing the source code would have been beneficial. When I downloaded the sample code to try them out, three of the four examples crashed because DirectX device wasn't successfully initialized when rendering began on my GeForce4. Since the examples executed in full-screen mode, the computer needed to be rebooted. Additionally, the sample code contained a couple C/C++ techniques that are not commonly found in game development: exceptions and nameless unions. Support for exceptions can add to the size of a program and slow its execution speed while unions hinder portability and create potential memory alignment issues that are compiler dependant.
I found the book's title at odds with the subject matter. Generally, Walsh provided an overview of the basic theory, API calls, and usage. When more details would help clarify understanding of a point, the reader was often referred to the DirectX SDK help. As an experienced developer, I found very little of value in this book. While Walsh attempts to cover a broad spectrum of subjects, none of the topics are adequately explored leaving the seasoned reader with nothing but an unsatisfying overview and possibly a reference to the SDK help file.
Advanced 3D Game Programming with DirectX 9 (Wordware Game Developer's Library) 1st Edition
by
Peter Walsh
(Author)
| Peter Walsh (Author) Find all the books, read about the author, and more. See search results for this author |
ISBN-13: 978-1556229688
ISBN-10: 9781556229688
Why is ISBN important? ISBN
Scan an ISBN with your phone
Use the Amazon App to scan ISBNs and compare prices.
This bar-code number lets you verify that you're getting exactly the right version or edition of a book. The 13-digit and 10-digit formats both work.
Use the Amazon App to scan ISBNs and compare prices.
Add to book club
Loading your book clubs
There was a problem loading your book clubs. Please try again.
Not in a club? Learn more
Join or create book clubs
Choose books together
Track your books
Bring your club to Amazon Book Clubs, start a new book club and invite your friends to join, or find a club that’s right for you for free.
More Buying Choices
Targets experienced computer game programmers as well as those interested in computer game development.
Special offer: 3 months free
For a limited-time, get the best audio entertainment with Audible Premium Plus, free for 3 months. Get this deal from Audible
Tell the Publisher!
I'd like to read this book on Kindle
Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.
I'd like to read this book on Kindle
Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.
Product details
- ASIN : 1556229682
- Publisher : Wordware Publishing, Inc.; 1st edition (May 25, 2003)
- Language : English
- Paperback : 600 pages
- ISBN-10 : 9781556229688
- ISBN-13 : 978-1556229688
- Item Weight : 1.62 pounds
- Dimensions : 6.16 x 1.12 x 9.04 inches
- Best Sellers Rank: #5,565,345 in Books (See Top 100 in Books)
- #74 in DirectX Software Programming
- #1,916 in Digital Video Production (Books)
- #3,861 in Game Programming
- Customer Reviews:
About the author
Follow authors to get new release updates, plus improved recommendations.

Discover more of the author’s books, see similar authors, read author blogs and more
Customer reviews
3.4 out of 5 stars
3.4 out of 5
6 global ratings
How are ratings calculated?
To calculate the overall star rating and percentage breakdown by star, we don’t use a simple average. Instead, our system considers things like how recent a review is and if the reviewer bought the item on Amazon. It also analyzes reviews to verify trustworthiness.
Top reviews
Top reviews from the United States
There was a problem filtering reviews right now. Please try again later.
Reviewed in the United States on May 12, 2004
20 people found this helpful
Report abuse
Reviewed in the United States on September 10, 2003
I learned programming DirectX 8 months ago just using the SDK, and that created several holes of knowledge on my mind. Now with Advanced 3D Programming with DirectX 9.0, I filled out the missing ideas. This book is clearly explained, and the intro sections could guide a newbie into the field of 3D programming. The code is also easy to understand, and many tables of structures and values where printed on the book, so you don't have to look inside the SDK. Most common fields and values where bolded and explained, making this book useful as a short reference, that's nice. Also, I really enjoyed looking at the pictures on how lighting, texture operations and many other techniques modify the 3D scene. This book is well illustrated.
The main problem I found is that many discussions where skiped because "there isn't enough space on this book", as the authors wrote. For example, I read in the index there was a section about Stencil Buffers. When I opened that page there was a little intro of half a sheet saying that I could use stencils to create real time shadows, and I would get more on the stencil topic later. The mention of this shadow technique made me really interested! But when I got to the real stencil section there was just a title and two lines saying that shadows and mirrors are a nifty use of stencil buffers. I think the authors should have removed some dicussions on old techniques, and placed one or two pages on this topic and others that are modern and advanced. A larger discussion on 3D file formats should also be placed on this book, and should be a must on any other 3D programming book, because not many things for games you can do with dinamically created spheres and boxes. I mean, for game development you need models and animated models, the same as textures with transparency, and those doesn't come from the programmers, but from the artists.
Anyway, IMHO this books is greatly explained, even for newbies. That's why I give 5 stars.
The main problem I found is that many discussions where skiped because "there isn't enough space on this book", as the authors wrote. For example, I read in the index there was a section about Stencil Buffers. When I opened that page there was a little intro of half a sheet saying that I could use stencils to create real time shadows, and I would get more on the stencil topic later. The mention of this shadow technique made me really interested! But when I got to the real stencil section there was just a title and two lines saying that shadows and mirrors are a nifty use of stencil buffers. I think the authors should have removed some dicussions on old techniques, and placed one or two pages on this topic and others that are modern and advanced. A larger discussion on 3D file formats should also be placed on this book, and should be a must on any other 3D programming book, because not many things for games you can do with dinamically created spheres and boxes. I mean, for game development you need models and animated models, the same as textures with transparency, and those doesn't come from the programmers, but from the artists.
Anyway, IMHO this books is greatly explained, even for newbies. That's why I give 5 stars.
14 people found this helpful
Report abuse
Reviewed in the United States on August 21, 2004
Because it covers all principal topics on game programming in a straight to the point way and with C++ code, makes it a practical book for learning fast and concise. it is possible to develop an application in less than a semester. I recommend it to students and people who prefer reading a book than the DX API documentation from the screen. Hope to see "Advanced 3D Game programming with DX10" someday (anyway it should be called "Intermediate" instead of "Advanced")
Reviewed in the United States on May 10, 2007
For the most part of this book, its trying to fill its 500 pages with images and function references that are essentially a copy/paste from the freely available DirectX SDK. The book's content is either SDK material or completely basic stuff. Even the introductory books that I have read are far more advanced than this one.
Reviewed in the United States on July 12, 2004
I only rate this one star because I cannot rate it no stars.
I don't know why they bother updating this book everytime a new version of DirectX comes out. It sucks everytime.
What they should do is throw out everything they have and start over.
I don't know why they bother updating this book everytime a new version of DirectX comes out. It sucks everytime.
What they should do is throw out everything they have and start over.
2 people found this helpful
Report abuse
Top reviews from other countries
W. Adlani
5.0 out of 5 stars
Knowledge is power...
Reviewed in the United Kingdom on May 28, 2010Verified Purchase
To begin this review, I'll briefly explain my plight.
Direct X.
I've been learning OpenGL for a while and found it easy to understand; eventually I moved on to DirectX.
I looked for internet tutorials but being conservative, I rather have a book at hand that I can use while being mobile or just to get comfortable with instead of constantly looking at the monitor.
None the less, the books I've read have been both perplexing and staggering (compared to OpenGL, atleast).
I've found two books which I highly recommened, this being the other one.
In programming, there are things you NEED to know and will take too long to figure out so the best way is to learn from the best or atleast someone who knows more than you.
Thats what this book has been for me; it's written to be understood, a little complex at times and does infact get into advanced topics such as OCTA-Trees, BSP trees and other important, *advanced programming topics that one might think "what does this have to do with DirectX?", well, that depends on whether one would want to know how to actually use DX (DirectX) it too.
*Might be advanced for beginners or just me.
If you want to learn DirectX 9 (in actual fact, you would be learning more than just that by a long shot), then I would recommend this book highly.
Brief topics list with my personal oppinions:
- Brief windows programming (explained well)
- DirectX programming (D3D, Dinput, sound etc...)
- Scene management (for optimizations sake, culling and so forth, standard fare in game programming atleast)
- Lights.
- Texure mapping.
And so forth...
The best of luck to all,
~W
Direct X.
I've been learning OpenGL for a while and found it easy to understand; eventually I moved on to DirectX.
I looked for internet tutorials but being conservative, I rather have a book at hand that I can use while being mobile or just to get comfortable with instead of constantly looking at the monitor.
None the less, the books I've read have been both perplexing and staggering (compared to OpenGL, atleast).
I've found two books which I highly recommened, this being the other one.
In programming, there are things you NEED to know and will take too long to figure out so the best way is to learn from the best or atleast someone who knows more than you.
Thats what this book has been for me; it's written to be understood, a little complex at times and does infact get into advanced topics such as OCTA-Trees, BSP trees and other important, *advanced programming topics that one might think "what does this have to do with DirectX?", well, that depends on whether one would want to know how to actually use DX (DirectX) it too.
*Might be advanced for beginners or just me.
If you want to learn DirectX 9 (in actual fact, you would be learning more than just that by a long shot), then I would recommend this book highly.
Brief topics list with my personal oppinions:
- Brief windows programming (explained well)
- DirectX programming (D3D, Dinput, sound etc...)
- Scene management (for optimizations sake, culling and so forth, standard fare in game programming atleast)
- Lights.
- Texure mapping.
And so forth...
The best of luck to all,
~W
One person found this helpful
Report abuse
