Please create an account to participate in the Slashdot moderation system

 



Forgot your password?
typodupeerror
×
Graphics Software

Best 3D Engine Reference Book? 13

Horizon_99 asks: "This is more of an ask John Carmack type question but since he already did this I would like to ask the community what is in your opinion *the* reference book to 3d engine design? And I don't mean a directx for dummies type book but something more along the lines of the physics related to 3d environments and such. Where should I invest my hard earned money for this part-time hobby of mine?"
This discussion has been archived. No new comments can be posted.

Best 3D Engine Reference Book?

Comments Filter:
  • There is no one book (Score:4, Informative)

    by Screaming Lunatic ( 526975 ) on Saturday October 12, 2002 @03:48PM (#4437946) Homepage
    Game engines consist of a whole bunch of components including but not limited to:

    graphics

    ai

    networking

    database

    physics

    IO

    So you're question is much to general. But to answer your question anyway. Get books by Dave Eberly [mkp.com]. 3D Game Engine Design is quite good, even though it is kinda slanted towards the scene graph methodology of feeding the graphics card. Geometric Tools for Computer Graphics is a great mathematical reference book, but I'm kinda biased since I was a tech editor for the book. Game Physics is supposed to be quite good, but I haven't read it.

    In terms of graphics get the OpenGL redbook and bluebook. Realtime Rendering is quite good. And everybody who is anybody in computer graphics has Computer Graphics: Principle & Practices. The Game Programming Gems series is quite good too.

    Other than that, the best way to learn to code is to read through code. id has GPL'd a bunch of their old engines. And the Torque engine is available for about $100.

    That should keep you busy for a while.

    • Be wary about the game programming gems series though.

      I have the "Game Programming All in One" and some of the coding practises aren't up to standards. But overall I feel that the concepts are right, just don't use it to learn C++.
  • by LowellPorter ( 466257 ) on Saturday October 12, 2002 @04:54PM (#4438163) Journal
    OpenGL SuperBible
    Game Programming Gems Series
    3d Graphics Programming Games and Beyond by Sergei Savchenko
    Michael Abrash's Graphics Programming Black Book (this book is dated)
    3d Game Engine Design by David H. Eberly
  • ... is a good book that I found very useful. It has everything from the basics to inverse kinematics and stuff, as well as sectoring and optimizations. It has a CD with full sources.

    Read the reviews at Amazon [amazon.com].
  • Somewhat of a plug (Score:4, Informative)

    by krs-one ( 470715 ) <.moc.smuroflgnepo. .ta. .civ.> on Saturday October 12, 2002 @11:26PM (#4439283) Homepage Journal
    As a semi-professional (i.e., I only do it when I have time and someone is willing to pay) engine programmer, I think I can offer some insight.

    First, visit my site, OpenGLForums.com [openglforums.com]. Its geared toward OpenGL obviously, but there is an abundance of talented 3D programmers there who can share knowledge with you regardless of the rendering API you choose to use.

    With that out of the way, I recommend the following:
    • OpenGL Game Programming - Kevin Hawkins and Dave Astle
    • OpenGL Programming Guide 3rd Edition - Mason Woo, Jackie Neider, and Tom Davis
    • 3D Graphics Programming - Sergei Savchenko
    • Game Programming Gems 1 and 2 - Assorted authors
    • Physics for Game Developers - David Bourg
    Thats just from my personal collection. Unfortunately, there aren't many books on engine design. The most valuable information you'll find is in the communities (like mine from above), or other sites like gamedev.net, flipcode.com, nehe.gamedev.net.

    Good luck with your quest. Its one of the most rewarding ones, I think.

    -Vic
  • Depending on the answer to that question, will tell you what you need to do. You don't say what you already know (in terms of coding such engines), whether you are zero knowledge (ie, you know what vectors are and how to add and multiply them using matrices, etc) or know much more (ie, you know how to code a demo of a cube rotating with full texturing).

    The problem with even a 3D engine is that you start to get into a ton of other areas that you wouldn't think would be a part of it, but are. One biggie is databases - essentially your world you are rendering exists as a database, but it has to be a high speed one, typically will be custom, and may even be specially geared toward 3D operations on the data sets that inhabit it. That is just one quick example, there are tons more.

    Other posters have pointed out what goes into a game engine, which covers even more ground, so I won't go into it here again. Even for 3D engines, if you have little or no knowledge of the subject, don't expect to gain it overnight. One thing when I tried learning this stuff that I figured out quickly was that I couldn't learn it just reading a book on vectors and matrix multiplication. Sure, that helped, but it didn't tell me WHY. So, I struck out on my own - first learning what rotation was. I started out creating apps that rotated things in 2D (using SIN and COS) and why that worked (ie, unit circles, etc play a big part here - if you are lacking in geometry or trig, brush up on those), then learned how to expand that into 3D, so I could do all of that. Then, I learned the hows and whys of projection, then back-face culling, then face/object culling based on intersections with the view frustum, etc - on and on and on...

    It never seemed to end, and in the end (I was wanting to make a 3D game engine, which never went far) I was finding I was taking up too much time on this, when there were tons of engines available that could do all I did, plus tons more I just didn't have the time to learn to do, that I realized that I was wasting my time on this hobby, rather than looking into wheels that already existed.

    Now, let me say that I never went anywhere with building a 3D game, and game building isn't my main thing anymore (though it is still something I think about - one of those "back burner" projects) - but I would never give up the learning I was able to come away with in my brief foray into 3D game engine mechanics. It gave me a lot of insights into the kind of things game engine coders face, and a respect to what they do, and what they know. It also taught me how complex the world really is, what it takes to even try to model things. It also helped me think of how to do new ways in coding to gain speed and tightness of code, which are useful in more ways than just pushing pixels.

    So, I don't want to discourage you - if what you are wanting to do is learn, then go for it. If you are wanting to learn enough to get a job in the field, then go for it. If what you are wanting in the end though is to create a game, then I would advise you to learn the basic mechanics (ie, enough to code a simple texture mapped cube spinner, possibly with cameras, maybe even a world database, etc - which was as far as I got - maybe even though in simple face lighting), to know how it all works at a basic level, and to understand what is being talked about - then find a free or GPL'd engine and work with it from there to create your game.

    As has been shown by countless examples scattered across the net, a game engine by itself is useless without a good playable game to go along with it...

  • I've found Moller and Haines' Real-Time Rendering to be straightforward, informative and (relatively) easy to read, even though my math background at this point is fairly limited. (Calc 1 and half a semester of calc 2).

He has not acquired a fortune; the fortune has acquired him. -- Bion

Working...