
For quite a few days now I have been asked if the presentation I made at this years Game Developers Conference will be available online. My answer is yes, and I am eagerly awaiting my presentation to show up on the GDC website myself. Well, I can’t wait anymore so here it is. Beware, it’s quite large. [Download - 12.8 MB]
Cheers,
Christian
Friday
“A Leap of Faith: When to Leave your Job and go Independent”
Brandon Sheffield, Charles Nicholson and Tom Plunket

I enjoyed this panel very much. Discussions about best team sizes… 2-3 seemed to be the best. Lawyers…get a good one that know the industry.Office vs. Garage… don’t work at home. It can create friction about who pays for the house/garage. Where do you get funding?… well, it seemed really hard to get. Most people seemed to invest their life-savings into the startup and friends and family came forth and wanted to invest in the company. Other issues discussed was whether you have an in house artist or not. Not having one means fewer people but also mean longer iteration times… sometimes a whole bunch of hours if the artist is half way across the world. Overall this was a very funny, easy going and informative panel. I will most likely attend more of these at the coming GDC’s.
“Taming the mob: Creating believable crowds in Assassins Creed.”
Sylvain Bernard and James Therien - Ubisoft Montreal

Special walkways existed for the town folks to walk along. It way kind of like a high way with intersections. Easy and cheap. Civilians were randomly generated by using pieces. They did comment on the impact this has on rendering due to large number of draw calls per character. High LOD’ing was put in place to make things cheaper (turn off IK, lower bone count and more). They used a flood-fill algorithm to decide where to spawn new civilians. This seemed a little weird but apparently worked ok for them. Voices and ambient audio was huge to make the world come alive. We should all focus on adding more audio to out games. Civilians would have special animations they could play if they saw the player perform acrobatics or if he was fighting. This would enhance the feel that the town folks noticed the player. When passing close to another character they had an animation that twisted the upper body of the character to make it feel like the character was moving through a tight crowd. No collision was made between npcs.
AI Programmers Dinner

This was the second highlight of my Friday. Starting the day by doing a talk in a packed room was really great. Finishing the day with a dinner with some talented AI programmers where each new conversation topic was more interesting then the previous was awesome. I was fortunate to go to the dinner with my great friend Mark Botta (AI @ Crystal Dynamics) and we ended up at the same table as John AberCrombie (Lead AI @ 2kBoston). It was great and some great discussions about team size and structure came about. We had to admit that we hadn’t played each others games… but once that was established we went onto all kinds of topics.
Next longer stop for the evening was when I started talking to Damian Isla (Lead AI @ Bungie). Now that conversation was really great where we discussed the Halo AI behavior model and how it has been very inspiring to read Damians paper on the Halo2 AI. The group grew as the topics changed and we were joined by Dave Mark(IA on AI and Post Play’Em), Steve Rabin and a guy from the “Sims” team who’s name I unfortunately can’t remember. We talked about perception models and how perceptive should the AI be. Steve Rabin and I kept entertaining the idea of npc’s with big hats and plumes that cast long shadows and how that clearly shows how diffuse the term ‘perception’ is. It was a great time. There were lots of laughter and crazy ideas. At some point I remember that the idea of rendering the view of each npc isn’t too far away purely processing-wise. The question was whether or not we want to have that resolution.
The night was a definite success and I will do my best to attend it from now on.
That kind of sums up my GDC -08 experience. The number of really good talks were pretty small and I didn’t feel that I got what I was hoping for during GDC, maybe next year. If all days would have been like my Friday it would have been great. I’ll still go next year to meet up with the industry’s best.
See you there,
Christian
Thursday
“Playing to Lose: AI and Civilization”
Soren Johnson - Firaxis

Didn’t really enjoy this one as much as I had hoped. He was talking about whether the AI was playing to win or playing to lose. Here he was talking about whether the AI is made to be ‘Good’ or ‘Fun’. He compared chess and “Desktop Tower Defense”. I didn’t feel like I got much out of it unfortunately. It was a little to fluffy and no real take-away for me.
“Streaming Open World Pathfinding”
Quinn Dunki - Pandemic

Nothing to special here to be honest. I guess the somewhat interesting thing here was that she claimed that using nav meshes for navigation was too slow which sounds a little weird. Instead they were using ‘fences’ which seemed to be an indirect way of creating navigation nodes that were then sparsely connected at tool time. In other words they are using a very sparse nav graph for navigation. The fences are planes along the y-axis automatically placed around object, almost like cut-outs from the navigable area. The fences were connected for each object to a shape and navigation points were generated by each ‘edge’ of the shape. This basically gave you detailed navigation info around objects but _very_ sparse navigation data in between objects. Lots of smoothing needed to be done to get somewhat logical paths.
Each streamed area was a square shaped world-space aligned region. The connection of a newly streamed area was done by a fair amount of special ‘connection nodes’ in the nav-graph. It seemed to me like a “duct-tape solution” (not that our solution is any better) and as far as I know all game companies with streaming to some kind of duct-taping and there aren’t a nice way of doing this yet.
Steering and avoidance was done by using an ellipse query-shape in front of the npc. It was also used to push through crowds and such. Directional information was available so that npc’s would not walk in front of another npc but would rather try to walk behind to avoid conflicts and for better visuals.
Dynamic path-finding was on a smaller scale once a path through the static navigation data was found. This navigation dropped in the dynamically blocking objects onto the navigation map. The way they did that was by projecting the bounding volume of the object onto the XZ-plane and forming a convex-hull around it. This takes care of all problems with objects turning, falling and tipping over in a simple way. I liked this part.
“NaturalMotion - Runtime Character Animation with Morpheme”
Simon Mack - NaturalMotion

Bottom line: Complex animation graphs are hard to visualize! They do a nice attempt and can do a lot of cool stuff. They are even introducing a system to tag nodes and hide categories of animation state nodes in an attempt to simplify the editing of the graph. However, they don’t quite get there. The views of the graphs become spaghetti-like after a while with transitions everywhere and the thing that bugs me the most is that the transition details are hidden. In their graph a transition is only a line, which implies less importance then the states themselves. Well, when creating “Uncharted: Drake’s Fortune” I have to say that the transitions were just as important as the animations themselves. In other words… I did not buy the usefulness of Morpheme when developing games. Compared to our runtime-reloading of animation scripts in game I feel like we have a simpler approach to animation. The more layers you add between the raw animation and the game runtime the more complex it gets to understand.
Ok, yet another GDC is over. This year was especially interesting… mostly because I did a talk myself.
Here are some of the talks I attended and got at least some take-away from.
Wednesday
“How to go from PC to console development without shooting yourself in the foot”
Elan Ruskin - Valve
Lots of stuff about threads and […]
Read More
Ok, it is time for some self-promotion…
At the next Game Developers Conference in February I will be holding a talk called ‘Creating a Character in Drake’s Fortune’.
The ways in which we created the characters in ‘Uncharted - Drake’s Fortune’ was different from what I used when creating characters in other games. This is […]
Read More
January 2nd, 2008 by Christian Gyrling —
Reviews —
No Comments
Ok, I just finished ‘Zelda - Phantom Hourglass’ on the Nintendo DS. Now… I have played almost all Zelda games every released and I was really looking forward to another game in the style of the old Snes classic ‘Zelda - A Link to the Past’.
First the good stuff… The game supposedly takes over where […]
Read More