Archived

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

Are you just a blind monkey?

This topic is 4947 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

I''ve been reading Andre LaMothe''s "Tricks of the Windows Game Programming Gurus". I''m also interested in bying the sequel, "Tricks of the 3D Game Programming Gurus". Unlike the original "Tricks", the sequel doesn''t use DirectX. To me this came as a surprise, but I got interested anyway. Reviewers at Amazon.com seem to disagree on the usefulness of this book, though. While some people feel disappointed for it''s lack of DirectX material, some people regard the whole DirectX as full of s***. For these guys this is a long awaited path to the real programming. Someone even said that he had lost his interest to his great love, game programming, until this book. Is there really such a gap between DirectX programmers and the so called "true programmers" who actually understand how things are done underneath the surface? And how to make the decision of whether to buy this book? I''m interested in DirectX, but would also like to know the details of how things work. If I bought this book would it ultimately make me a more knowledgeable DirectX programmer? Or would I also be transformed into this grazy game programming hacker- wannabe and refuse to even spell the name of the evil? Or should I just bypass this book and join the endless legions of the blind slave monkeys pulling the API strings? (yes, I''m deliberately trying to funny here. The whole subject seems a bit foolish anyway).

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
As far as im concerned there is no reason to buy Lamothes books at all. His books are at best a rewrite or the Directx SDK, the Windows API documentation and the game programming gem series.

Lamothe''s C programming style is also a big turnoff for me. The directx sdk goes into details about how the process works(with a few gaps here and there), but Lamothes book doesnt really cover these gaps IHMO.

Share this post


Link to post
Share on other sites
quote:
Original post by Anonymous Poster
As far as im concerned there is no reason to buy Lamothes books at all. His books are at best a rewrite or the Directx SDK, the Windows API documentation and the game programming gem series.

I disagree, LaMothe''s books are not rewrites, and they are very useful to any game programmer.

OP: Well, it''s a good idea to know what happens behind the scenes of an API such as Direct3D, so writing a software engine would be an invaluable learning experience. I''ve not actually written one myself (might do soon though), but I''ve heard it will take a lot of hard work to just get a simple software engine up and running. If you have the motivation (and the math skills ) then pick up Andre''s new book and start coding!

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
I started out using DirectX and OpenGL - always assuming I "knew" the basics of what went on behind the scenes. Then I decided to write my own Software Engine with small effects like Specular Lighting, etc.

Man do I realize how little I knew before. Not only has writing a software engine taught me a ton, but it also allows me to program DirectX much more effeciently.

I would highly recommend writing a software renderer or engine first. It''s worth the few months that it takes to learn / write and optimize.

Share this post


Link to post
Share on other sites
That was a problem with many of the game programming books I purchased when I was starting out. Fully half the book was a tutorial on using DirectX (OpenGL, etc...). Now, the first one purchased was useful, but after I learned the basics of the APIs, it became irritating to buy yet another tutorial the next time I picked up a book.

I haven''t looked at "Tricks of the 3D Game Programming Gurus", but if LaMothe abandons the "traditional" DirectX tutorial at the beginning, I have a hard time seeing this as a bad thing. Last time I purchased a game programming book (it''s been awhile) there were plenty of glorified DirectX tutes, but a definite lack of "Intermediate" to "Advanced" books with real meat and substance to them.

If you want to be a knowledgeable 3D programmer, master the basics using OpenGL or DirectX, then toss them out and write an engine in software, including renderer. For that, I recommend "3D Game Engine Design" by David H. Eberly. An eminently useful book, chock full of mathematical goodness.

Once you understand what 3D is all about, neither DirectX nor OpenGL will be a mystery to you. At that point, I recommend you shelf the software renderer and resume using the API of your choice for the hardware acceleration, armed with the knowledge to make fullest use of the API.

Josh
vertexnormal AT linuxmail DOT org


Check out Golem: Lands of Shadow, an isometrically rendered hack-and-slash inspired equally by Nethack and Diablo.

Share this post


Link to post
Share on other sites
quote:
Original post by VertexNormal
That was a problem with many of the game programming books I purchased when I was starting out. Fully half the book was a tutorial on using DirectX (OpenGL, etc...). Now, the first one purchased was useful, but after I learned the basics of the APIs, it became irritating to buy yet another tutorial the next time I picked up a book.

I haven''t looked at "Tricks of the 3D Game Programming Gurus", but if LaMothe abandons the "traditional" DirectX tutorial at the beginning, I have a hard time seeing this as a bad thing. Last time I purchased a game programming book (it''s been awhile) there were plenty of glorified DirectX tutes, but a definite lack of "Intermediate" to "Advanced" books with real meat and substance to them.

If you want to be a knowledgeable 3D programmer, master the basics using OpenGL or DirectX, then toss them out and write an engine in software, including renderer. For that, I recommend "3D Game Engine Design" by David H. Eberly. An eminently useful book, chock full of mathematical goodness.

Once you understand what 3D is all about, neither DirectX nor OpenGL will be a mystery to you. At that point, I recommend you shelf the software renderer and resume using the API of your choice for the hardware acceleration, armed with the knowledge to make fullest use of the API.

Wow, that is one of the most informative posts I have read in a long time. I am in the same situation as the original poster (deciding on whether to write a software renderer), and you have really set me back on course, thankyou Josh.

Share this post


Link to post
Share on other sites
quote:
Original post by dmikesell
Josh - I''ve also heard good things about "Real-time Rendering", by Moller and Haines. Do you also recommend this book for such an endeavor?

Its a very good book - it assumes you know the basics and goes straight for the more advanced stuff which is either being used in high end games now or being worked on to bring them into the realtime range. Most stuff described is intentionally hardware friendly and game friendly as well.

Don''t expect lots of code or implementation details, its mainly covers theory (but manages to do it comprehensivly, so it covers all the practical limitations and problems as well).

IMHO the best graphics book for cutting edge stuff and covers practically *everything*.

Share this post


Link to post
Share on other sites
I''m reading real time rendering at the moment. It is a good book but make sure your math is up to scratch when you read it. It does have a couple of appedicies going over things like vector and matrix math but really I''d say you need to know and understand those things before hand.

Oh and to the OP: Any decent graphics programmer should know how an API works internally, if you don''t you just can''t get the best out of it. You don''t have to write a fully featured extremely fast software renderer, just understand the theory and write a basic one, it will increase your understanding of 3d Graphics greatly.

Share this post


Link to post
Share on other sites
quote:
Original post by dmikesell
Josh - I''ve also heard good things about "Real-time Rendering", by Moller and Haines. Do you also recommend this book for such an endeavor?



I''ve seen that one on the shelf, but I haven''t purchased it or taken the time to peruse it in depth. From what I''ve seen, it looks interesting. I reckon the next time I am within 45 miles of a bookstore, I''ll make a detour and pick it up.



Josh
vertexnormal AT linuxmail DOT org


Check out Golem: Lands of Shadow, an isometrically rendered hack-and-slash inspired equally by Nethack and Diablo.

Share this post


Link to post
Share on other sites
I did not read "Tricks of the 3D Game Programming Gurus book " but honestly I wonder who can be really interested in such a book.
Should "true programmers" actually understand how things are done underneath the surface?
In my opinion the pioneers'' era is over.
Nowadays 3 main area of specialisation can be distinguished.

a) API designer
b) Engine designer
c) Game designer

LaMothe''s book is of use for group a ( how many people???)) of some use for group b) of no use for group c ) apart an appreciable intellectual curiosity, of course


Share this post


Link to post
Share on other sites
Guest Anonymous Poster
quote:
Original post by Monder
You don''t have to write a fully featured extremely fast software renderer, just understand the theory and write a basic one, it will increase your understanding of 3d Graphics greatly.

What would you call a simple one? What features should a simple software renderer have, in your opinion?

Share this post


Link to post
Share on other sites
Well I''d say it can render textured polygons, with back-face culling, frustrum clipping etc. Have some lighting built in and make it flexable enough so it''d be easy to add new things to it (such as bumpmapping) you may also want to experiment with other ways of describing 3d scenes such as NURBS.

Share this post


Link to post
Share on other sites
I dont know if anyone is still reading this thread but I am in a similar dilemma as the OP.

I bunch of people advised me to skip all the stuff "under the hood", get with the times and learn the DirectX API.

I almost went that route, but I think I will stick with writing a software renderer for the next few months (besides which the commputer I have access to until August does not have a graphics accelerator. Yes, I know Intel and AMD have simulators available, but I dont want to go through all of that).

-Rahul

Share this post


Link to post
Share on other sites
Forgive me for being sceptical, but i don't see how writing my own software renderer teaches me to use 3D APIs more efficiently.

One of the biggest issues with writing efficient 3d engines is keeping both the CPU and the GPU busy all the time. eg. prevent pipeline stalls in the 3d hardware. Also state management is very important because state changes can be expensive when doing hardware accelerated 3d. Last but not least, resource management. When to use video memory, when to use AGP memory.

Those issues are non-existent in a software renderer.
Pipeline stalls do not happen, when your only using the CPU.
State changes are (nearly) free, so state management is also not that important when using a software renderer.
Obviously the memory issues are also non-existent in a software renderer as you'll only use system memory.

Off course there are a couple of things that you'll learn from it. Things that are normally done "behind the scenes" when working with 3d APIs.
For example:
- clipping
- rasterizing
- interpolating (to calculate input value for fragments)

But these things don't affect the performance as much as the other things i mentioned at the top of my post.


Edit: forgot to mention one thing,
Writing your own software renderer IS alot of fun.
It can be very rewarding to see it doing its job when it finnished.
So if you have the time, just go for it...

Edit2: eeeeek... just realized this thread came straight out of the grave... lol

[edited by - Direct4D on May 28, 2004 12:23:13 AM]

[edited by - Direct4D on May 28, 2004 12:24:39 AM]

Share this post


Link to post
Share on other sites
I found LaMothe''s second book in that series quite an enjoyable read. Not very practical for today''s environment, but still enjoyable because of all the tricks he does to make a (relatively) fast software rendering engine in this day of hardware acceleration.

Will it enable you to make that dream game you''ve been wanting to make? Probably not, but practicality isn''t the only reason to read. Maybe understanding how your hardware does things is interesting to you.

(Contrary to the opinion of some commentors who obviously haven''t actually read this book there is next to nothing that you can get from just reading the DirectX API as it an engine that isn''t dependent on it)

Share this post


Link to post
Share on other sites