Archived

This topic is now archived and is closed to further replies.

How bad is this book?

This topic is 5583 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

The Zen of Direct3d Game Programming It has gotten bad reviews...which I didn''t know till after I bought it. To me the book seems great so far, but having no prior expierence in graphics programming I do not know what tecniques to avoid. For now I just want to learn 2d and do some basic games using that. The next chapter starts using 2d with DirectX, up till now its been using the GDI. So to anyone that has read this book, do I continue and just keep in my mind that things can be done other ways (as with everything in life)? or, do I get a different book before I get to far?

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Personally, I would recommend against the book. The problem is that you don''t know enough to separate the good parts from the bad. There are lots of other books out there - why cloud your thinking?

Share this post


Link to post
Share on other sites
Yes, I did find lots of bad reviews for this book, although I totaly disagree with them now. I thought it was a great book to learn on! I am now very good at 2D and 3D games, this book basicaly brought me into the world of graphics (DirectX).

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
I read the book *after* I already had considerable experience with D3D. From that point of view, I found the book very bad.

The problem with people learning from a bad book is that they are not in the position to know how bad it is.

It''s not a horrible book, but it''s probably the worst I have seen personally.

Share this post


Link to post
Share on other sites
Anyone want to recommend a better book of the same level? I actually bought Beginning Game Programming with D3D (title?), but after a couple chapters I returned it for Zen, and find it a much better read.
Of course, I am in the same boat...I''m an experienced engineer, but a beginning game programmer, so I don''t know *what* exactly makes this book bad.

Why didnt you experienced guys like it?

-c

Share this post


Link to post
Share on other sites
The bad part is the way Walsh teaches you how to do 2D graphics with Direct3d. Using IDirect3DDevice8::GetBackBuffer along with IDirect3DSurface8 and IDirect3DDevice8::CopyRects is a horrible way to do 2d. The proper way is to either 1. Use Tetured Quads(the best way to go nowadays), 2. Use ID3DXSprite(basically #1 wrapped up by D3DX), or 3. Forget about D3D and learn DirectDraw(DDraw is easier to learn and understand, but you have to do a lot of thing by yourself[drawing lines,loading images, etc...], plus, DirectDraw is becoming outdated). Most people will tell you(and their right) that #1 is the way to go, because you can take advantage of the amazing hardware acceleration of today's cards(== huge speed boost), and use D3D's special effects(like alpha blending), while still being 2d.
In conclusion, you can safely ignore Part III of the Zen book(except for the setup code and maybe the FPS code ), because it is pure crap.

p.s. Yes I have this book
EDIT: Now that I think of it, the Chapter on Quake-style consoles might be worth a look as well.
------------------------------
BASIC programmers don't die, they just GOSUB and don't return.

[edited by - GarlandIX on August 28, 2002 3:09:27 PM]

Share this post


Link to post
Share on other sites
TO a new person to 3d Zen of Direct3d isn''t that bad but it just leaves ya hanging, and fixing his bugs his good for practice it''s not a BAD book but not really good I give it a decent buy it for like 30 dollars or less if your a noob it''ll be helpful if you aren''t the ndont buy it. I''d suggest you to buy Game Programming All In One. Then get that programming RPG games book.

Eric Wright o0Programmer0o




Share this post


Link to post
Share on other sites
quote:
Original post by Anonymous Poster
Personally, I would recommend against the book. The problem is that you don''t know enough to separate the good parts from the bad. There are lots of other books out there - why cloud your thinking?


I thought the book was good for beginners. I guess you have a point there, sometimes we don''t know enough to tell. So how does one overcome this? In order to know, you have to learn, but if you don''t learn the right way, you won''t know what''s good. So you keep on running in circle.

So, which book is considered "good"? Is learning from books a good way to learn game programming? Is it better if one takes some courses? Or is it just about experience, the more you mess with it, the better you are.

Thanks.

Share this post


Link to post
Share on other sites
Personally, I though the Zen book was really good, it is about the best book I have brought so far (excluding Tricks; by Lamothe). I can''t wait for the second part to come out, "Zen of Direct3D II: Back with a Zengeance" which is out next March I think? Anyway its on amazon.co.uk (no reviews yet obviously).

Share this post


Link to post
Share on other sites
actually, are there any other suggestions on a book that teaches how to do 2d w/ D3D? I learned DirectDraw w/ LaMothe's Tips and Tricks, but I'm seeing that DDraw is fast becoming outdated. I'd still like to do more with 2d, and it seems like it would be a good way to ease into 3d.

[edited by - awwnelson on August 28, 2002 6:34:20 PM]

[edited by - awwnelson on August 28, 2002 6:34:54 PM]

[edited by - awwnelson on August 28, 2002 6:35:38 PM]

Share this post


Link to post
Share on other sites
The book has a very good approach to teaching a complicated topic, and was the one that helped me break through a barrier of sorts that held me back.

But as I progress, I can look back and spot the weaknesses, such as some of the 2D stuff, and the lack of emphasis on restoring device resources to name a few.

I still think it is a fine introduction to Direct3D, but its best to know its shortcomings when you jump in.

Value of good ideas: 10 cents per dozen.
Implementation of the good ideas: Priceless.

Proxima Rebellion - A 3D action sim with a hint of strategy

Share this post


Link to post
Share on other sites
I bought the book, and I actually liked it a lot.

Everything that people are saying about its technical faults is true. Having said that, it''s written in a style that keeps you interested (too many "game dev" books in the past have been so clinical that you fall asleep before you get past Chapter 1).

I liked it because I knew nothing about DirectX 8 before I bought the book, and I understood DX 8 well after I finished the book. What did I do in between? I worked through the author''s demos, which got me excited about writing more programs. And I learned the basics, which is all I wanted to know at the time (not to feel like I was drinking from a firehose).

There are probably better books out there. But if you plunked down cash for this book already, don''t toss it away just yet. You might find it to be a good resource (just balance it with a generous helping of www.gamedev.net).

Does anybody know if Peter Walsh hangs out on these forums at all? Just curious.

--Hoozit.

Share this post


Link to post
Share on other sites
Ok..I think I see the problem here.

I can see, with only my app development experience to guide me, that Walsh doesnt always go about things the right way. And the fact that he claims to have ''discovered'' High Performace Counters is a laugh.

That said, I am still finding this book very useful. I didn''t buy it to learn how to write quality code...I bought it to avoid learning DX graphics programming by trudging through the SDK docs. This book does accomplish that.
I have noticed, as GarlandIX pointed out, that his 2d implementation is rather weak, and his ''custom'' functions for integrating GDI with D3D sound like someone trying to hold onto the old way rather than learning the new. I don''t have any detailed information on the new way, other than GarlandIX said its called ''using textured quads'' (whatever that means =)).

One last thing I don''t like about this book, and the other D3D book I tried is that they both use references to the D3Dx libs, which MS essentially claims are for learning purposes and should never be used in a retail title because of their ineffeciency. I wish the authors would have at least mentioned this before I spent a week learning D3Dx from "Beginning D3D Programming" by some guy who didn''t speak English very well.

With all my ranting, I still stand by this book insofar as that it is a good way to get your feet wet...You just have to understand that the quthor is not perfect, and you can''t take his (or anyone else''s) word as gospel.

-c

Share this post


Link to post
Share on other sites
quote:
Original post by cryptyk
One last thing I don't like about this book, and the other D3D book I tried is that they both use references to the D3Dx libs, which MS essentially claims are for learning purposes and should never be used in a retail title because of their ineffeciency.


WHAT?????

This is probably as far from the truth as you can get. The details have been discussed here many, many times, so I won't repeat them. In short, MS says nothing of the sort and it would be extremely difficult to match the efficiency of D3DX. I suppose there might be times when you want something smaller (in size) than D3DX, but MS is not at all trying to dissuade people, at least that's not what they say when they take the stage at Meltdown, GDC, etc.

[EDIT] Upon reflection, there are a couple of areas (D3DXSprite and D3DXFont) that you might find reasons to improve upon, but this is a far cry from the general statement above. For instance, I don't use D3DXSprite because it takes 5 minutes to code my own, but I would not even consider writing my own D3DXMatrixMultiply with all of the optimizations of the D3DX library.[/EDIT]

quote:
...you can't take his (or anyone else's) word as gospel.

No offense, but you illustrated this perfectly!


[edited by - CrazedGenius on August 30, 2002 2:31:25 PM]

Share this post


Link to post
Share on other sites
i bought this book thinking it would help with game programing.
i am a ok c/c++ programer and after completely going throught the book i was upset that for sixty bucks i got the worse example
of game programing code wise.

Share this post


Link to post
Share on other sites
I''m almost done with Zen. I can say I''ve learned enough, though I have problems with how he did his zen engine. Globals all over the place. Classes depending on outside functions. I know of several of my Computer Science instructors would burn this book if they knew it existed. Probably not a book for the newbie at programming. If you''re seasoned with C++, then Zen is a kind of decent book.

-Escaflowne75

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
A rule of thumb -

Avoid books that have "The Tao of...", "The Zen of...", etc. This applies to books in any field.

Unless, of course, the books are about Taoism or Zen Buddhism.

Share this post


Link to post
Share on other sites
hahah, you guys diss this bok so harshly. This is what "I" have to say about the book, it''s good if your just starting into 3d Game Programming. If you aren''t and just want to maybe have the book around it''s good for about a 30 dollar value. DONT BUY it if you alreayd know how to do some of the basics of 3d programming in dx8. But the way you all bash the book suprises me it seems like you all dont want a reference/tutorial book. It seems more of you guys that are mad want something that is gonna be STEP by STEP way to makin your own stupid game engine. I would like to say that after going through half of thechapters of Zen I started writing my own 3d engine which turned out pretty nicely . Thats just my opinions on this piece.

Eric Wright o0Programmer0o




Share this post


Link to post
Share on other sites
Guest Anonymous Poster
quote:
Original post by KingsRevenge
...It seems more of you guys that are mad want something that is gonna be STEP by STEP way to makin your own stupid game engine...


Actually, it''s quite the opposite. If you are looking for a reference book, there are MANY books out there that will much better referenece materials and will have things like *correct* matrices and equations. They also won''t waste your time with things like "Getting fat...", "Getting jiggy...", and they won''t preface material with "As far as I can tell...". Imagine having a professor that began a lecture with "Well, I think..." and proceeeded to write the wrong matrices on the board!

Share this post


Link to post
Share on other sites
quote:

This is probably as far from the truth as you can get. The details have been discussed here many, many times, so I won''t repeat them. In short, MS says nothing of the sort and it would be extremely difficult to match the efficiency of D3DX. I suppose there might be times when you want something smaller (in size) than D3DX, but MS is not at all trying to dissuade people, at least that''s not what they say when they take the stage at Meltdown, GDC, etc.



As I mentioned earlier, I''m not a game programming guru by any stretch of the imagination, so I''m not going to argue about whether the D3Dx libs are efficient or not, but here is an excerpt from Microsoft''s DX 8.1 SDK documentation for the Xbox:
quote:

Direct3DX provides utility functions that allow rapid prototyping of your game. It has functions to load resources from files, manipulate meshes, use fonts, and do many other useful things. Many functions in Direct3DX can cause performance problems. As a result, use of this library in a retail game is not recommended.



And...

quote:

quote:
--------------------------------------------------------------------------------
...you can''t take his (or anyone else''s) word as gospel.
--------------------------------------------------------------------------------


No offense, but you illustrated this perfectly!



None taken...I disclaimed earlier that I was a beginning game programmer, and an experienced app programmer. I guess I should have clarified my point by saying, "Even though this guy is a published author on the subject of D3D programming in a game evironment, you can''t take his word as gospel when it comes to D3D programming in a game environment".

What I really mean though is that the book should be taken, imho, as a D3D tutorial, and not as an example of how to write quality code. Use Steve McConnell''s "Code Complete" for that.

-c

Share this post


Link to post
Share on other sites
Hmm.. strange.. That quote is not in the DX8.1 C++ docs (that I can find). By "DX8.1 SDK for the Xbox", do you mean the XDK? I've never heard it called that.

The following is from Philip Taylor on the DX newsgroup:
quote:

yes, D3DX can be used in a commercial game. the texture loading routines alone get used a lot.



and from Tony Cox on the same newsgroup:
quote:

With the latest version, many of the functions do indeed have some custom
assembly language, including optimizations for SSE and 3DNow! extensions.

If there are particular functions which you believe are performance critical
where D3DX is not performing as well as you'd like, please let us know (mail
directx@microsoft.com).



In general, MS is fairly committed to making D3DX very usable. This is in contract to D3DRM, which was regarded as the "easy but slow" way to go.

ps. I'm not trying to be argumentative. I'm only following up on this because there seems to be some misconceptions about D3DX...



[edited by - CrazedGenius on August 31, 2002 3:12:26 PM]

Share this post


Link to post
Share on other sites
quote:
Original post by KingsRevenge
hahah, you guys diss this bok so harshly.
Yup!
quote:
This is what "I" have to say about the book, it''s good if your just starting into 3d Game Programming.

I disagree. I think it''s a bad book to get started on since a large number of the techniques have to be unlearned to do anything useful.

Both Programming Role-Playing Games With DirectX (Jim Adams) and Special Effects Game Programming With DirectX (Mason McCuskey) had very good introductions to D3D. Jim''s book in particular is an easy read. He has a relaxed style that has a sense of humour without trying so hard that it''s annoying. Zen''s constant attempts to assure you of it''s coolness was very distracting.

I can''t comment on CG''s intro (in Realtime Rendering Tricks) because it''s still on order (*grumble*), but if his posts here are any indication it will be quite good as well.

And for those who don''t want to write RPG games, Jim''s book is still a great buy. It covers game scripting, which just about every game for every genre uses to some degree. Many non-RPGs have inventory systems. Discussions of 2D and/or 3D engines are applicable to all genres as well.

I would not hesitate at all to recommend Jim''s book to people just starting out in DirectX and game programming.

Mason''s book is a good follow-up since it focuses on techniques without much focus on how to use them in a game, which is actually a good thing. He explains techniques, implements a number of them and gives ideas on how to extend them to do custom effects. His book adds a number of nice tools to your programming toolbox.

CG''s book, I would imagine, is similar to Mason''s in that it''s a graphics techniques book, not a game dev book. The more techniques you understand, the easier it is to come up with your own, so it would still be a valuable resource.


Stay Casual,

Ken
Drunken Hyena

Share this post


Link to post
Share on other sites
You know what sicne were all taking about books. Lets just make a DirectX book list, label your book levels as Begginer books, Itnermediate Books, and Advacned books and give a rating 1 for bad, 2 for middle and 3 for REALLY good. Something like that could be helpful for peeps lookin for books.

Eric Wright o0Programmer0o




Share this post


Link to post
Share on other sites