October 21, 2004
Games Development Teaching & optimisation
I've spent the last two days at the Games Development Teaching forum here in Melbourne. It has been very enlightning to talk to some of the people running Games Dev courses and seeing the gap of knowledge that exists between education and industry, and how we are going to address that gap.
One of the most disturbing things I heard (for me, as a programmer) was that one institution had been told to stop teaching optimisation techniques because "compilers do it all for you" (not just in game-dev, but throughout CompSci). This came up because I'd just been talking about the need for games programmers to have a good understanding of optimisation, and to NEVER trust the compiler to do it all for you!
MSVC++ is a pretty good optimising compiler, as is Intels Win32 compiler. I can understand why people might think that this means all compilers are good (even though they are nothing compared to the human brain). However when you enter the world of gcc you discover that it's not a great optimising compiler, and then you head down to console-specific compilers which are lucky just to compile the code correctly (since their hardware target has only existed a few years). The console games industry lives at the bottom level of this rung, while the compilers do a good job getting the games to run they cannot be trusted to make optimisation decisions for you 100% of the time.
In the games industry we deal in nanoseconds and manually optimising code is the only way to do this (in hand with tools like vtune and similar) - It worries me that I see new programmers who don't know things as simple as moving lines of code outside a loop to improve performance, because somebody else assumed the compiler would do it for them.
Posted by Zaph at October 21, 2004 08:45 AM
TrackBack URL for this entry:
Post a comment
Thanks for signing in, . Now you can comment. (sign out)(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)