Adaptive AI Engine for RTS Games

Discussing the theory and practice

Distributed AI

Posted by Ogail on August 10, 2009

Distributed AI

  • The first rule of ALL game programming: Keep it Simple, Stupid
  • The purpose of the distributed method is to simplify overall AI creation and maintenance, by spreading out AI tasks into modular, as well layered systems working with each other
  • Several AI Engine Layers:
    • Perception/Event Layer: Filters incoming sense data for relevance and various other factors
    • Behavior Layer: Determines the specifics of how to perform a given action
    • Animation Layer: Determines which animation to play to fit game state
    • Motion Layer: Handling aspects like pathfinding, collisions and avoidance
    • Short-Term Decision Making Layer:
      • The narrow-view intelligence for the AI entity, primarily concerned with just the entity
    • Long-Term Decision Making Layer:
      • Handles wire-view intelligence issues, like planning or team based considerations
    • Location-Based Information Layer:
      • Includes information transmitted to the entity from influence maps, smart terrains

     

  • Perception and Events Layer:
  • Why to create central perception System:
    • Prevent game values being calculated several times within single game loop
    • Supports debugging and tracking the system
  • Perception systems works fine with message based systems

     

  • Behavior Layer:
    • This layer is a candidate for data-driven systems
    • The more content designers put in this layer, the more virtually “calculation-free” personality and intelligent your characters with exhibit
    • scripts shouldn’t contain math; it contains sense-style that characters’ behaviors requires to seem realistic

     

  • Animation Layer:
  • Choosing right animation to play is not a trivial task
  • Scripted systems here saves calculation time

     

  • Motion Layer
    • Basic movement, pathfinding and obstacle avoidance algorithms stated here
    • You can adjust this layer for every character you have:
      • Smart Character: know when to use teleport in the suitable time
      • Weak Character: let the obstacle pass first and then he passes
      • Strong Character: move the obstacle away the way!

     

  • Short-Term Decision Making:
    • This layer is relative to character either because of its attributes, its current perceptions or its last experience
    • A character might be almost dead so his goal now is to get health power up or run away
    • A character’s weapon is empty so, its goal now is to hide and reload the weapon and appear again
    • Most of the games develop the ST layer in state-based manner

 

  • Long-Term Decision Making:
    • LT are likely to be outside any one unit
    • In RTS games this layer usually developed under FuSM
    • This layer contain the planning algorithms and high strategic decisions
    • In RTS games, AI opponent can use full fuzzy system logic to “guess best” action to take under current info

 

  • Location-Based Information Layer:
    • This layer is like blackboard architecture for creating AI Engines
    • Uses of LBI Systems:
      • LBI can help LT in determining weak defensive area
      • In knowing military intersect area in the map
      • Discovering valuable suitable ambush areas in the map
      • Pathfinding algorithm use LBI to avoid kill zones or bad designs in the map
    • Triggers could be added to this layer to help to simplify other layer (like be careful enemy is near you!)

     

Quote: “reaching for insect intelligence first, and then go on”

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
%d bloggers like this: