Introduction to AI in computer games

97
1 Fanafzar Game Studio

description

This slides was presented in a workshop at Iran Game Development Institute. It is only an introduction and starts from academic view and continues with techniques that are using in game industry. In the workshop I also shared some of our experiences in developing AI and its tools, some screenshots also included.

Transcript of Introduction to AI in computer games

Page 1: Introduction to AI in computer games

1Fanafzar Game Studio

Page 2: Introduction to AI in computer games

• How do you think about AI?

What is AI

2Fanafzar Game Studio

Page 3: Introduction to AI in computer games

• 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

3Fanafzar Game Studio

Page 4: Introduction to AI in computer games

• The Imitation Game (1950)

• A man (A), a woman (B), and an interrogator (C) who may be of either sex.

Turing Test

4Fanafzar Game Studio

Page 5: Introduction to AI in computer games

• The Imitation Game

• We now ask the question, What will happen when a machine takes the part of A in this game?

Turing Test

5Fanafzar Game Studio

Page 6: Introduction to AI in computer games

• 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

6Fanafzar Game Studio

Page 7: Introduction to AI in computer games

• 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

7Fanafzar Game Studio

Page 8: Introduction to AI in computer games

Chinese room

8Fanafzar Game Studio

Page 9: Introduction to AI in computer games

• 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

9Fanafzar Game Studio

Page 10: Introduction to AI in computer games

• 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

10Fanafzar Game Studio

Page 11: Introduction to AI in computer games

• According to Weak AI, the correct simulation is a modelof 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

11Fanafzar Game Studio

Page 12: Introduction to AI in computer games

• 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

12Fanafzar Game Studio

Page 13: Introduction to AI in computer games

• “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

13Fanafzar Game Studio

Page 14: Introduction to AI in computer games

• Classification

Machine Learning - Supervised

14Fanafzar Game Studio

Page 15: Introduction to AI in computer games

• Clustering

– We don’t know number of classes

Machine Learning - Unsupervised

15Fanafzar Game Studio

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

… …

Page 16: Introduction to AI in computer games

• Clustering

Machine Learning - Unsupervised

16Fanafzar Game Studio

Page 17: Introduction to AI in computer games

• 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

17Fanafzar Game Studio

Page 18: Introduction to AI in computer games

• 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

18Fanafzar Game Studio

Page 19: Introduction to AI in computer games

• Individual = Chromosomes

• Mutation, Selection, and Crossover.

• Operating on dynamic data sets is difficult

• Tendency to converge towards local optima

• Randomness

Genetic Algorithm

19Fanafzar Game Studio

Page 20: Introduction to AI in computer games

• Simplified models of neural processing in the brain

Neural Networks

20Fanafzar Game Studio

Page 21: Introduction to AI in computer games

• Multilayer Perceptrons

Neural Networks

21Fanafzar Game Studio

Page 22: Introduction to AI in computer games

• 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

22Fanafzar Game Studio

Page 23: Introduction to AI in computer games

• A good book about

GA and NN in games

Neural Networks

23Fanafzar Game Studio

Page 24: Introduction to AI in computer games

Do we really need AI in computer games?

What we expect from game AI?

24Fanafzar Game Studio

Page 25: Introduction to AI in computer games

• 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?

25Fanafzar Game Studio

Page 26: Introduction to AI in computer games

• 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?

26Fanafzar Game Studio

Page 27: Introduction to AI in computer games

• Agent cycle

Agents as NPCs

27Fanafzar Game Studio

THINKSENSE ACT

Page 28: Introduction to AI in computer games

• Agent cycle

Agents as NPCs

28Fanafzar Game Studio

MAP

GEOMETRY

ENTITIES

. . .

THINK ACT

Page 29: Introduction to AI in computer games

• Agent cycle

Agents as NPCs

29Fanafzar Game Studio

REMEMBERR

EASO

N

BEH

AV

ESENSE ACT

Page 30: Introduction to AI in computer games

• Agent cycle

Agents as NPCs

30Fanafzar Game Studio

ANIMATE

NAVIGATE

. . .

THINKSENSE

Page 31: Introduction to AI in computer games

• 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

31Fanafzar Game Studio

Page 32: Introduction to AI in computer games

• 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

32Fanafzar Game Studio

Page 33: Introduction to AI in computer games

• Everything in game world is triangle

• In door / Out door

• Path finding still is a problem

– Some pathfinding bugs(Video)

Introduction to Path planning

33Fanafzar Game Studio

Page 34: Introduction to AI in computer games

• 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

34Fanafzar Game Studio

Page 35: Introduction to AI in computer games

• Near-Optimal Hierarchical Pathfinding,

– A. Botea, M. Muller, and J. Schaeffer, Journal of Game Development, Volume 1

Hierarchical Pathfinding

35Fanafzar Game Studio

Page 36: Introduction to AI in computer games

• Grid/Tile Base

– Fast

– Easy to develop

– Memory Inefficient

– 2D and strategy games

Reviewing some pathfinding methods

36Fanafzar Game Studio

Page 37: Introduction to AI in computer games

• Waypoint graphs

– Manual

Reviewing some pathfinding methods

37Fanafzar Game Studio

Page 38: Introduction to AI in computer games

• Waypoint graphs

– Automated : Point of visibility

Reviewing some pathfinding methods

38Fanafzar Game Studio

Page 39: Introduction to AI in computer games

• 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

39Fanafzar Game Studio

Page 40: Introduction to AI in computer games

Fanafzar Game Studio 40

Reviewing some pathfinding methods

Inefficient

Page 41: Introduction to AI in computer games

• Convex Polygons

– Manual/Automated

Reviewing some pathfinding methods

41Fanafzar Game Studio

Page 42: Introduction to AI in computer games

• Shortest path - Optimal

• Smaller Search Space

Reviewing some pathfinding methods

42Fanafzar Game Studio

Page 43: Introduction to AI in computer games

Reviewing some pathfinding methods

43Fanafzar Game Studio

OK, But how to

implement?

Page 44: Introduction to AI in computer games

Reviewing some pathfinding methods

44Fanafzar Game Studio

• Mesh simplification

• Rendering techniques

• Flood filling with AABBs (UDK)

• Voxelization

• Check Mikko Monone’s work, RecastNavigation

– http://digestingduck.blogspot.com

Page 45: Introduction to AI in computer games

• The general process is as follows:

1. Voxelization

2. Generate Regions

3. Generate Contours

4. Generate Polygon Mesh

5. Generate Detailed Mesh

Navigation mesh generation process

45Fanafzar Game Studio

Page 46: Introduction to AI in computer games

1. Voxelization

Navigation mesh generation process

46Fanafzar Game Studio

Page 47: Introduction to AI in computer games

1. Voxelization

Navigation mesh generation process

47Fanafzar Game Studio

Page 48: Introduction to AI in computer games

1. Voxelization

Navigation mesh generation process

48Fanafzar Game Studio

Page 49: Introduction to AI in computer games

1. Voxelization

Navigation mesh generation process

49Fanafzar Game Studio

Page 50: Introduction to AI in computer games

1. Voxelization

Navigation mesh generation process

50Fanafzar Game Studio

Page 51: Introduction to AI in computer games

1. Voxelization

Navigation mesh generation process

51Fanafzar Game Studio

Page 52: Introduction to AI in computer games

2. Generate Regions

Navigation mesh generation process

52Fanafzar Game Studio

Page 53: Introduction to AI in computer games

2. Generate Regions

Navigation mesh generation process

53Fanafzar Game Studio

Page 54: Introduction to AI in computer games

2. Generate Regions

Navigation mesh generation process

54Fanafzar Game Studio

Page 55: Introduction to AI in computer games

3. Generate Contours

Navigation mesh generation process

55Fanafzar Game Studio

Page 56: Introduction to AI in computer games

3. Generate Contours

Navigation mesh generation process

56Fanafzar Game Studio

Page 57: Introduction to AI in computer games

3. Generate ContoursDouglas-Peucker simplification

Navigation mesh generation process

57Fanafzar Game Studio

Page 58: Introduction to AI in computer games

3. Generate ContoursDouglas-Peucker simplification

Navigation mesh generation process

58Fanafzar Game Studio

Page 59: Introduction to AI in computer games

3. Generate ContoursDouglas-Peucker simplification

Navigation mesh generation process

59Fanafzar Game Studio

Page 60: Introduction to AI in computer games

4. Generate Polygon Mesh

– Triangulation

– Merge to Convex Polygon

– Benefits of Convex Polygon

Navigation mesh generation process

60Fanafzar Game Studio

Page 61: Introduction to AI in computer games

5. Generate Detailed Mesh

Navigation mesh generation process

61Fanafzar Game Studio

Page 62: Introduction to AI in computer games

5. Generate Detailed Mesh

Navigation mesh generation process

62Fanafzar Game Studio

Page 63: Introduction to AI in computer games

• 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

63Fanafzar Game Studio

Page 64: Introduction to AI in computer games

• 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

64Fanafzar Game Studio

Page 65: Introduction to AI in computer games

• Velocity obstacle

• There are some variations

– RVO, NLVO, FVO, HRVO, NHRVO, PVO

• Mikko uses RVO(Reciprocal Velocity Obstacles)

Navigation mesh generation process

65Fanafzar Game Studio

Page 66: Introduction to AI in computer games

• 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

66Fanafzar Game Studio

Page 67: Introduction to AI in computer games

Navigation mesh, Zorvan Integration

67Fanafzar Game Studio

Page 68: Introduction to AI in computer games

• Generation Types

– Solo

– Tiled Navmesh

• Dynamic loading

• Deal with dynamic obstacles

• Off-Mesh Connections

• Convex polygons

Navigation mesh, Zorvan Integration

68Fanafzar Game Studio

Page 69: Introduction to AI in computer games

• How to simulate movement of intelligent objects like bird, animals, cars, etc. --Craig Reynols

• Stanley and Stella in: Breaking the Ice (1987)

Steering Behaviors

69Fanafzar Game Studio

Page 70: Introduction to AI in computer games

• Simple Vehicle Model

– Mass scalar

– Position vector

– Velocity vector

– max_force scalar

– max_speed scalar

Steering Behaviors

70Fanafzar Game Studio

Page 71: Introduction to AI in computer games

• Seek

• Flee

• Flocking

• Pursuit

• Arrival

• Obstacle avoidance

• Path follow

• Leader follow

• Hide

Steering Behaviors

71Fanafzar Game Studio

Page 72: Introduction to AI in computer games

• Seek Vs Flee

Steering Behaviors

72Fanafzar Game Studio

Page 73: Introduction to AI in computer games

• 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

73Fanafzar Game Studio

Page 74: Introduction to AI in computer games

• Obstacle avoidance

– Only circles

Steering Behaviors

74Fanafzar Game Studio

Page 75: Introduction to AI in computer games

• Combining Steering Behaviors

– Weighted Truncated Sum

– Weighted Truncated Running Sum with Prioritization

– Prioritized Dithering

• Open Steer

Steering Behaviors

75Fanafzar Game Studio

Page 76: Introduction to AI in computer games

Advantages

– Simplicity

– Reliability

– Predictability

– Efficiency

Disadvantages

– Local traps• Oscillation

– Realism• Jagged paths

– Scalability

Steering Behaviors

76Fanafzar Game Studio

Page 77: Introduction to AI in computer games

• Pure scripting!

• Structured

– FSM

– HFSM

– Behavior Tree

Decision Making

77Fanafzar Game Studio

Page 78: Introduction to AI in computer games

• 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

78Fanafzar Game Studio

Patrol (idle)

Combat

Return to post

PursuePlayer Seen

Near PlayerFar from postReach post

Page 79: Introduction to AI in computer games

• 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

79Fanafzar Game Studio

Page 80: Introduction to AI in computer games

• Hard Coded

– Switch Statement

– Function pointers

– Polymorphism (State Pattern)

• Interpreted

– Data Driven

– Scripted

• Compiled

– machine code

– Generating source code

FSM

80Fanafzar Game Studio

Page 81: Introduction to AI in computer games

• 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

81Fanafzar Game Studio

Page 82: Introduction to AI in computer games

• Each state can be a complete state machine in its own right

• Original Paper

– Statecharts: A Visual Formalism for Complex Systems D. HarelScience of Computer Programming 8, 1987

• Clustering states (XOR)

• Concurrency (AND)

HFSM

82Fanafzar Game Studio

Page 83: Introduction to AI in computer games

• Example

HFSM

83Fanafzar Game Studio

Patrol (idle)

Return to post

PursuePlayer Seen

Near PlayerFar from post

Reach post

Combat

Attack 1 Attack 2

Success

Page 84: Introduction to AI in computer games

• Cluster states

• The semantic of D is exclusive-or (XOR) of A and C

HFSM

84Fanafzar Game Studio

A

C

B

α

β

δ

γ(cond)

D

Page 85: Introduction to AI in computer games

• Parallel (AND combination)

HFSM

85Fanafzar Game Studio

A

C

α β

E

G

F

α

δ

γ μ

A DY

Page 86: Introduction to AI in computer games

Fanafzar Game Studio 86

Iranvij AI Editor

Page 87: Introduction to AI in computer games

Fanafzar Game Studio 87

Iranvij AI Editor

Page 88: Introduction to AI in computer games

• 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

88Fanafzar Game Studio

Page 89: Introduction to AI in computer games

• Selector

Behavior tree

89Fanafzar Game Studio

terminate

keep trying

?

Page 90: Introduction to AI in computer games

• Sequence

Behavior tree

90Fanafzar Game Studio

keep going

bail out

Page 91: Introduction to AI in computer games

• Example

Behavior tree

91Fanafzar Game Studio

?

DoorOpen?

Move(into room)

Move(to door)

Opendoor

Move(into room)

Condition Action

Page 92: Introduction to AI in computer games

• Refactored tree

Behavior tree

92Fanafzar Game Studio

?

DoorOpen?

Move(to door)

Opendoor

Move(into room)

Page 93: Introduction to AI in computer games

• Decorators (such as Invertor)

• Random Selector

• Random Sequence

• Parallel

93Fanafzar Game Studio

Page 94: Introduction to AI in computer games

• Procedural Animation

• Procedural level generation

• Dynamic game difficulty balancing

Next Generation AI for game

94Fanafzar Game Studio

Page 95: Introduction to AI in computer games

• 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

95Fanafzar Game Studio

Page 96: Introduction to AI in computer games

• http://digestingduck.blogspot.com/

References

96Fanafzar Game Studio

Page 97: Introduction to AI in computer games

Fanafzar Game Studio 97

Thank You

[email protected]