Student question...

Threads related to Google Summer of Code
Post Reply
tidalwv
Gnoblar
Posts: 23
Joined: Tue Apr 04, 2006 8:22 pm

Student question...

Post by tidalwv »

How experienced in 3D and C++ should someone wanting to tackle any of those projects listed on the wiki be to reasonably be able to tackle them for the SoC? I know I, for one, am still new to the 3D side of things; but as I'm wanting to enter the game industry as a coder, it's something that really registers on my radar as something cool/good to try to do -- especially if the internship I'm scouting doesn't work out -- but I'm unsure if I have the skills needed to reasonably tackle something.
User avatar
xavier
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 9481
Joined: Fri Feb 18, 2005 2:03 am
Location: Dublin, CA, US
x 22

Post by xavier »

When dealing with the Ogre API you have the advantage of not having to code the actual 3D matrix manipulations...but you DO have to understand what they are, what the transforms, matrices and vectors represent, and how they work. Heh, I guess actually that's the hard part; the mechanics of coding matrix calculations is the easy bit. ;)

You should know object-oriented and interface-based (aka contract-based) design; at least the major object-oriented design patterns that recur frequently within Ogre, such as Abstract Factory, Visitor, Iterator, Observer (aka Subscriber) and so on.

Also you should know the why and how of STL (Standard Template Library, the standard C++ library) since it is used throughout Ogre on a large scale. STL classes such as map, vector, list, set, and so on.

Suggested References (can also be found in the Wiki):

"Design Patterns", Gamma/Helm/Johnson/Vlissides (aka "Gang of Four")
"Effective C++", Scott Meyers
"Large-Scale C++ Software Design", John Lakos

All of these should be available in your school library; they are also available cheap in used or remaindered form via Amazon (which is just about the only way I buy my books anymore these days ;) ).

As far as actual game coding, it might be worth your while to check out "Game Coding Complete" by Mike McShaffry; while there is a second edition, I still find the first edition more usable for starting out learning about game development -- he touches on all aspects, including some non-technical game production aspects that you might want to consider (not necessarily for SoC but for gaining knowledge about the game development industry itself). The second edition will help if you are interested in console development, since he wrote it with the additional experience of developing [Thief: Deadly Shadows for a console.

That said, the Ogre codebase is eminently readable, well-designed and very plain (you won't find a lot of weird code constructs to work through, as the Ogre Core Team seems to believe that plain works just as well as "elegant", with the added bonus of being readable and maintainable to boot ;)). If you are not intimidated by looking through other people's code, you can learn a LOT about both 3D and C++ just by looking through the Ogre code. Beware that it is HUGE.

Of course, you do not need to see the first line of code to be able to use Ogre to develop a 3D application: that's what we (and the manual and API reference and Wiki, of course) are here for. :)
Post Reply