1fanafzar game studio. how do you think about ai? what is ai 2fanafzar game studio
TRANSCRIPT
Fanafzar Game Studio 1
Introduction to AI in Computer Games
Hojjat JafaryFanafzar Game Studio
November 2012
2Fanafzar Game Studio
• How do you think about AI?
What is AI
3Fanafzar Game Studio
• The field of AI research was founded at a conference on the campus of Dartmouth College in the summer of 1956
• “The science and engineering of making intelligent machines” -- John McCarthy 1956
• The study and design of intelligent agents -- Russell & Norvig
What is AI
4Fanafzar Game Studio
• The Imitation Game (1950)
• A man (A), a woman (B), and an interrogator (C) who may be of either sex.
Turing Test
5Fanafzar Game Studio
• The Imitation Game
• We now ask the question, What will happen when a machine takes the part of A in this game?
Turing Test
6Fanafzar Game Studio
• Turing conjectured that, by the year 2000, a computer with a storage of 10^9 units could be programmed well enough to pass the test.
• The Turing test does not directly test whether the computer behaves intelligently– Some human behavior is unintelligent– Some intelligent behavior is inhuman
• Real intelligence vs. simulated intelligence
Turing Test
7Fanafzar Game Studio
• The Chinese room is a thought experiment by John Searle which first appeared in his paper "Minds, Brains, and Programs", published in Behavioral and Brain Sciences in 1980.
Chinese room
8Fanafzar Game Studio
Chinese room
9Fanafzar Game Studio
• Searle argued that software could pass the Turing Test simply by manipulating symbols of which they had no understanding.
• Searle concludes—the Turing Test cannot prove that a machine can think.
Chinese room
10Fanafzar Game Studio
• According to Strong AI, the correct simulation really is a mind.
• In 1931, Kurt Gödel proved that it is always possible to create statements that a formal system (such as an AI program) could not prove.
Strong AI
11Fanafzar Game Studio
• According to Weak AI, the correct simulation is a model of the mind.
• Can machines think?– boats and submarines do move through the water but
we do not call that swimming.
• Stuart Russell and Peter Norvig write: "AI researchers have devoted little attention to passing the Turing test."
Weak AI
12Fanafzar Game Studio
• The way computers "think" is vastly different from the way a human thinks. --James Martin
• AI is faster and has a larger capacity for storage and memory than any human.
• The largest nerves in the brain can transmit impulses at around 90 meters per second, whereas a fiber optics connection can transmit impulses at 300 million meters per second, more than 3 million times faster.
Alien intelligence
13Fanafzar Game Studio
• “A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E.” --Tom M. Mitchell
• REcognition, classification• Online and Offline learning• Supervised, Unsupervised, Reinforcement
Machine Learning
14Fanafzar Game Studio
• Classification
Machine Learning - Supervised
15Fanafzar Game Studio
• Clustering– We don’t know number of classes
Machine Learning - Unsupervised
X Y
12.37 15.64
22.8 7.8
34 17
91 50
11.9 17
44 19
80 45
21 9
33.31 16.5
79 39
… …
16Fanafzar Game Studio
• Clustering
Machine Learning - Unsupervised
17Fanafzar Game Studio
• The goal of a reinforcement learning agent is to collect as much reward as possible.
• Highly related to dynamic programming techniques
• Most famous technique is Q-learning
• Reinforcement Learning in First Person Shooter Games– IEEE TRANSACTIONS ON COMPUTATIONAL INTELLIGENCE AND AI IN GAMES,
VOL. 3, NO. 1, MARCH 2011
• High-level Reinforcement Learning in Strategy Games– International Conference on Autonomous Agents and Multiagent Systems
Machine Learning - Reinforcement
18Fanafzar Game Studio
• A simple idea: use the theory of evolution as an algorithm.
• A Population of Individuals
• Swarm intelligence– Ant colony optimization– Particle swarm optimization– Bees algorithm– Cuckoo search
Evolutionary Computing
19Fanafzar Game Studio
• Individual = Chromosomes
• Mutation, Selection, and Crossover.
• Operating on dynamic data sets is difficult• Tendency to converge towards local optima• Randomness
Genetic Algorithm
20Fanafzar Game Studio
• Simplified models of neural processing in the brain
Neural Networks
21Fanafzar Game Studio
• Multilayer Perceptrons
Neural Networks
22Fanafzar Game Studio
• How to train
• Black box
• Over fitting
• Computationally expensive
• Evolving Neural Controllers using GA for Warcraft 3-Real Time Strategy Game – 2011 Sixth International Conference on Bio-Inspired Computing
Neural Networks
23Fanafzar Game Studio
• A good book aboutGA and NN in games
Neural Networks
24Fanafzar Game Studio
Do we really need AI in computer games?
What we expect from game AI?
25Fanafzar Game Studio
• Efficiency
• Ease of Debugging (randomness)
• We don’t need general problem solver
• Believability– We don’t need human level intelligence– It doesn't really matter how NPC intelligence is
achieved, as long as the creatures in the game appear believable.(weak AI)
What we expect from game AI?
26Fanafzar Game Studio
• Video games provide a rich test bed for artificial intelligence methods
• Designers need to control the behavior of NPCs– Explicit control– Implicit control
• It is very genre specific• Avoid artificial stupidity
What we expect from game AI?
27Fanafzar Game Studio
• Agent cycle
Agents as NPCs
THINKSENSE ACT
28Fanafzar Game Studio
• Agent cycle
Agents as NPCs
MAP
GEOMETRY
ENTITIES
. . .
THINK ACT
29Fanafzar Game Studio
• Agent cycle
Agents as NPCs
REMEMBERREASO
N
BEHAVESENSE ACT
30Fanafzar Game Studio
• Agent cycle
Agents as NPCs
ANIMATE
NAVIGATE
. . .
THINKSENSE
31Fanafzar Game Studio
• Rule : if (condition) then action• Production Rule System comprised of a database of rules, each
rule consists of an arbitrarily complex conditional statements.
• They are fairly uncommon approach.
Rule Based
32Fanafzar Game Studio
• Search Methods, discovering a sequence of actions or states within a search space that satisfy some goal
• Goal-oriented behavior is still fairly rare in games.
Goal Oriented
33Fanafzar Game Studio
• Everything in game world is triangle
• In door / Out door
• Path finding still is a problem– Some pathfinding bugs(Video)
Introduction to Path planning
34Fanafzar Game Studio
• Graph Theory – shortest path
• Single Source shortest path
• All pairs shortest path – Floyd
– Store the result
• Heuristic F(n) = D(n) + H(n)
A*/Dijkstra
35Fanafzar Game Studio
• Near-Optimal Hierarchical Pathfinding,– A. Botea, M. Muller, and J. Schaeffer, Journal of Game
Development, Volume 1
Hierarchical Pathfinding
36Fanafzar Game Studio
• Grid/Tile Base– Fast– Easy to develop– Memory Inefficient– 2D and strategy games
Reviewing some pathfinding methods
37Fanafzar Game Studio
• Waypoint graphs– Manual
Reviewing some pathfinding methods
38Fanafzar Game Studio
• Waypoint graphs– Automated : Point of visibility
Reviewing some pathfinding methods
39Fanafzar Game Studio
• Worlds require a ridiculous number of waypoints• Difficult dynamic obstacle avoidance, if not impossible• Is not shortest path – not optimal• Impossible to do path-smoothing• Zig Zag path
Reviewing some pathfinding methods
Fanafzar Game Studio 40
Reviewing some pathfinding methods
Inefficient
41Fanafzar Game Studio
• Convex Polygons– Manual/Automated
Reviewing some pathfinding methods
42Fanafzar Game Studio
• Shortest path - Optimal• Smaller Search Space
Reviewing some pathfinding methods
43Fanafzar Game Studio
Reviewing some pathfinding methods
OK, But how to
implement?
44Fanafzar Game Studio
Reviewing some pathfinding methods• Mesh simplification
• Rendering techniques
• Flood filling with AABBs (UDK)
• Voxelization
• Check Mikko Monone’s work, RecastNavigation– http://digestingduck.blogspot.com
45Fanafzar Game Studio
• The general process is as follows:
1. Voxelization2. Generate Regions3. Generate Contours4. Generate Polygon Mesh5. Generate Detailed Mesh
Navigation mesh generation process
46Fanafzar Game Studio
1. Voxelization
Navigation mesh generation process
47Fanafzar Game Studio
1. Voxelization
Navigation mesh generation process
48Fanafzar Game Studio
1. Voxelization
Navigation mesh generation process
49Fanafzar Game Studio
1. Voxelization
Navigation mesh generation process
50Fanafzar Game Studio
1. Voxelization
Navigation mesh generation process
51Fanafzar Game Studio
1. Voxelization
Navigation mesh generation process
52Fanafzar Game Studio
2. Generate Regions
Navigation mesh generation process
53Fanafzar Game Studio
2. Generate Regions
Navigation mesh generation process
54Fanafzar Game Studio
2. Generate Regions
Navigation mesh generation process
55Fanafzar Game Studio
3. Generate Contours
Navigation mesh generation process
56Fanafzar Game Studio
3. Generate Contours
Navigation mesh generation process
57Fanafzar Game Studio
3. Generate ContoursDouglas-Peucker simplification
Navigation mesh generation process
58Fanafzar Game Studio
3. Generate ContoursDouglas-Peucker simplification
Navigation mesh generation process
59Fanafzar Game Studio
3. Generate ContoursDouglas-Peucker simplification
Navigation mesh generation process
60Fanafzar Game Studio
4. Generate Polygon Mesh– Triangulation– Merge to Convex Polygon– Benefits of Convex Polygon
Navigation mesh generation process
61Fanafzar Game Studio
5. Generate Detailed Mesh
Navigation mesh generation process
62Fanafzar Game Studio
5. Generate Detailed Mesh
Navigation mesh generation process
63Fanafzar Game Studio
• Path find with A*
– Graph nodes are convex polygons
– Corridor map
– A* is not complex to implement
– There are many optimization techniques
Navigation mesh generation process
64Fanafzar Game Studio
• Pathfinding is Not A Star, AUTODESK® KYNAPSE ® MIDDLEWARE WHITE PAPER
– Path smoothing
– Path following
– Deal with other NPCs
– Deal with dynamic evolutions of game world
Navigation mesh generation process
65Fanafzar Game Studio
• Velocity obstacle
• There are some variations – RVO, NLVO, FVO, HRVO, NHRVO, PVO
• Mikko uses RVO(Reciprocal Velocity Obstacles)
Navigation mesh generation process
66Fanafzar Game Studio
• Voxelization also used in Cover selection, Jumps, Camera movement
– Automatic annotations in Killzone 3 --Mikko Mononen, Paris Game AI Conference 2011
Navigation mesh generation process
67Fanafzar Game Studio
Navigation mesh, Zorvan Integration
68Fanafzar Game Studio
• Generation Types– Solo– Tiled Navmesh
• Dynamic loading• Deal with dynamic obstacles
• Off-Mesh Connections• Convex polygons
Navigation mesh, Zorvan Integration
69Fanafzar Game Studio
• How to simulate movement of intelligent objects like bird, animals, cars, etc. --Craig Reynols
• Stanley and Stella in: Breaking the Ice (1987)
Steering Behaviors
70Fanafzar Game Studio
• Simple Vehicle Model– Mass scalar– Position vector– Velocity vector– max_force scalar– max_speed scalar
Steering Behaviors
71Fanafzar Game Studio
• Seek• Flee• Flocking• Pursuit• Arrival• Obstacle avoidance• Path follow• Leader follow• Hide
Steering Behaviors
72Fanafzar Game Studio
• Seek Vs Flee
Steering Behaviors
73Fanafzar Game Studio
• Seek
Vector2D SteeringBehaviors::Seek(Vector2D TargetPos)
{
Vector2D diff = TargetPos - m_pVehicle->Pos();
Vector2D DesiredVelocity =
Vec2DNormalize(diff) * m_pVehicle-
>MaxSpeed();
return (DesiredVelocity - m_pVehicle->Velocity());
}
Steering Behaviors
74Fanafzar Game Studio
• Obstacle avoidance– Only circles
Steering Behaviors
75Fanafzar Game Studio
• Combining Steering Behaviors– Weighted Truncated Sum– Weighted Truncated Running Sum with Prioritization– Prioritized Dithering
• Open Steer
Steering Behaviors
76Fanafzar Game Studio
Advantages– Simplicity– Reliability– Predictability– Efficiency
Disadvantages– Local traps
• Oscillation
– Realism• Jagged paths
– Scalability
Steering Behaviors
77Fanafzar Game Studio
• Pure scripting!
• Structured – FSM– HFSM– Behavior Tree
Decision Making
78Fanafzar Game Studio
• Theory (Simplified)– A set states, S– An input vocabulary, e– Transition function, T(s, e)
• Map a state and an input to another state
FSM
Patrol (idle)
Combat
Return to post
PursuePlayer Seen
Near PlayerFar from postReach post
79Fanafzar Game Studio
• Finite State Machine (FSM) is the Most Commonly used Game AI Technology Today– Simple– Efficient– Easily extensible– Powerful enough to handle a wide variety of
situations
• Decisions only depend on current state
FSM
80Fanafzar Game Studio
• Hard Coded– Switch Statement– Function pointers– Polymorphism (State Pattern)
• Interpreted– Data Driven– Scripted
• Compiled– machine code– Generating source code
FSM
81Fanafzar Game Studio
• Function Pointer-Based, Embedded Finite-State Machines– Chapter 3.1, Game programming gems 1
• A Finite-State Machine Class– Chapter 3.3 Game Programming Gems 3
FSM
82Fanafzar Game Studio
• Each state can be a complete state machine in its own right
• Original Paper – Statecharts: A Visual Formalism for Complex Systems D. Harel
Science of Computer Programming 8, 1987
• Clustering states (XOR)• Concurrency (AND)
HFSM
83Fanafzar Game Studio
• Example
HFSM
Patrol (idle)
Return to post
PursuePlayer Seen
Near PlayerFar from post
Reach post
Combat
Attack 1 Attack 2
Success
84Fanafzar Game Studio
• Cluster states• The semantic of D is exclusive-or (XOR) of A and C
HFSM
A
C
B
α
β
δ
γ(cond)
D
85Fanafzar Game Studio
• Parallel (AND combination)
HFSM
A
C
α β
E
G
F
α
δ
γ μ
A DY
Fanafzar Game Studio 86
Iranvij AI Editor
Fanafzar Game Studio 87
Iranvij AI Editor
88Fanafzar Game Studio
• Halo 2 [Bungie Software, 2004] was one of the first high-profile games for which the use of behavior trees.
• Instead of a state, the main building block of a behavior tree is a Task
• Conditions, Actions, and Composites
Behavior tree
89Fanafzar Game Studio
• Selector
Behavior tree
terminate
keep trying
?
90Fanafzar Game Studio
• Sequence
Behavior tree
keep going
bail out
91Fanafzar Game Studio
• Example
Behavior tree
?
DoorOpen?
Move(into room)
Move(to door)
Opendoor
Move(into room)
Condition Action
92Fanafzar Game Studio
• Refactored tree
Behavior tree
?
DoorOpen?
Move(to door)
Opendoor
Move(into room)
93Fanafzar Game Studio
• Decorators (such as Invertor)
• Random Selector
• Random Sequence
• Parallel
94Fanafzar Game Studio
• Procedural Animation
• Procedural level generation
• Dynamic game difficulty balancing
Next Generation AI for game
95Fanafzar Game Studio
• Artificial Intelligence For Games, Second Edition, Ian Millington, John Funge
• Programming Game AI by Example, Mat Buckland• Game programming gems series• AI Game Programming Wisdom series• AI Game Development: Synthetic Creatures with Learning
and Reactive Behaviors, Alex J. Champandard• http://aigamedev.com/• http://www.ai-blog.net/archives/000183.html• http://www.critterai.org/nmgen_study
References
96Fanafzar Game Studio
• http://digestingduck.blogspot.com/
References