Programming Games

advertisement

Artificial Intelligence in Games

Ryan Donnelly donnelry@uwplatt.edu

1

What is AI in Games?

Techniques used in computer and video games to produce the illusion of intelligence in the behavior of non-player characters

A game must ‘feel’ natural

– Obey laws of the game

– Characters aware of the environment

– Path finding (A*)

– Decision making

– Planning

Game ‘bookkeeping’, scoring

~50% of project time building AI

2

Computer Game Types

Strategy games

– Real Time Strategy (RTS)

– Helicopter view

Role Playing Games (RPG)

Action games

– First person shooter (FPS)

– Sports games

3

Goals of Game AI

Be ‘fun’

– Reasonable challenge with natural behavior

No Cheating!

– AI has bonuses over human players such as:

Giving more damage

Having more health

Driving faster

Etc.

– Used to increase difficulty

– Draws away focus to program more human-like bots.

Run fast

Use minimal memory

4

Game AI History -1980

1960’s

– First computer games (SpaceWar)

– Board games against the computer (Chess)

1970’s

– Atari (1972)

Nolan Bushnell

Pong

– First AI implemented into games

Stored patterns

Space Invaders (1978)

– Distinct moving patterns

Galaxian (1979)

– More complex and varied enemy movements

– 1-2% of CPU time spent on AI

5

Game AI History 1980-

1980’s

– Fighting games

Karate Champ (1984)

– AI defeated a human player in chess for the first time (1983)

– Pac-Man (1980)

6

Game AI History 1980-

1990’s

– Sports games

Madden Football

– FPS and RTS games

RTS games had problems

– Path finding

– Decisions

– Many more

– Dune II: Enemy attacked in a bee line and used cheats

RTS games did get better

– WarCraft

First game to implement path-finding at such a large scale

7

Game AI History 1980-

1990’s (cont.)

– Finite state machines

– Neural networks

Battlecruiser 3000AD (1996)

– Deep Blue defeats chess champ Gary Kasparov (1997)

Chess playing computer developed by IBM

Inspires AI developers http://www.research.ibm.com/deepblue/games/game6/html/c.2.sht

ml

– Graphic cards allowing for more CPU time

– 10-35% of CPU time spent on AI

8

Game AI History 1980-

2000’s

– More games using neural networks

Black & White (2001)

Collin McRae Rally 2 (2001)

– Hyperthreading

More sophisticated AI engines while simultaneously creating a more realistic 3D environment

– Core Duo

Even more complex AI engines

9

AI in Different Game Types

FPS & RPG

– AI is in opponents, teammates, and extra characters

RTS

– AI on all sides

Sports Games

– AI is in opponents and teammates

10

AI in FPS-type Games

Layered AI Structure

– Bottom layers = trivial

Determine paths

– Top layers = non-trivial

Reasoning and behavior

Event Driven Engine

– Action based on events

– Good Idea to use leaking buckets to make more flexible

Leaking Buckets

– Buckets leak contents over time

– Script with the most filled bucket gets executed

11

AI in FPS-type Games Cont.

Path-Finding

– Based on graphs describing the world

A(*)

– Most commonly used

– Guaranteed to find shortest path

Animation System

– Play appropriate sequence of animation at the chosen speed

– Play different animation sequences for different body parts

(i.e. run and aim, and shoot and reload weapon while still running)

– Inverted kinematics

Process of computing the pose of a human body from a set of constraints

– i.e. An IK animation system can appropriately calculate the parameters of arm positioning animation so that the hand can grab an object located on a table or shelf 12

Representation of the World in an FPS-type Game

13

AI in RTS-type Games

Path-Finding

– Handle collisions

– A(*)

Event Driven Engine

Maps Represented by a Rectangular Grid

– Module that analyzes the game map uses a goal driven engine

Take highest rank goal and process it.

Smaller sub-goals are created as needed and are processed until the goal has been fulfilled.

Analyzes terrain and a settlement is built based on evaluation of the terrain

Decides when cities should be built and how reinforcements should be placed

14

AI in RTS-type Games

Cont.

Interaction between event driven and goal driven engine example:

– A building gets blown up by an air strike

– This sparks the event based engine to give a new goal to the goal based engine to increase air defenses

– The goal based engine responds by moving units that are capable of air defense into position.

15

Representation of the World in an RTS-type Game

16

AI in RPG-type Games

Little AI

– Random encounters

More common in games where fighting and gaining levels is more important

– Scripted behavior

Often coupled with some minor AI

Common in games depending more on their story line than other things

– Often a combination of both

17

AI in Sports Games

Cheating

Racing games

– Segmentation

Track gets split into small sectors.

Each element gets its length calculated

Fragments used to obtain characteristics of the road in the vehicle’s closest vicinity

In effect, the computer knows it should slow down because it’s approaching a curve or an intersection

– Optimization

Two curves are marked on the track

First represents the optimal driving track

Second represents the track used when overtaking opponents

– AI system must analyze terrain

Detect obstacles lying on the road

18

AI in Sports Games Cont.

Racing games (cont.)

– Strict co-operation with physics module

Physics module provides information such as when the car is skidding

The AI system, having received the information that the car is skidding, should react appropriately and try to get the vehicle’s traction back under control

19

Popular AI Algorithms

Used In Computer Games

A(*)

Finite State Machines

Artificial Neural Networks

20

A(*) Algorithm

Goal: Find shortest path

Prerequisites

– Graph

– Method to estimate distance between points (heuristic)

Basic Method

– Try all paths?

Takes time

– Orient search towards target

Minimizes areas of the map to be examined

Uses heuristics that indicate the estimated cost of getting to the destination

Main advantage

21

A(*) Algorithm

Algorithm

– Open list

Nodes that need to be considered as possible starts for further extensions of the path

– Closed list

Nodes that have had all their neighbors added to the open list

– G score

Contains the length or weight of the path from the current node to the start node

Low lengths are better

Every node has a G score

– H score

Heuristic

Resembles G score except it represents an estimate of the distance from the current node to the endpoint

To find shortest path, this score must underestimate the distance

22

A(*) Algorithm

Algorithm (cont.)

– Start with an empty closed list and just the starting point in the open list

– Every node has a G score and the node that was used to arrive at this node

(Parent node)

23

A(*) Algorithm

Algorithm (cont.)

– Extend the path

Calculate the H scores of the nodes in the open list using a heuristic method.

Pick the node (P) in the open list for which the sum of the G and H scores is the lowest. Note: If the open list is empty then no path

For every point adjacent to P not in the closed or open list, add it to the open list. The previous nodes for these new nodes is P, and their G score is the G score of P plus the distance between the new node and P. If it was already in the open list, check it’s current G score, and if the new G score would be less than the current one update the G score and previous node, otherwise leave it alone.

If the new point is the destination point, you have found your path.

Move P to the closed list and start over

24

A(*) Algorithm

Example:

– Manhattan method

Calculate total # of squares moved horizontally and vertically to reach target, ignoring diagonal movement and obstacles.

25

A(*) Algorithm

Example (cont.):

26

A(*) Algorithm

Example (cont.): Notice: 2 squares = 54

– Can be faster to choose last one added to the open list

This biases the search in favor of squares that get found later on in the search, when you have gotten closer to the target

27

A(*) Algorithm

Example (cont.):

28

A(*) Algorithm

Example (cont.):

29

A(*) Algorithm

Example (cont.):

30

Finite State Machines

Each object in a game can have a number of states during its life.

– i.e. patrolling, attacking, resting, etc.

Model of behavior composed of:

– States

Stores information about the past, i.e. it reflects the input changes from the system start to the present moment

– Transitions

Indicates a state change and is described by a condition that would need to be fulfilled to enable the transition

– Actions

Entry action

– executed when entering the state

Exit action

– executed when exiting the state

Input action

– executed depending on present state and input conditions

Transition action

– executed when performing a certain transition

31

Finite State Machines

Cont.

Advantage: Can divide implementation of each games object’s behavior into smaller fragments

– Easier to debug and extend

32

Finite State Machines

State Diagram

33

Finite State Machines

Example: Pacman Ghost

34

Artificial Neural Networks

Brain

– Receives input

– Processes input

– Communicates the output

Relies on the cooperation of the individual neurons within the network to operate

– If some neurons are not functioning, the network can still perform its overall function

Trainable

– Learn to solve complex problems from a set of examples

– Generalizes the “acquired knowledge” to solve unforseen problems

35

Artificial Neural Networks

36

Artificial Neural Networks

Neural Networks in Games?

– Trendy topic in the late 90’s into 00’s

Huge potential in computer games

– Collin McRae Rally 2 (2001)

Total success

The trained artificial neural network is responsible for keeping the computer player’s car on the track while letting it negotiate the track as quickly as possible

Input parameters: curvature of the road’s bend, distance from the bend, type of surface, speed, or the vehicles properties

Output: selected in a way so that the car travels and negotiates obstacles or curves at a speed optimal for the given conditions.

37

Artificial Neural Networks

Obstacles Limiting Neural Networks’

Application in Games

– Problems choosing appropriate input

– Neural network’s sensitivity to changes in a game’s action logic, and the need for re-training the network whenever such a situation occurs

– Rather complicated theory, and difficulties with debugging in case of problems

– Time-consuming and complicated process of training the network

38

Artificial Neural Networks

How to take advantage of an artificial neural network in a simple game?

– Need to know what kinds of information the neural network should provide to help solve the problem

– Choose input parameters

Choose in a way that its different combinations will let the neural network learn to solve problems which haven’t appeared in the example set of signals

Should represent as much information about the game world as possible

– i.e. vectors of relative positions of the nearest obstacle or opponent, the enemies strength, etc.

– Acquire set of input data for training

Significant effort

– Train the neural network

Mixed with simultaneous testing to make sure the game is not too difficult, or if too easy and in need of further training

39

Artificial Neural Networks

Fuzzy logic

– Often used with neural networks

– Conversion from computer’s reasoning into something more strongly resembling the way a human thinks

– Usually in the form:

IF variable IS set THEN action

– i.e.

IF road IS dry THEN maintain normal speed

IF road IS wet THEN slow down

40

Conclusion

Games With No AI?

– Not possible!

– Every game with computer controlled characters/opponents uses some sore of AI

Game AI has come a long way since the

1970s

Future looks bright

– Neural networks are the future of computer games and a future that is not that distant anymore

41

References

1)

2)

3)

4)

5)

Grzyb, Janusz. Artificial Intelligence in Games.

Developer’s Journal. June 2005.

Software

Game Artificial Intelligence.

Wikipedia Ecyclopedia.

September 7, 2006. http://en.wikipedia.org/wiki/Game_artificial_intelligence

Artificial Intelligence in Games.

Petersson, Anders.

WorldForge Newsletter. August 2001. http://worldforge.org/project/newsletters/August2001/AI/#

SECTION00020000000000000000

Popovic, Zoran; Martin, Steven; Hertzmann, Aaron;

Grochow, Keith. Style-Based Inverse Kinematics.

2004. http://grail.cs.washington.edu/projects/styleik/styleik.pdf

A*.

The Game Programming Wiki. September 15, 2006. http://gpwiki.org/index.php/A_star

42

Download