Wednesday, February 27, 2008

GDC08 Friday

My first session on Friday was another one on the characters in Drake's Fortune. This one was presented by Christian Gyrling. He was in charge of implementing the enemy characters in the game. Christian talked about how they seperated the low level mechanics of which animations to play from the high level AI functions. That way their AI could issue simple commands like "find cover" and the lower level system would make the character face the closest cover point, run to get there, play a transition animation once it reached a certain distance from the point, and then play the in-cover animation. Christian also talked a bit about their additive animation system. I'm excited to implement some of these layered animations in our game.

My next session was by Tiago Sousa from Crytek. He talked about the effects in Crysis. I was really impressed that the Crysis guys had implemented so many effects like depth of field, motion blur, HDR tone mapping, and volumetrics, and that all of them work together so well. They really didn't cut any corners on Crysis. Visually I think it's about the most impressive game out there right now. Tiago talked about their system for water, including dynamic waves, reflection and refraction, chromatic dispersion, caustics, god rays, and that cool effect that happens on the screen when you leave the water. Next he talked about the shaders that they wrote to achieve the frozen look on objects. He said that effect was a real pain and required 4 separate iterations before they finally found a version of the effect that they were happy with. In the middle of the talk, Tiago gave a couple of guidelines for creating effects in games that I wish all programmers would follow. First he said "Never sacrifice quality for speed." I could hardly believe I was hearing that from a programmer. Most graphics programmers I know say exactly the opposite. He also said "Make the effects as subtle as possible." Usually when programmers put a new effect into a game, they really make it stand out and it ends up looking silly. Following the "subtle" advice is a good idea.

After that, I went to a session by Jeremy Vickery on Practical Light and Color. Jeremy is a lighting artist at Pixar and also a very good teacher. I loved the style of his presentation. He talked about the properties of light - diffuse, specular, reflection, refraction, subsurface scattering, etc. I loved his description of how light shifts in saturation as well as value when it gets darker. I learned a lot from him and I even ordered his DVD from Gnomon workshop so that I can really study the principles he was presenting.

Finally, I attended Adam Pletcher's session on Python for Artists. Adam really opened my eyes to a whole new world of posibilities with python. I already know MaxScript and I use it a lot to create tools to speed things up in 3ds Max. Python is a lot like MaxScript - but it's outside Max so it can do all kinds of things. Adam showed lots of demos of what it can do. He wrote several scripts that grab things from the web. One script grabbed the current number of people playing Halo 3 online. Another grabbed the current temperature for a given zip code and added to an auto-generated excel spread sheet. Another set of demos dealt with textures. The first demo scanned all of the textures in a directory and reported if any of them were not power of two or if they were saved at the wrong bit depth. For his final demo, Adam showed a script that he wrote that allowed you to fly around a 3ds Max scene using an Xbox 360 controller! Even better than that, he had assigned level decoration assets to the buttons on the controller, so you could use one button to switch between the set of available assets, and another button to place the assets in the level. It was controller-based interactive level creation inside Max. I was totally blown away. Needless to say, I am now learning python. I'm pretty excited about what I'll be able to do with it to speed up our art pipeline once I start learning.

Thanks for reading my GDC blog posts. If you'd like more information on any of the sessions I added, please let me know. I took at lot of notes and I'd be happy to share additional details if anyone is interested.


Anonymous Anonymous said...

Ben, I like to read your post from time to time. Not being a artist, most of what you say does not make much sense to me, but your talk of Python peeked my attention. Is this the same interpreted language Python or a game develeper specific package? What type of scripts do you write or would like to write?

Mike B.

March 03, 2008 11:27 PM  
Anonymous Anonymous said...

I just wanted to let you know I use your textures all of the time for my Concept homework. Thank you!

March 13, 2008 6:49 PM  
Anonymous Anonymous said...

My man, I have just stumbled on your textures searching the web.

I must thank you on your work.
Its most helpful!


March 23, 2008 3:40 AM  
Blogger Nuno Brito Lopes said...

thanks for the textures!

April 01, 2008 9:22 AM  
Blogger Unknown said...

Your textures, especially ones with bump and normal maps, rock!!

May 28, 2008 2:23 PM  
Anonymous Anonymous said...

Hi, I use your textures in my youtube account, they're nice thanks!

July 05, 2008 2:58 PM  

Post a Comment

<< Home