Artificial Intelligence in
Game Design
Randomness Inside State
•
Randomness in actions taken by NPC
– Randomness inside update method
– Can depend on current state
Confident Angry Frightened
Attack Left 40% 60% 30%
Attack Right
40% 35% 20%
Randomness Inside State
•
Randomness in Initial Setup
– Randomness in enter method
– Example: choice of weapon in Fight state
Randomness in Transitions
•
Same current state + same stimuli
= one of several possible next states
– Possibly including current state
•
Performing different tasks at random
Patrol in front of Door
Player visible
Player visible
Guard Door and Shout for Help
Chase Player
Random Behavior Timeouts
•
Continue strong emotional behavior for random
number of steps
Wander
Predator seen
Flee
Predator not seen
10%
Predator seen
Predator not seen
Unpredictability of World
• Small chance of “unexpected” occurrence
– Adds “newness” to game even after multiple plays – Adds to “realism” of world
Reload
Finished reloading
Aim Fire
Target in sights 98%
Gun Jam
Target in sights 2%
Normal case
Unexpected case
Randomness in Emotional States
Confident Angry
Frightened Player HP < 10
60%
Small hit by player 25%
My HP < 10 50% Heavy hit by me
30%
Heavy hit by player
30%
• Emotional transitions less predictable
• Effect of “delayed reaction”
My HP < 10 50% Small hit by player
75% Player HP < 10 40%
Heavy hit by player
70%
Probabilities and Personality
• NPCs with probabilities can give illusion of personalities
• Differences must be large enough for player to notice in behavior
Confident Angry
Frightened Player HP < 10
20%
Small hit by player
90%
My HP < 10
20% Heavy hit by me
30%
Heavy hit by player
30%
My HP < 10
80% Small hit by player
10% Player HP < 10
80%
Heavy hit by player
70%
Heavy hit by me 70%
Orc with anger
Dynamic Probabilities
•
Likelihood of transition depends on something else
– More realistic (but not completely predictable)
– Can give player clues about state of NPC
Firing
Player not firing
Reload
1- % of bullets left % of bullets left
Patrol in front of Door
Player visible
Guard Door and Shout for Help
Chase Player
Emergent Group Behavior
•
Each NPC in group can choose random behavior
– Can appear to “cooperate”
– Half of group fires immediately giving “cover” to rest – If player shoots firing players, rest will have time to
reach cover
Patrol
Player visible
Fire
Take Cover
50 %
50 %
Emergent Group Behavior
•
Potential problem:
Possibility all in group can choose same action
– All either shoot or take cover
– No longer looks intelligent
•
Can base probabilities on actions others take
Patrol
Player visible
Fire
Take Cover
% of other players firing
“Markov” State Machines
•
Tool for decision making about states
– Give states a “measure” describing how good state is – Move to state with best measure
•
Key: Measure changes as result of events
– Possibly returns to original values if no events occur
“Markov” State Machines
• Example: Guard choosing cover
• Different cover has different “safety” measures
• Firing from cover makes it less safe (player will start shooting at that cover)
•
Represent safety as vector of
values
1.0
1.5
0.5
trees
wall
“Markov” State Machines
•
Assign
transition “matrix”
to each action
•
Defines how each state affected by action
– Multiplier < 1 = worse
– Multiplier > 1 = better
•
Example: fire from trees
– Trees less safe
– Other positions marginally safer (player not concentrating on them)
0.1
1.2
“Markov” State Machines
• “Multiply” current vector by
matrix to get new values
• Note: real matrix multiplication requires 2D transition matrix
0.1
1.8
0.6 1.0
1.5
0.5
0.1
1.2
1.2
=
0.1 0 0
0 1.2 0
“Markov” State Machines
•
Further events modify values
•
Example: Now fire from behind wall
1.2
0.2
1.2 0.1
1.8
0.6
0.12
0.9
0.72
“Markov” State Machines
• Note “total safety” (as sum of values)
decreasing
3
2.5
1.74…
– May be plausible (all cover becoming less safe)
– Can normalize if necessary
•
Can gradually increase
values over time
– Usually result of
time/turns without event
– Example: player leaves area
1.1
1.1
1.1 0.12
0.9
0.72
0.132
0.99
0.792