Presentation is loading. Please wait.

Presentation is loading. Please wait.

Artificial Intelligence in Game Design Intelligent Decision Making and Decision Trees.

Similar presentations


Presentation on theme: "Artificial Intelligence in Game Design Intelligent Decision Making and Decision Trees."— Presentation transcript:

1 Artificial Intelligence in Game Design Intelligent Decision Making and Decision Trees

2 Decision Making Based on internal and external information Defines a current action (“eat food”) Changes world and internal state “I am hungry”“There is food nearby” “I am not hungry”“Food nearby is gone”

3 “Intelligent Agent” Approach Reflex agent No memory, just “if-then” rules Memory-based agent Also based on current state Goal-based agent Chooses actions that best help meet current goal Utility-based agent Balances multiple weighted goals, choosing actions that give best overall state Sims Goal-based planning input rules action input rules action memory

4 Reflex Agents Example: “orc” reflex agent if hitPoints < 5 then run away from player if distance to player < 2 units then attack player if player visible then run towards player else move in random direction Internal state External state

5 Scripted Actions Visible actions usually limited to set of animations created in advance Often sequence of actions (“scripting”) Game AI Self destruct sequence Game Engine Poll again when script finished

6 Reflex Agents Must consider cost of gathering inputs if hitPoints < 5 then run away from player if distance to player < 2 units then attack player if player visible then run towards player else move in random direction This requires complex computations if player in same room or distance to player < 5 units

7 Hierarchical Rules Actions often hierarchical if hitPoints < 5 then moveTowards(player) if distance to player < 2 units then attack(player) if player visible then moveTowards(player) else moveTowards(random) These will call complex navigation subroutines to implement the action

8 Hierarchical Rules Lowest level = actions supported by game engine void moveTowards(object) if not facing object then turn towards object else if facing obstacle at distance < 2 units then turn right or left at random move forward else move forward

9 Designing Hierarchies Strategy Level –What goal does character attempt to meet? Build, attack, negotiate Tactical Level –How does character meet current goal? Which city to attack Which resources to use Motion Level –What action does character take this turn? Move forward, left, right…

10 Designing Hierarchies Task based –Major tasks NPC performs Guard Patrol Defend –Steps in tasks Wait Chase … –…–… –Motion Turn Move … High level character design team (works with game designers) Character motion team (works with animation team)

11 Level of Detail in Graphics Only render graphics at detail necessary for what player can see –Close up = full detail –Far away = little detail Minimize load on graphics engine

12 Level of Detail in AI Only use full AI when necessary –Fast approximations in other situations –Often when NPCs “off screen” Use full passing AI for cars visible to player Simple rule for cars not visible to player “ Faster car has 75% chance of successful pass ”

13 Swarm Intelligence Simple NPCs in groups can appear to cooperate Decision example: if no other player shooting, I shoot if in open, run for cover and shout if in cover, reload and wait Orc motion example: … if NPC blocking path to player then run sideways else run towards player … NPCs appear to be covering one another and coordinating attack!

14 Randomness in Games Randomness adds to playability –Characters less predictable, more “realistic” –Greater replayability –Rare occurrences can surprise player Example: choice of weapon in Fight state 60%5%35%

15 Randomness in Games Goal: Randomness should not appear random Best solution: Randomness used to “tweak” existing rules if hitPoints < 5 then run away from player else if hitPoints < 10 and random# < 0.5 then run away from player else attack player Unpredictable behavior in borderline situations Logical behavior in extremes

16 Potential Problems with Randomness Possibly many parameters to tweak –How do we know these are the best probabilities to use? Difficult to thoroughly test –Combinations of probabilities may create a bad case (i.e. easy win) which is possible but very unlikely –That case will be found by some player ConfidentAngryFrightened Attack Left40%60%30% Attack Right40%35%20% Defend20%5%50%

17 Prioritization Problem: Multiple rules may fire with contradictory actions –Problem if rules added by multiple developers (side effects) if hitPoints < 5 then run away from player if distance to player < 2 units then attack player What if next to player and have low hit points?

18 Decision Trees Simple tree traversal –Node = question –Branch to follow = answer –Leaf = final action to take Hit points < 5? yes no Obstacle between myself and player? yes hide no run Within one unit of player? yes attack no Path to player clear? yes run towards player no run sideways

19 Decision Trees Not necessarily binary Can merge branches Hit points HP < 5 light run away Within one unit of player? heavy attack HP ≥ 10 yes hold position no run towards player Weapon type 5 ≤ HP < 10

20 Designing Decision Trees Identify possible actions (leafs) Identify internal/external knowledge for choosing action Order questions in tree: –Crucial factors (health, etc.) –Ease of gathering knowledge (fastest first) yes Player visible? no attack yes hide patrol HP < 5? no yes Player visible? no attack yes hide patrol HP < 5? no

21 Randomness in Decision Trees Make decisions at some nodes based on random number Math.random() < 0.5 yes defend no Math.random() < 0.2 yes Swing sword from left no Swing sword from right

22 Randomness in Decision Trees Problem: Randomness in high level decisions Stands still or patrol for a few frames at a time Better if it decided to do one and keep doing it for a while Math.random() < 0.4 yes Stand still no Patrol

23 Timeouts in Decision Trees Execute decisions for specific time Problem: must have some way to interrupt actions if world changes Math.random() < 0.4 yes Stand still For 10 min no Patrol For 30 min


Download ppt "Artificial Intelligence in Game Design Intelligent Decision Making and Decision Trees."

Similar presentations


Ads by Google