game programming 11 ai in game programming

63
Game Programming 11 AI in game programming 2010 년 2 년년 년년년년년년년년

Upload: adsila

Post on 06-Jan-2016

89 views

Category:

Documents


6 download

DESCRIPTION

Game Programming 11 AI in game programming. 2010 년 2 학기 디지털콘텐츠전공. What is AI?. What is intelligence (constrained to games)? When is a game considered intelligent?. Any sufficiently advanced technology is indistinguishable from magic (intelligence)”. What is AI?. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Game Programming 11 AI in game programming

Game Programming 11AI in game programming

2010 년 2 학기디지털콘텐츠전공

Page 2: Game Programming 11 AI in game programming

2

What is AI?

•What is intelligence (constrained to games)?•When is a game considered intelligent?

Any sufficiently advanced technology is indistinguishable from magic (intelligence)”

Page 3: Game Programming 11 AI in game programming

3

What is AI?

•AI is (traditionally) the control of every non-human entity in a game:

•The other cars in a car game•The opponents and monsters in shooter games•Your units, your enemy’s units and your enemy in a RTS game

•But, typically does not refer to passive things that just react to the player and never initiate action

•That’s physics or game logic•For example, the blocks in Tetris are not AI, nor is a flag blowing in the wind•It’s a somewhat arbitrary distinction

Page 4: Game Programming 11 AI in game programming

4

Perception Management

1. Perceive (Sensor information)2. Think (Evaluate perceived data)3. Act (execute planned action)

Page 5: Game Programming 11 AI in game programming

5

AI Module

AI Update Step•The sensing phase determines the state of the world

• May be very simple - state changes all come by message

• Or complex - figure out what is visible, where your team is, etc

•The thinking phase decides what to do given the world

• The core of AI

•The acting phase tells the animation what to do

• Generally not that interesting (for this course)

Game Engine

Sensing

Thinking

Acting

Page 6: Game Programming 11 AI in game programming

6

AI in the Game Loop

•AI is updated as part of the game loop, after user input, and before rendering

•There are issues here:•Which AI goes first? •Does the AI run on every frame? •Is the AI synchronized?

Page 7: Game Programming 11 AI in game programming

7

AI and Animation•AI determines what to do and the animation does it

–AI drives animation, deciding what action the animation system should be animating

•Scenario 1: The AI issues orders like “move from A to B”, and it’s up to the animation system to do the rest•Scenario 2: The AI controls everything down to the animation clip to play

•Which scenario is best depends on the nature of the AI system and the nature of the animation system

–Is the animation system based on move trees (motion capture), or physics, or something else–Does the AI look after collision avoidance? Does it do detailed planning?

Page 8: Game Programming 11 AI in game programming

8

AI by Polling

•The AI gets called at a fixed rate•Senses: It looks to see what has changed in the world. For instance:

•Queries what it can see•Checks to see if its animation has finished running

•And then acts on it•Why is this generally inefficient?

Page 9: Game Programming 11 AI in game programming

9

Event Driven AI•Event driven AI does everything in response to events in the world

–Events sent by message (basically, a function gets called when a message arrives, just like a user interface)

•Example messages:–A certain amount of time has passed, so update yourself–You have heard a sound–Someone has entered your field of view

•Note that messages can completely replace sensing, but typically do not. Why not?

–Real system are a mix - something changes, so you do some sensing

Page 10: Game Programming 11 AI in game programming

10

Requirements for Games AI

•They need to be fast (i.e contrary to some academic AI approaches which are ‘optimal’ – we will give you both)•Games do not need optimal solutions (they need to be fun)•Games may need to combine several techniques•The goal is to design agents that provide the illusion of intelligence

Page 11: Game Programming 11 AI in game programming

11

Goals of Game AI•Goal driven - the AI decides what it should do, and then figures out how to do it:•Reactive - the AI responds immediately to changes in the world•Knowledge intensive - the AI knows a lot about the world and how it behaves, and embodies knowledge in its own behavior•Characteristic - Embodies a believable, consistent character

–Fast and easy development•Games do not need optimal solutions (they need to be fun)•Games may need to combine several techniques•The goal is to design agents that provide the illusion of intelligenc•Low CPU and memory usage•These conflict in almost every way – how?

Page 12: Game Programming 11 AI in game programming

12

AI Techniques in Games

•Basic problem: Given the state of the world, what should I do?•A wide range of solutions in games:

–Finite state machines, Decision trees, Rule based systems, Neural networks, Fuzzy logic

•A wider range of solutions in the academic world:

–Complex planning systems, logic programming, genetic algorithms, Bayes-nets–Typically, too slow for games

Page 13: Game Programming 11 AI in game programming

13

Techniques used today

•Deterministic:•Finite State Machines •Decision trees•Fuzzy State machines

•Statistical:•Baysian Approaches•Neural Networks •Evolutionary algorithms/ Artificial life

Page 14: Game Programming 11 AI in game programming

14

Two Measures of Complexity

•Complexity of Execution•How fast does it run as more knowledge is added?•How much memory is required as more knowledge is added?•Determines the run-time cost of the AI

•Complexity of Specification•How hard is it to write the code?•As more “knowledge” is added, how much more code needs to be added?•Determines the development cost, and risk

Page 15: Game Programming 11 AI in game programming

15

Different games need different methods•Action Games (lead a character through a set of levels)•Fighting Games Physical combat•Sports Games (icehockey and football)•Racing Games (Car, bikes, speedboats)•Adventure games ( plots based on exploration and problem solving)•Role Playing games (D&D)•Board games (Chess, checkers)•Strategic games (i.e. military type battle scenarios)•Simulation Games (simcity)

Page 16: Game Programming 11 AI in game programming

16

Cases

•Chess: Large search trees•Packman: Random FSM (weighted randomness)•Smart environments: Information is not coded in the NPC but in their environment

Page 17: Game Programming 11 AI in game programming

17

유한상태기계 (Finite State Machine)

유한 개의 상태들로 구성된 간단한 기계

구성요소 현재 상태 (Current State) 입력 (Input) 출력 상태 (Output State) 전이 (transition) 함수의 4 가지 요소로 구성

현재 상태는 현재 FSM 의 상태를 말하고 , 입력은 FSM 에 들어온 입력 정보 , 출력 상태는 다음 단계의 상태 (Next State), 전이 함수는 입력 정보와 현재 상태를 기반으로 출력 상태를 결정

FSM(Finite State Machine)

Page 18: Game Programming 11 AI in game programming

18

입력 /출력

Page 19: Game Programming 11 AI in game programming

19

확률적인 상태 선택은 주어진 확률에 따른 빈도로 다음 상태를 선택 아래의 그림 공격 (S0), 후퇴 (S1), 정지 (S2), 랜덤 (S3) 등 4 가지 상태 공격은 0.4 의 확률 , 후퇴는 0.3 의 확률 , 정지는 0.1 의 확률 , 랜덤은0.2 의 확률이라고 한다면 각 상태의 선택은 이 확률에 맞게 선택 .

e.g. int state_table[0, 0, 0, 0, 1, 1, 1, 2, 3, 3] new_state = state_table[rand()%10]

확률적인 상태 선택

Page 20: Game Programming 11 AI in game programming

20

• The ghosts' behavior in Pac-Man are FSM– Evade– own Chase state

• Quake-style bots.– FindArmor– FindHealth– Seekcover– Run-Away

• Sports simulations i.e. FIFA2002 • Player

– Strike,– Dribble– ChaseBall– Markplayer.

• Team– FaceOff– Defend,– WalkOutOnField

• The NPCs (non-player characters) in RTSs (real-time strategy) such as Warcraft

– MoveToPosition– Patrol– FollowPath.

Examples

Page 21: Game Programming 11 AI in game programming

21

Example: 레이싱 AI

Page 22: Game Programming 11 AI in game programming

22

목차

–AI 에 적합한 경주 트랙 표현 –레이싱 AI 로직

Page 23: Game Programming 11 AI in game programming

23

AI 에 적합한 경주 트랙 표현

Page 24: Game Programming 11 AI in game programming

24

접촉선        - 경주 트랙의 기본적인 구축 요소들로 트랙의 왼쪽 , 오른쪽 경계들         - 가상의 주행선 (driving line) 들 역시 이들을 통해서 결정됨         - 주행선 노드들은 왼쪽과 오른쪽 경계를 따라서배치됨         - 접촉선에서 접촉선으로 이 노드들을 이어나가면 차가 달릴 주행선이 됨

Page 25: Game Programming 11 AI in game programming

25

구역       - 경주 트랙은 노드들의 이중 연결 목록 (doubly linked list) 로 구성

- 단일 연결이 아닌 이중 연결을 사용한 이유 : 트랙을 거꾸로 되밟아 갈 수도 있기 때문 - 각 구역은 또한 출발선으로부터의 거리도 가지는데 , 이는 AI 로 하여금 현재 어디까지 와 있으며 결승전까지는 얼마나 남았는 지 , 그리고 적과의 상대적인 거리는 어느 정도인지를 쉽게 알 수 있게 하기 위해서임 - 이 거리를 계산하는 방식 : 주행선 노드들을 따라서 거리를 계속 누적하는 것임

Page 26: Game Programming 11 AI in game programming

26

주행선들

- 주행선들은 접촉선들 사이의 최적의 경로를 정의하는 데 쓰임         - 각 선은 선의 시작위치의 세계 좌표 , 선의 길이 , 그리고 앞쪽 벡터와 오른쪽 벡터를

가진다 .         - 전방 벡터 XZ 평면에 투영 (Y 를 0 으로 ) : 주행선에 대한 차의 방향을 계산하기 쉽게

하기 위해 .         - 한 점이 한 구역 안에 들어 있는 지의 여부를 쉽게 판단하기 위해서 , 구역은 항상 블록

사각형이 되도록 한다 . 블록사각형이 되려면 , 각 변의 두 끝점들이 그 변의 대변에 해당하는 평면의 양의 쪽에 있어야 함 .

Page 27: Game Programming 11 AI in game programming

27

구역찾기 및 거리현재 구역 찾기         - AI 는 각 차가 현재 어떤 구역에 놓여 있는 지를 알아야 함

- 주어진 구역에 대해 , 주어진 차가 그 구역의 각 평면의 양의 쪽에 있다면 , 그 차는 그 구역 안에 있는 것임

         구역 안에서의 거리

 - 구역 안에서 차가 얼마나 나아갔는 지를 알아내는 방법 : 주행선과 평행한 방향의 주행 거리 계산

Page 28: Game Programming 11 AI in game programming

28

구역 내 정보 저장

  - AI 가 환경을 좀 더 잘 이해할 수 있게 하기 위해 , 각 구역마다 그에 관련된 정보를 저장해 둠

        - 차가 구역들을 지나쳐갈 때 , AI 는 그 정보에 대해 몇 가지 간단한 비교들을 수행해서 빠르게 의사결정을 내리게 됨

Page 29: Game Programming 11 AI in game programming

29

여러가지 attributes• 경로의 종류 •         - 지름길 , 긴 경로 , 무기 줍기 경로 , 비포장 도로 , 직선 코스 •         - AI 는 갈림길이 나 있을 때 이러한 정보를 이용해서 선택하게 됨 •          • 지면의 종류 •         - 일반적으로 AI 는 더 짧은 경로를 택하게 되겠지만 , 만일 더 짧은 경로가

빙판이나 비포장 도로라면 , 그런 길에서도 속도를 크게 늦출 필요가 없는 차에 대해서만 그런 경로를 택해야 할 것임

•         - AI 가 정보 판단 위해 각 구역에 구역의 지면에 대한 정보를 포함시킴 •

벽 •         - 구역의 좌우변에 벽이 존재하는 지의 여부를 저장해 두면 , AI 는 그것을

이용해서 해당 벽으로부터 안전한 거리를 유지 •

제동 /가속 •         - AI 가 주행 전략을 결정하는 데 도움됨

Page 30: Game Programming 11 AI in game programming

30

정리

• - 경주 트랙을 구역으로 나누고 , 구역마다 AI 의 판단에 유용한 정보를 넣어두면 AI 시스템의 복잡성을 줄이는 데 도움 됨

• - 3 차원 트랙 정보를 2 차원으로 투영해서 정보를 추출하면 계산의 복잡성이 크게 줄어듬

Page 31: Game Programming 11 AI in game programming

31

레이싱 AI 로직 개요 : 트랙을 따라서 차를 몰 수 있는 AI 의 구현방법에 대해 설명

기본적인 AI 구조

유한 상태 기계         - AI 로직을 단순화하기 위해 , 현재의 경주 상황을 유한기계로 관리

고정된 시간 간격         - AI 를 가변 시간 간격으로 돌리면 , 프레임율이나 기타 요인들에 따라 다른 결과가

나올 수 있다 : AI 가 브레이크를 밟을 시점을 놓치거나 , 장애물에 대해 너무 늦게 반응하거나 또는 네트웍 플에이에서 동기화가 깨지는 현상이 빚어짐

        - 고정된 시간 간격을 사용하면 , AI 로직이 서로 다른 플랫폼들에서 프레임율에 상관없이 항상 동일하게 실해가능

Page 32: Game Programming 11 AI in game programming

32

차의 제어         - 방향 조정 , 가속 /제동 값들을 담는 하나의 간단한 구조체 사용         - dx : 방향 조정 , -1.0 → 완전한 왼쪽 , 1.0 → 완전한 오른쪽         - dy : 음수 → 제동의 양 , 양수 → 가속의 양          2 차원으로의 단순화          - 시각적인 면에서 볼 때 높낮이가 있는 3 차원적 구조로 표현될 수

있으나 , 본 질적으로는 2 차원적인 하나의 길         - Y 성분을 0 으로 해서 XZ 평면에 투영하면 많은 계산들을 단순화할 수 있다 .

Page 33: Game Programming 11 AI in game programming

33

출발점  - 경주가 시작되기 전에 가장 먼저 할 일 : AI 의 값들을 출발 위치에

맞게 초기화함     - 적절한 함수를 통해 출발 위치가 있는 구역을 가리키는 포인터를 얻기

    - 내부적으로 그 포인터를 2 가지로 구분 ① 현재 ② 마지막으로 유효 : 차가 크랙을 벗어나서 뒤짚혔다던가 할 때

차를 다시 올려놓을 구역

- FSM 의 초기 상태는 STATE_STARTING_GRID 로 설정 : 파란불 신호가 들어 오면 바뀌게 됨 - 출발 신호가 떨어지면 상태는 STATE_RACING 으로 전이

Page 34: Game Programming 11 AI in game programming

34

경주시작• FSM 의 가장 복잡한 상태는 경주 모드 , 즉 STATE_RACING

• 구역 따라가기 • - AI 가 판단내리기 위해서는 , 기본적으로 현재 자신이 제어하는

에이전트가 게임 세계의 어디쯤에 위치하는 지를 알아야 함 • - 레이싱 게임의 경우 , 에이전트의 위치는 경주 트랙 상의 어느 한

지점이 될 것임 • - 점검할 구역을 줄이는 방법 → 응집성 : 현재 구역을 검색의

출발점으로 삼음 , 차가 현재 구역을 벗어났다면 , 현재 구역의 이전 , 다음 포인터가 가리키는 구역들로부터 차례로 점검

Page 35: Game Programming 11 AI in game programming

35

판단• 갈림길 •         - 가장 적합한 길 선택 •       - 선택의 기준 : 현재 요구와 각 경로의 특징 ( 예 : 지면의 종

류 , 경로의 종류 , 지름길 여부 ) •

• 미리 내다보기 •         - 좀 더 지능적인 AI 를 위해서는 , AI 가 현재의 사건들에만

반응하는 것이 아니라 , 어느 정도는 앞도 내다볼 수 있어야 함 . ( 예 ) 잠시 후 급하게 구부러진 코너에 도달하게 된다면 , 매끄러운 코너링을 위해 미리 속도를 줄여나갈 필요가 있음

•         - 미리 내다 보기 : 차의 현재 위치에서 일정 거리 이내의 다음 구역들을 점검하는 식으로 일어남

Page 36: Game Programming 11 AI in game programming

36

Page 37: Game Programming 11 AI in game programming

37

구역 내 정보의 활용• 헤어핀 턴 •         - 헤어핀 턴 같은 급격한 모퉁이가 나타나는 경우에는 트랙에서 벗어날 위험이 존재 : 이를 방지 위해 헤어핀 안쪽 변들에 특별한 표시를 해두고 , 이동 코드에서는 구역에 그러한 “헤어핀“ 표시가 존재하는 경우에 대해 직선 경로를 선택하지 말아야 함 .

Page 38: Game Programming 11 AI in game programming

38

주행 파라미터 결정• 목표로의 주행 • - AI 가 어떤 목표를 선택했다면 , 거기까지 도달하기 위한 적절한

행동들을 취해야 함 • - AI 는 목표에 대한 상대적인 방향을 계산하고 , 그에 따라 적절한

방향 조정을 수행해야 함 •

• 추월 • - AI 가 상대방 차에 가까워지면 , 그 차를 앞질러 나갈 길을 찾아야

함 :  구역에 미리 정의되어 있는 추월선을 사용 •

Page 39: Game Programming 11 AI in game programming

39

주행 파라미터 결정• 언더스티어와 오버스티어 • - 차의 움직임을 물리 역학에 좀 더 근접한 방식으로 모델링하는 게임에서 고려

• - 오버스티어 (oversteer) : 차가 뱅뱅 돌게 되고 , 언더스티어가 일어나면 최적의 코너링 선을 벗어나게 됨 .

• - 언더 스티어 (understeer) : 최 적 의 코너링 선 을 벗어나게 됨

• 그런 상황들을 감지하고 차의 방향이나 가속 , 제동 등을 조절해서 차를 제대로 달리게 하는 방법

Page 40: Game Programming 11 AI in game programming

40

벽 피하기• - FSM 의 현재 상태에 대한 처리가 끝났다면 , AI 는 차가 벽에 부딪힐

위험이 있는 지 판단하고 , 필요하다면 차의 이동을 조절해야 함 • - 미래의 예상 위치를 얻어서 그 위치에 해당하는 구역을 찾고 , 그 구역의

가장자리들과 예상 위치를 비교 후 충돌 위험이 있다면 차의 방향을 적절히 보정함

Page 41: Game Programming 11 AI in game programming

41

기타 FSM 상태들      - AI 에서 중요한 역할을 하는 기타 상태

- STATE_AIRBORNE              : 경주 트랙에 점프대가 놓여 있거나 굴곡이 심하다면 차가

공중에 뜨는 경우인데 , AI 는 이 상태에서 차가 제대로 착지할 수 있도록 해야 함

 : 차 의 바 퀴 가 지 면 에 닿 으 면 FSM 은 다 시 STATE_RACING 으로 돌아감

     

- STATE_OFF_TRACK                 : 차가 어떤 구역에도 속하지 않은 경우에 해당하는 상태                 : 이 상태에서 AI 는 차를 다시 트랙으로 되돌려 보내야 함

Page 42: Game Programming 11 AI in game programming

42

게임의 재미 증진• - AI 차가 플레이어보다 너무 앞서 나간다면 , 의도적으로 플레이어에게

역전의 기회를 제공할 필요가 있음

•  - 방법 •            : 플레이어와의 거리에 비례해서 AI 차의 최고 속도를 제한 •           : 모둥이에서 좀 더 일찍 제동을 걸고 , 좀 더 늦게 가속을 가하는

방법 •            : 지름길을 무시하고 먼 길로 돌아가거나 일부러 울퉁불퉁한 길 택함 •            : AI 차가 플레이어 차를 제외한 다른 AI 차들만 공격하게 함

Page 43: Game Programming 11 AI in game programming

43

열린 거리 조건 하에서의 경쟁적인 AI 레이싱

개요 : AI 가 조종하는 차량이 임의의 도로들과 교차로들로 이루어진 네트웍을 경쟁적이며 매우 사실적인 방식으로 주행하는 데 필요한 기본적인 기능들 설명

Page 44: Game Programming 11 AI in game programming

44

• 맵의 구성요소들

Page 45: Game Programming 11 AI in game programming

45

도시 주행현재 위치 알아내기         - 차가 도로에 있는 지 교차로에 있는 지 알아야 함         - 기본 노선에서의 상대적인 위치를 알아야 함         - 다가오는 장애물들을 피하기 위한 경로 결정          도로 캐시의 갱신         - 도로 캐시는 현재 도로와 다음의 두 도로 구간들로 이루어짐

모든 가능한 경로들의 나열         - 현재의 도로 구간을 주행하는 데 사용할 수 있는 모든 가능한 경로들을

나열

Page 46: Game Programming 11 AI in game programming

• A Common Situation of Game AI• Path Planning– From a start position to a destination point

• Most Popular Technique– A* (A Star)

• 1968• A search algorithm• Favorite teaching example : 15-puzzle• Algorithm that searches in a state space for the least

costly path from start state to a goal state by examining the neighboring states

46

Introduction to Path FindingIntroduction to Path Finding

Page 47: Game Programming 11 AI in game programming

Dijkstra vs. A*

By courtesy of : http://theory.stanford.edu/~amitp/GameProgramming/

Without ostacale

With ostacale

47

Page 48: Game Programming 11 AI in game programming

Dijkstra vs. A*• Dijkstra: compute the optimal solution• Diskstra: search space much larger than A*• A*: simple• A*: fast• A*: “good” result• A*: employ heuristic estimate to eliminate

many paths with high costs -> speedup process to compute satisfactory “shortest” paths

48

Page 49: Game Programming 11 AI in game programming

A*: cost functions• Goal: compute a path from a start point S to a

goal point G

• Cost at point n:– f(n) = g(n) + h(n)– g(n): distance from the start point to point n– h(n): estimated distance from point n to the goal

point– f(n): current estimated cost for point n

49

Page 50: Game Programming 11 AI in game programming

A*: cost functions• The role of h(n)– A major cost evaluation function of A*– Guide the performance of A*

d(n): the actual distance between S and G

h(n) = 0 : A* is equivalent to Dijkstra algorithmh(n) <= d (n) : guarantee to compute the shortest path; the lower

the value h(n), the more node A* expandsh(n) = d (n) : follow the best path; never expand anything else;

difficult to compute h(n) in this way!h(n) > d(n) : not guarantee to compute a best path; but very fasth(n) >> g(n) : h(n) dominates -> A* becomes the best first search

(BSF) 50

Page 51: Game Programming 11 AI in game programming

51

Add START to OPEN listwhile OPEN not empty

get node n from OPEN that has the lowest f(n)if n is GOAL then return pathmove n to CLOSEDfor each n' = CanMove(n, direction)

g(n') = g(n) + cost(n to n’)calculate h(n')if n' in OPEN list and new n' is not better,

continueif n' in CLOSED list and new n' is not better,

continueremove any n' from OPEN and CLOSEDadd n as n's parentadd n' to OPEN

end forend whileif we get to here, then there is No Solution

A* AlgorithmA* Algorithm

12345678910111213141516

Page 52: Game Programming 11 AI in game programming

52

A* Algorithm: ExampleA* Algorithm: Example

-Show a grid map

-Use Manhattan Distance to find the shortest path from the start point to the goal point

Page 53: Game Programming 11 AI in game programming

Example

Page 54: Game Programming 11 AI in game programming

When should A* terminate?

• Should we stop when we enqueue a goal?

No!: Only stop when we dequeue a goal

Page 55: Game Programming 11 AI in game programming

Is A* Optimal?

• What went wrong?• Actual bad goal cost < estimated good goal

cost• We need estimates to be less than actual

costs!

Page 56: Game Programming 11 AI in game programming

Admissible Heuristics

Page 57: Game Programming 11 AI in game programming

• State– Location– Neighboring states

• Search Space– Related to terrain format– Grids– Triangles– Points of visibility

• Cost Estimate• Path

– Typical A* path– Straight path– Smooth path

• Hierarchical Path Finding57

A* Algorithm A* Algorithm

Page 58: Game Programming 11 AI in game programming

• Rectangular Grid– Use grid center

• Quadtree– Use grid center

• Triangles or Convex Polygons– Use edge mid-point– Use triangle center

58

Search Space & Neighboring States (1/2)Search Space & Neighboring States (1/2)

Rectangular Grid

QuadtreeTriangles

Page 59: Game Programming 11 AI in game programming

• Cost Function– g(n)– h(n)

• Cost evaluation examples:– Travel distance– Travel time– Fuel consumption– Enemy and friendly regions– …

• Estimate– Distance to goal

59

Cost EstimateCost Estimate

Page 60: Game Programming 11 AI in game programming

60

Result PathResult Path

Typical A* Path Straight Path

Smooth Path

Page 61: Game Programming 11 AI in game programming

• Break the terrain into sub-regions– Room-to-room– 3D layered terrain– Terrain LOD

• Advantages:– Speedup the search– Solve the problem of layered path finding

61

Hierarchical Path FindingHierarchical Path Finding

Page 62: Game Programming 11 AI in game programming

• Moving Goal– Do you need to find path each frame ?

• Moving Obstacles– Prediction Scheme

• Complexity of the terrain– Hierarchical path finding

• “Good” path for Game AI, e.g. avoid enemies

62

Path Finding ChallengesPath Finding Challenges

Page 63: Game Programming 11 AI in game programming

http://theory.stanford.edu/~amitp/GameProgramming/

63

References: