Quantcast
I checked out your site. I are you part of a professional video game blog (a bit of oxymoron but you know what I mean).

My name is Michael Kofman and
I am a Developer.

Graduated Full Sail University with a Bachelors of Science in Game Development with a life long background in IT and Web Design.

GDC 2010 – Day 1

This year’s Game Developer’s Conference felt a little strange to me. For one the conference has been skewed from Monday through Friday to Tuesday through Saturday. Second, Mascone West has been decommissioned due to some other conference going on during the same time. Third this was going to be my first ever #AISummit.

For me the conference really began at Day 0 when I had the opportunity to meet with lots of folks from the AI Guild including the opportunity to finally meet Alex Champandard from AIGameDev.com who literally felt like a celebrity at the event. Speaking of AIGameDev, I got to speak with two very cool contributors from the Sanbox project, Ken Short and Radur (I hope I’m spelling this right since I never got a business card *hint hint*). I met with two long time friends and people who I feel like I already owe a lot to; Dave Mark, and Neil Kirby. While I’ve followed Dave around the states throughout 2009 as well as joined him on some Team Fortress 2 skirmishes, it was a real pleasure to shake hands with Neil Kirby once again. With that being said, Neil introduced me to this year’s Eric Dybsand scholarship recipient Gabriel Deyerle who I felt like I instantly became friends with, and speaking of scholarship recipients I met Victoria Smith for the second time who was the third recipient of the scholarship in 2009. Only missing Andrew Armstrong, Neil was nice enough to take a picture which I hope to post into here once he gets around to uploading it onto flickr. And speaking of flickr do check out the AI Game Programmer’s Guild group at http://www.flickr.com/groups/agpg/. To wrap up Day Zero I met with three other speakers of the AISummit, Borut Pfeifer, Chris Jurney and the great Emily Short.

Day One officially began as I made my from the Union Square Hotel and made sure to get an early seat while watching Dave and Chris go through some last minute set up work.

10am-11am
The first session began with three case studies on recent AI trends. Tara Teich (Double Fine Productions) spoke about the challanges in Brutal Legends when it came to integrating 50+ unit types of various sizes, proportions, attacks combinations with the main avatar, and the design decisions of the AI Avatar character. This reminded me a bit of my own game from full sail when creating Amoeba Sports. Creating a believable AI opponent that resembles that of the human player’s avatar is a very daunting task. Tara explained that for the AI Avatar they kept his behavioral priority to something like the following:

  1. Retreat if low Health
  2. Capture Resources
  3. Defend the Base
  4. Join a battle in progress
  5. Hang out with the largest army and look cool

Tara also mentioned their flat state machine that utilized “Utility” functions for transitions.

Alex Champandard gave a talk on Killzone II AI with how they integrated bots into almost everything they did. Killzone II bots’ greatest challenge being the ability to adapt to various maps, and class combinations. This was handle using the standard logic separation between strategy, squad based, and individual AI systems. Alex stressed the heavy use of annotation and referenced several papers on the subject. Something worth noting though is that the annotations never dictated behaviour but instead acted as hints to the AI, such as chock point areas, or good sniper locations. Generally this kept the AI very competitive but did not resolve, what Alex called the third plateau, the ability for the AI to adapt to human tactics that were not accounted for or the evolving beyond expert systems, data mining, and creative AI. For this I followed up with Alex after the session and personally I feel not enough is being done. The only real solutions available are forms of learning and pattern recognition, neither is currently being used in commercial games.

Finally Chris Jurney spoke about Dawn of War II and the challenges faced with transitioning from a game like Company of Heroes that was very impersonal based combat to DoW2 which had quite a bit of melee. Chris summarized the solution to this problem through what he referred to as search based melee. Essentially casting a radius around various units that represented their melee distance, and performing an A* pathfinding to where the their unit radius must be exactly touching the enemies unit radius in order to perform a melee attack. Combined with an additional rule to avoid overlap on a given target created very convincing battle simulations and made the animation bit a lot easier to handle.

11:15am – 12:15am
Behaviour Trees by Alex Champandard, Michael Dawe, and David Hernandez Cerpa began the talk by exclaiming the sheer popularity and flexibility of BTs in video games. For those who aren’t familiar with Behaviour Trees I recommend doing some light reading on AIGameDev.com, but for all intensive purposes they are Hierarchical Finite State Machines that don’t really operate in the sense of states, and use very light and compact nodes to transition behaviours. David opened up by talking about the various node types (Priority, Sequential, Stochastic) and continued with defining slightly more advanced topics such as Event-Driven behaviours (the ability to enable behaviours through events), and Dynamic Behaviours (mostly referring to enticers). Enticers are behaviour trees that attach themselves to actors and detach themselves when finished. These BTs are useful for level behaviour support, and downloadable content. Alex continued by talking about common Design Patterns within BTs, such as scaling up using a HFSM mindset. For this he recommended to not approach behaviour stringing in a linear fashion, but instead chunk BT hierarchies into a blackboard architecture and than create more abstract behaviours that utilize them such as SneakToCover(), PeakAtThreat(), RunToCover(). This of course is hinting at the problem that Alex has been trying to solve and that is the creation of generalized AI. The most important take away from Alex’s bit was to keep BTs decoupled from the problem at hand. Be careful of “state like” behaviours. Lastly, Michael spoke about integrating scripting into BTs, which is quite a common thing to do. BTs are about flexibility and rapid iterations and scripting is usually the ideal solution to the problem. For LUA Michael spoke about a common interface that integrates with the C++ code. They would make sure that no trig was performed in any of the scripts. A tool was created to allow for the designers to rapidly iterate through behaviours, where he himself only created 7 out of the 50+ that were in the game. Lua was optimized by removing floating point math, and prevent mid-frame garbage collection. He typically would spend 10% of his time debugging existing scripts from the designers, and 10% on functionality requests (trig) that were done in C++ and executed using dll functions. He also stressed that BTs need to be periodically reviewed.

1:45pm-2:45pm
The next session was a panel discussion on AI Middleware. I’ll thankfully keep this one brief as it was pretty synonymous that we should continue to be wary of AI Middleware granted the rent at the end of day by the host John Funge was really interesting. Key points of note were:

  • We want tools over black boxes
  • Integration support by the middle ware company is often moot, due to the precieved benefits
  • Evaluating middleware is often difficult due to their inability to simulate production environments during testing

The only success story came from Steve Gargolinski from Blue Fang Games who intergrated Havok Behaviours into their Wii title.

– intermission –
Well I’m already getting very tired as I am already at 1300 words and really need to sleep. I’ll do my best to continue while it may not actually happen until my plane ride home on Saturday evening. After all GDC tends to get busier, and its an event that is difficult to cover in great detail

One Response to “GDC 2010 – Day 1”

  1. Andrew Says:

    March 16th, 2010 at 9:03 am

    Nice writeup, obviously waiting on the rest – and a shame I couldn’t make it, simply a cost issue!




Please Reply








XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">