3D Graphics with Xna Game Studio 4.0 Paperback – Dec 14 2010
|New from||Used from|
Customers Who Bought This Item Also Bought
No Kindle device required. Download one of the Free Kindle apps to start reading Kindle books on your smartphone, tablet, and computer.
To get the free app, enter your e-mail address or mobile phone number.
About the Author
Inside This Book(Learn More)
Top Customer Reviews
Most Helpful Customer Reviews on Amazon.com (beta)
I am however, sorely disappointed at the many inaccuracies that are in this book. If you follow the coding examples step-by-step (letter for letter) you will find yourself chasing quite a few bugs. My recommendation is to download the cod from packtpub as well and use that to compare the code you enter, since the book is widely inaccurate and will cause troubles from trying to use non-existent variables to cameras being rendered with their Up vector point down ! :(
Once I complete this book, I will provide a final review as well. Theses are my first impressions.
This is my update after finishing the book:
The frustrations continued and my worst fears realized, got worse. Specifically in the HLSL examples (a subject that is completely new to me) I ended up spending a lot of time trying to figure out either a) what is incorrect with the code provided or b)where, exactly, does the author want me to implement to current example?
For the money spent, you can get the same information in this book with the same frustrations by Googling "HLSL Tutorials" or going to YouTube and doing the same.
I recommend against this book.
This book has some great information in it, but at times is hard to get at. What I mean is that I have spent a lot of time shuffling back and forth between the source code and the book to figure out exactly where the author is coming from. The text is not always the most clear, and often times simple context is left out for whatever reason. The proof-reading and editing department missed the mark here, or maybe they just couldn't fix all of the mistakes.
Do not let this deter you from purchasing the book however. Like I said so far, ~page 135, I have found a lot of useful information, it's just caused me some headache and extra work. Because of this, I have documented some of the gripes I've had thus far and am going to publicly post my documentation of it for others to utilize.
Hopefully this will help some of you having trouble with the book, forgive me if I missed some of the issues but at times I got used to being confused and started digging through source code for answers and forgot to document it.
I would consider myself an advanced student of XNA. I teach others XNA. I answer other people's questions on XNA forums. People rarely are able to answer my questions in the forums, and I ultimately end up answering my own questions in the forums a couple of days later. I've programmed in Assembler and C++ and I'm reading advanced computer graphics books for C++ and DirectX along with this book. On the other hand, I'm reading this book because I'm studying HLSL and don't know how to do a lot of what this book teaches.
Let me start with the bad. First of all, I own a few books from this publisher, and I have to say that I firmly believe that this publisher is a couple of frat boys publishing out of their basement. They are by far the most unprofessional publisher I've ever seen in my life. Fortunately, this book is one of their better ones. However, the publisher published this book in spite of all of its faults. Furthermore, the book doesn't include source code. The publisher couldn't be bothered to add 30 cents cost to the book and publish it with a CD. Instead, they make you go to their website and give them your email address to get the source code. That's not that unusual these days, and they have the "excuse" that it would allow them to update the source code where a CD would not. Except they don't seem to be concerned about problems with the source code; half the example programs I downloaded from them would not build. I was able to get them to build by redefining the References for the code and the content and fixing a couple of other minor problems. But, it's a bit unprofessional to expect those learning to be able to fix the problems with your code. I blame that on the publisher. I also blame the publisher for not insisting that the author be more professional.
My biggest complaint is that the author really doesn't explain a lot of how things work in the book. If there is any hope for someone to learn from this book, it is in downloading the example programs, fixing them, and then reverse engineering them line by line until you understand them. Without doing that, there is no way someone who doesn't already know how to do what this book teaches is going to learn it from this book. The book itself is often little help in understanding what is being taught. It gives very high level cursory explanations that maybe give you a vague concept of what is being taught, but it often ends up teaching you nothing in the end. I seriously doubt anyone who is new to the topic is going to be able to write their own code that does this after JUST reading the book without reverse engineering the code.
So, in order to learn from this book, you WILL have to download, fix, and reverse engineer the example programs. Once you do, you will have a small nightmare on your hands. First of all, the author writes very few comments in his code. The code does a poor job being self documenting. And for code where the only way you are going to learn is from reverse engineering the code, it's just simply not acceptable for educational code to include few, if any, comments. The book doesn't explain the code in many cases, and neither does the comments within the code.
And to make matters worse, the projects downloaded from the publisher include massive amounts of extraneous code and files. Entire files, within the project, can be completely deleted from the example code and it will not change the way the program runs AT ALL. A lot of it is code from other examples in the book that is completely disconnected from the code for the given example. It's just there confusing you as you try and reverse engineer the example. Remember that the only way you are going to learn anything here is reading the code line by line, and then realize that a lot of the code isn't even connected to the program, let alone part of illustrating the lesson.
Within the code that is required, much of it is either bypassed and unused or not relevant to illustrating the current lesson being taught. The code is extremely convoluted in terms of educating people and staying focused on the lesson currently being taught.
The hardest part of reverse engineering this code is trying to figure out which parts of the code are needed and which parts could be removed or rewritten in a MUCH more simple fashion and still have the program do the exact same thing.
In short, the author is a terrible educator and the publisher published the book anyway.
So after that scathing review, now let me explain why this is one of the best Graphics Programming books out there, let alone one of the best XNA books ever published. In spite of all it's very serious problems, this book simply covers topics that I've never been able to find in any other book or tutorial ANYWHERE. And I mean, not only for XNA, but C++/DirectX graphics programming as well. And let me tell you, the book does such a poor job explaining and the example code is so hard to reverse engineer, I've bought several hundred dollars of advanced graphics and rendering DirectX/C++ books and spent countless hours Googling trying to find someone else to explain the same thing to me, and I just haven't seen these important topics explained anywhere else. (I own just about every XNA 3.0 and 4.0 book ever published and none of the cover half the stuff in this book at all. These are subjects in advanced 3D graphics books for professionals.)
Even if the author is getting paid for it, you have to salute him for being willing to share with people some things about 3D programming that you will DEFINATELY need to know that just really aren't explained anywhere that I've been able to find in the past couple of weeks LOOKING all over the Internet and every book published on the subject I can find.
But keep in mind, this book is not REALLY an XNA book at all. 80% of the book is teaching High Level Shader Language(HLSL), not XNA. XNA is used to call HLSL in the examples, but the author could have used C++ and 80% of the book would remain completely unchanged. So, needless to say, this is an ADVANCED XNA book. XNA programmers tend to be students of graphics programming, where C++ programmers tend to be more on the professional side, and this book probably has a few things to teach C++ programmers about using HLSL and game programming. So, for beginning game programmers it's a rough book that does a terrible job teaching an advanced subject that you NEED to know.
You could write professional 2D games for years without knowing anything in this book. It's really for 3D XNA students learning about HLSL. Or HLSL students programming in C++, or any other language (although you may have to learn XNA to get full value out of the book, especially since even the C++ programmers are going to have to reverse engineer the XNA code to get anything out of it).
I would definitely recommend this book to anyone studying HLSL in XNA or C++, in spite of how much I hate the book. Just realize that you're going to have to reverse engineer the source code that isn't even included with the book. But there are things covered in this book that you may simply not be able to find anywhere else. Stuff that you may use in almost all the 3D games you write from now on. It's just a shame that the author barely explains it in the book, and that reverse engineering the source code is such a nightmare.
So to sum it all up, you can't afford to not own this book if you are doing 3D XNA(or C++) with HLSL. Don't bother if that's not you. And realize, it's going to be like pulling teeth to actually understand all the lessons in this book.