Friday, May 11, 2007

GDC, Part II (and long overdue)

Part 2 of my GDC wrapup will be relatively short since I covered most things last time. Also the rest of my pictures came out quite poorly so no pics this time around.

The first class I attended at GDC was entitled "Interactive Cinematography" with speaker Thiery Adams from Ubisoft. First Thiery elaborated on what he meant by Interactive Cinematography. When people normally think of cinematography in games, the first thing that probably comes to mind is cutscenes or other in-game scripted events. Thiery on the other hand is referring to cinematography in regards to what the player sees as he makes his way through the world. As an example he presented the camera work in the Nintendo 64 classic, Mario 64, as a game that gave many people their first impressions of interesting camera work in a 3D environment. Thiery's main insight into the subject was that while games have progressed greatly since then (i.e. look at Resident Evil 4), game developers still don't talk in a common grammar when describing how a scene should be presented to the player. Thiery suggests taking a cue from the movie industry by having developers speak in terms of framing, focus, exposure, pacing, close-ups, long-shots, panning, tracking, etc... The talk was not quite what I expected but interesting none-the-less. Definitely something to consider.

Since the last time I attended they added a new kind of session called a poster session. The idea is basically to have a presenter talk about his subject in front of, well, a poster. The idea seems somewhat sound until you actually attend one of these sessions. The one I attended was called "True Imposters" by Eric Risser and I have to say it was absolute madness. Since the poster sessions are on the floor (right next to the hiring fair and one of the cafeteria's), it was so loud you couldn't actually hear the presenter. That hardly mattered however as he was completely surrounded by the people trying to read the poster behind him, which meant you couldn't even see the poster yourself. The idea is ludicrous; I really hope the GDC organizers wise up and drop it for next year.

From what I got out of the session though, Eric came up with a solution for having imposters that properly replicate the color and depth of an object, as opposed to just the depth as in depth sprites, and the color as in imposters. His solution is basically just a raytracer within a pixel shader which unfortunately makes it completely impractical for real-time usage. Why would any developer want to use an LOD technique to imitate an object when the LOD technique is more expensive than just rendering the object!? Ah, academics...

An interesting session I attended involved something I had never heard of; Dual Quaternions. The basic idea, from what I understand, is that you can extend a basic quaternion (you know, those 4-dimensional imaginary numbers that can be used to represent a 3-dimensional orientation) to provide a translation in addition to the orientation. The talk was titled 'Skinning with Dual Quaternions', by Ladislav Kavan, so the examples centered around the effective use of DQ's for animating joint orientation and translation (as opposed to using a matrix or standard quaternion). The main benefit to using DQ's over a standard quaternion is that when you interpolate your skeletal joints between frames using a spherical interpolation (slerp) you're also transforming your translation around the unit sphere.

I liked the talk, but I do have to say Ladislav used incredibly biased examples to skew the effectiveness of his results. DQ's are supposed to fix issues related to odd interpolation artifacts, but a large part of what his algorithm was solving was a very poorly rigged model. I've worked on games for a while so understand the evolution of an animated model from the conceptual sketchup to the finalized product, and I can tell you that with a great artist you can reduce the kinds of problems he was presenting with some clever fine tuning. While I acknowledge that DQ's give some very nice results, I couldn't possibly justify the 30%+ decrease in performance for it when a little work makes existing animation schemes function just fine.

In addition to the classes and numerous other events that occur at GDC, there is also a yearly IGDA meeting. IGDA if some of you are not aware is the Independent Game Developers Association, and they basically advocate for game developer rights and setup committees to explore currently relevant issues. The meeting was exceptionally disappointing for me. The last time I attended was many years back, but little has changed. There are certainly more people, and some of the players have changed, but the IGDA is really not doing much to enrich game developer lives. The biggest topic on hand was how to increase awareness of the organization while spreading it's message to more people. The problem though is that the IGDA does not even have a mantra or mission statement that people could latch on to or identify with. Not even something like "To enrich game developer lives through advocacy and education". I was about to bring up this point but was interrupted by someone with a different agenda (something about Tom Buscaglia, who's now the game industry super star lawyer or something) and then had to leave early to attend a Sony meeting. I may try to change this by becoming more active in the local chapter in the future but enacting change is never an easy thing.

Finally the last class I attended was titled 'Shared Technology at Rare', by Tom Grove (who is the Tool/Tech Director or some equivalent at Rare). While Tom was without a doubt the most nervous lecturer I have ever seen (I was honestly worried he would have a heart attack right there), he made a lot of great points and was an interesting speaker to listen to. Tom chronicled the process involved in making a solid shared technology team as they did at Rare for such titles as Perfect Dark Zero, Kameo and Viva Pinata. It sounds as if they had a lot of hurtles to overcome. One very interesting insight was that they started out treating the project groups as customers, but quickly learned that this model just doesn't work since projects have very specific needs that require constant maintenance. Overall a good talk if not a little nerve-wracking (for the speaker, heh).

And that wraps it up. I apologize for taking so long to post this but I had written up a nice long post and accidentally rebooted my PC before saving (thanks Windows Update). Google should really add an auto-save option to Blogger. Either way my fault. Next time something more interesting. See ya!

No comments: