GDC08 Notes – AI Roundtable day 2

The left of me

So day 2 of the AI roundtables was a lot easier, although for some reason I didn’t use my laptop to take notes, sigh. This day, we did split into two rooms – I covered the “Action / FPS genre” side, while Dave Mark covered the “RTS / RPG” side. It’s tough to divide this day up (having read about past years), but I think if it was made into “strategic high level” and “actor” divisions, it might make more sense. TBS/RTS is just too different to FPS / RPG AI for the most part, but I digress (and it’d mean too many people in the actor side 😉 ).

There’s some good humour involved in many of the points – I haven’t expressly marked them, I hope they’re obvious enough 🙂

AI for teammates

  • Player doesn’t see the contributions
  • Hard to give orders
    • Can allow AI to storm through the levels – no player help
    • Team mate feeling is hard
      • controller throwing and swearing hard!
    • User modelling and training to remove player frustration with the AI
  • Hierarchical breakdown of tasks has worked well
    • Works well in military simulations
  • Perhaps remove AI levels based on difficulty/user ability
    • More a design problem (?)
    • Scripting the AI to certain situations can work
  • Allies being the secondary role, or the player being a supporting role
    • HL2: Ep2 – antlion battle (player is more in a secondary role!)
    • Helping the AI
    • Clear intent + clear expectations (of the situation, and of the AI)
  • Communication bandwidth is low (ie; what can the AI tell about the player? very difficult…)
    • Facing, position, weapon armed
    • Slap button? (or “No button”) -0 hard to do – cycle AI plays (eg: in sports) etc.? maybe just stop current play? Depends on AI architecture.
    • Need a way to communicate with the AI
    • The queues are often missed
    • Some games have the commands per person
      • Keeps the players busy but not too busy
    • AI learning (training) player success / failure (works well in sports)
      • Feedback in B&W AI can suffer oddly (hitting it if they are doing something right accidentily)
In front of me

How do we match the players expectations of AI?

  • Telepathy
  • Feedback + different situations
    • Force a player to stop (eg: Sniper)
    • Sport games strategy – can’t run a (soccer) goal by going down the middle of the pitch
    • Crysis – first 1 hour tutorial boss kept on the line (and gave instructions and info)

Training the player

  • Killing the player
  • Training them to do the designers game
  • Training them to know what the AI can/will do
    • Good rules – Halo brute gets mad
    • Hit them over the head with what it does
      • Gates – Bioshock’s welcome level
      • Playtest the stuff a lot to reduce frustration
  • Feedback “your a good player” – expressly told

Artificial stupidity

  • Getting in the players line of fire, or have the AI not hit the player
  • “Mean time to stupid” in Basketball sports game
  • Slit your wrist test
    • SWAT storming is the hardest situation
      • Leathal situation – and we add in a clown with a gun and no training!
    • Knife slient attacks
      • Hard in real life (backup person with a pistol is there). Player is not trained so it was removed because it is hard to make fun.
  • keep teammates near the player and sometimes in front
    • In a fast game it is hard
    • Avoiding breaching too – COD4 scripted it
The right of me

Players walking through AI’s / teammates is a good idea

  • If not, a push button is needed
  • 0.15 miliseconds (or was it 0.15 seconds?) of stop if you do move through one in an example of how it’s allowed
  • Doesn’t work well if lots of guys or no space to move if pushed
  • If the AI decides to go to cover, take the point
  • But waypoints don’t use that, but if they do it can work
    • Basketball – both sides can see a claimed space when planning movement

Code separation

  • Game code and AI code separated
  • Lots of yelling to get done
  • Controller seperation (AI using the controller) is hard. Teaching to use controller! Lots of example of it working well however
    • Not literal button presses used, use the direct “Have pressed command to “attack””, not “pressed button X” interface of course
    • Stops cheating if “just another client”
    • Allows learning to play if players can see it
  • AI taking over characters, need same API!
    • But senses API still there
    • Good to hack abstraction (No “Push down A” etc.)
    • Useful if AI abilities match players abilities

And that’s it – a bit more structured this time, so should be more useful. I didn’t record the audio however, and Dave wasn’t in the room, so this is likely as good as it’ll get from me.