I'm just getting into coding up some 3d rendering apps and I'm considering taking the jump into interactivity. While developing I've learned about Euler angles, gimbal lock, quaternions, frustum, culling, vector matrices, (quad/oc)trees, etc. Haven't touched vertex buffers, textures, mipmapping, peripheral interfaces (other than mouse/keyboard), and general game engine components.

I imagine all of these terms, techniques, have evolved over time from early "Wolfenstein" implementation, to Quake 3 implementation, to modern day id Tech 5 implementation (and everything in between.)

Seems like information like this would be valuable so I can rule out certain implementations of something because they've already been obsoleted by other newer and cooler things. Essentially looking to evolve my own skills, but on a fast track (instead of reading all the material and chronologically keeping track.)

Are there any good articles that layout the evolution of game development techniques?

Thanks, Chenz

P.S. I'm not trying to avoid RTFM, just trying to only get the up-to-date information.

  • \$\begingroup\$ It's a good question. I will be watching this for answers as to whether any such thing exists. \$\endgroup\$ – Engineer May 6 '11 at 17:34
  • \$\begingroup\$ I have a feeling that this is far too broad a topic for there to be any meaningful response. Maybe I'll be proven wrong however. In particular I find it interesting that the question references ID Software's tech as if it is somewhat standard or definitive, but actually the preferred techniques differ across the industry. \$\endgroup\$ – Kylotan May 6 '11 at 20:43
  • \$\begingroup\$ Here is one suggest that I've seen that I thought was pretty good... http://www.realityprime.com/articles/scenegraphs-past-present-and-future -Chenz \$\endgroup\$ – Crazy Chenz May 10 '11 at 0:40

The Real Time Rendering authors keep a blog that attempts to track this sort of thing for rendering. The opening notes to the 3rd Edition Real Time Rendering book were also helpful in this regard, for me.

Look where these authors look:

  • GDC, SIGGRAPH, and other conference proceedings (including the marvelous GDC Vault; there's both a free section and a paid section -- Llopis recommends watching one session over each lunchbreak, a practice I heartily recommend),
  • game industry publications (e.g. Game Developer Magazine),
  • various graphics blogs (a subset of the answers to the Game Development Blogs question will be very applicable here), and
  • the "collection of articles" books such as the ShaderX series, anything with "Gems" in the title, et cetera.
  • (You'll find other non-article books, e.g. Game Engine Architecture, will come up repeatedly; go back and read those as you hear about them multiple times or are specifically recommended to, especially if they have relatively current editions.)

"Game development techniques", especially the combination of rendering and engine design you're specifically calling out here, is a big and constantly (daily!) evolving category. It's also necessarily subjective. You're likely not going to find any one resource that will cover what you want and stay remotely current. This isn't to discourage you from trying to create such a resource, but first...

It may be better for you to try to find the forefront of the industry and attempt to be "swept along" a bit.

Follow the industry greats: influential coders and/or writers (overlapping sets, there). In addition to the aforementioned sources, watching twitter can give you a hint of what they're thinking about and doing now -- stuff they're perhaps not ready to write about in detail. Some I've found to be consistently interesting:

There are also very meaningful conversations about what tech and practices people are using, have stopped using, are trying out, et cetera -- see for instance Carmack's recent response regarding the usage of trees in rendering. Terse (as is usual for twitter), but interesting, and there's a lot of other writing about this issue once you start looking.

Watch these people and who they communicate with, and you'll start to feel a sort of pulse of the industry.

Surround yourself, and be willing to branch out. (Immersion learning isn't just for spoken languages.) Don't rely entirely on any one medium. Subscribe to some "push" media (e.g. blogs, twitter, magazines, conferences) in addition to whatever you do to "pull" information.

Develop a sense of who might be interesting and useful to watch or read over time (finding the gafferongames blog was an exemplary moment for me -- a lot of distilled wisdom and technique there).

Don't be too fixated on history or evolution -- it's interesting and useful, but it will come as a byproduct of this immersion in industry sources.

Regarding specific techniques: if you're curious whether they've been replaced with something newer/better, or if there are alternatives, dig a bit on a per-case basis. It often doesn't take more than 10-15 minutes of searching around, especially if you have a decent list of good sources already. It's daunting to hit a million seemingly undifferentiated pages on google regarding e.g. scenegraphs or game loops, half with wrongheaded, obsolete, or incomplete (and yet touted as the be-all-and-end-all) recommendations. But if you happen to know authors or tech from other places, you can assign more value to those results.

It won't be overnight. It may be occasionally overwhelming (don't worry about that too much, learn to trust yourself to pick out the interesting bits). But it will be rewarding. When you've done this for a while, you can share some of the resources you've found and valuations you've made with others.


Not the answer you're looking for? Browse other questions tagged or ask your own question.