Jump to content
  • Advertisement
Sign in to follow this  
robinei

OpenGL Book on 3D engines?

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

What's a good book on the design and implementation of a 3D engine discussing issues like scene graphs, material/shader systems, minimizing state changes and so on? I'm reasonably new to the topic(I've never made a complete 3D engine before, just terrain demos etc) but I want a book that's got reasonably indepth coverage of the important issues. It should present scalable solutions to the problems. I mean they should be suitable for a real game engine, and not just as an introduction in a book. Use of C++ and OpenGL in example code would be preferable.

Share this post


Link to post
Share on other sites
Advertisement
This one is good

"3D game engine programming" by Stefan Zerbst

http://www.gamedev.net/columns/books/bookdetails.asp?productid=421

Share this post


Link to post
Share on other sites
There is no authorative book on game engine design...

Some books I found useful:

- Object Oriented Game Development by Julian Gold: Good book on design issues, patterns, and engine design. Kind of dogmatic, but information very useful.

- C++ for Game Programmers by Noel Llopis: This is not a learning C++ book, it is about using C++ effectively for different game programming tasks (Game state serialization, plugins for editors, memory management, etc)

- 3D Game Engine Architecture by David Eberly: Book about the design and implementation of the engine David created, very educative.

- 3D Game Engine Design by David Eberly: This is NOT a book about game engine design, is more about the math behind a game engine. This book is not going to help you much on learning on how to create an engine.

- 3D Game Engine Programming by Stefan Zerbst: Good book for understanding how to create a simple engine.

- Terrain Rendering with DX9 by Greg Snook: Greg has an interesting architecture for his graphics engine in the book, with minimal state switches, and fairly extensible. He also has a web site. Note that this is mainly graphics...

You can also take a look at how different people have created their engines and look at some of the engines out there (i.e. Ogre, Crystal Space, Torque, etc, etc), and look at GDC presentations (i.e. GDC 2005 presentations on message passing, presentation on the Halo2 tag system, etc, etc)

Some engines have heavy dependencies for scripting (i.e. Torque) and it makes it very easy to get new content up and running, but it makes it difficult for the programmer to understand what is going on.

Note that everybody builds their game engine in a different way, even the big companies make different choices on how to solve the same problems, the best thing you can do is to read a little, try to build an engine, learn, and start over...

Share this post


Link to post
Share on other sites
Quote:
Original post by poss74
"Tricks of the 3d game programming gurus" by Andre LaMothe

<ducks>

I was going to suggest the same thing...<ducks behind poss74/>

Share this post


Link to post
Share on other sites
Quote:
Original post by Alpha_ProgDes
Quote:
Original post by poss74
"Tricks of the 3d game programming gurus" by Andre LaMothe

<ducks>

I was going to suggest the same thing...<ducks behind poss74/>

Hehe I have that one, but it's more about the technicalities of a software renderer than the design and architecture of a modern 3D engine.

Share this post


Link to post
Share on other sites
Quote:
Original post by ldeej
There is no authorative book on game engine design...

Some books I found useful:

- Object Oriented Game Development by Julian Gold: Good book on design issues, patterns, and engine design. Kind of dogmatic, but information very useful.

- C++ for Game Programmers by Noel Llopis: This is not a learning C++ book, it is about using C++ effectively for different game programming tasks (Game state serialization, plugins for editors, memory management, etc)

- 3D Game Engine Architecture by David Eberly: Book about the design and implementation of the engine David created, very educative.

- 3D Game Engine Design by David Eberly: This is NOT a book about game engine design, is more about the math behind a game engine. This book is not going to help you much on learning on how to create an engine.

- 3D Game Engine Programming by Stefan Zerbst: Good book for understanding how to create a simple engine.

- Terrain Rendering with DX9 by Greg Snook: Greg has an interesting architecture for his graphics engine in the book, with minimal state switches, and fairly extensible. He also has a web site. Note that this is mainly graphics...

You can also take a look at how different people have created their engines and look at some of the engines out there (i.e. Ogre, Crystal Space, Torque, etc, etc), and look at GDC presentations (i.e. GDC 2005 presentations on message passing, presentation on the Halo2 tag system, etc, etc)

Some engines have heavy dependencies for scripting (i.e. Torque) and it makes it very easy to get new content up and running, but it makes it difficult for the programmer to understand what is going on.

Note that everybody builds their game engine in a different way, even the big companies make different choices on how to solve the same problems, the best thing you can do is to read a little, try to build an engine, learn, and start over...

Ideally I'd like an engine for which games can be created just by means of scripting, but I don't know if I should keep that much in mind now. For now I want to make a 3D engine and not a nessecarily complete game engine.
I've downloaded the Wild Magic source code and it appears to be a pretty comprehensive 3D engine. "3D Game Engine Architecture" looks like a good match for what I need.

Share this post


Link to post
Share on other sites
If it is just for a 3D Engine you might want to look at Snook's book, he has a nice framework on top of D3DX with minimal state changes and nice support for shaders. The only issue is that everything is D3D, and I believe you prefer OGL.

Something else you might to take a look at is scripting languages if you want to make the system scriptable.

Lua, Python, Angelscript, Ruby, and javascript are some of the options. It seems like there has been a lot of support for Lua and Python. Lua has been used in several recent projects (i.e. WOW), and Python is also very popular.

Both languages also have very nice, easy to use, binding interface. Lua via Luabind, and Python via Boost.Python. Note that both binding libraries are heavy on the template side and debugging might not be straight forward.

Julian Gold has a couple of chapters on the design of the rendering component of a game engine.

Share this post


Link to post
Share on other sites
BTW - There are some interesting articles on 3D Engine design with focus on shaders on the ShaderX 2 (Tips and tricks) book, it even has the design choices made by some major middleware rendering engine (For which I do not remember the name right now) for supporting shaders. The framework seemed a little bit complex but very flexible...

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!