INTELLIGENT ASTEROID AGENTS COMBINING PATHFINDING AND STEERING ALGORITHMS

odecrackAI and Robotics

Oct 29, 2013 (3 years and 5 months ago)

77 views

INTELLIGENT ASTEROID AGENTS
COMBINING PATHFINDING AND
STEERING ALGORITHMS

Carlos Barboza

Kenny Barron

Kevin Cherry

Tung Le

Daniel
Lorio

ABOUT THE GAME


Avoid enemy ships as they chase after you


Every second alive adds points (10)


Killing an enemy adds points (100)


Player can wrap around screen, enemies can’t


Enemy can only propel forward, player can
move forward and in reverse


DEMONSTRATION

OBJECTIVE


Maximize agent’s performance in fully
-
dynamic, multi
-
agent environment with limited
knowledge of environment


Determine performance through the use of
different AI algorithms and parameters


Performance is gauged by score at end of
game

ORIGINAL GAME



FRENZY SURVIVOR”


User controlled
player


Limited ship
following


Disorganized
in pursuit of
player ship

http://berfenfeldt.com/

ENVIRONMENT



Partially Observable


Limited to set regions

´
Strategic


Moves based on location of enemy

´
Episodic


Experience based on perception of
enemy

´
Dynamic


Enemy constantly moving/regenerating

´
Discrete


Agent responds with set action based
on perception of enemies in viewed regions

´
Multi
-
Agent


Steering algorithm applied to
enemies, and pathfinding for player

P


Score

E


Grid


A


Moves


S
-

Grid Regions

ADAPTING THE ENEMY


Adapted open source project
OpenSteer in C#


Enemy determines velocity
and direction based on
players location


Steer for seek allows enemies
to converge around player


Steer for flee allows enemies
to distance themselves away
from player in any direction

ADAPTING THE PLAYER


Loosely based on A*
Pathfinding


Combines heuristic,
a
ctual
cost, and utility function to
quantitate each move choice


Agent chooses maximum
move value



ALGORITHM EVOLUTION



1
st

Agent was a simple reflex agent, not
partially observable, random movements and
actions, and it was not rational


2
nd

Environment was partially observable,
agent was a simple reflex agent, and partially
rational


3
rd

Agent was goal based agent, partially
observable environment, and partially rational

HEURISTIC FUNCTION (H)


Creates grid to discretize the game world

´
Each grid cell has bitmask that holds information
on cell contents


If enemy is in cell


If cell is part of a region

HEURISTIC FUNCTION (H)


Creates 5 regions from grid

´
Multiplies enemy presence with
proximity to player in each region
using a cubic scale.

«
A


Accelerates Forward

«
F


Flees Backward

«
L


Turns Left

«
R


Turns Right

«
S


Shoots

L






R







S








F









A

ACTUAL COST FUNCTION (G)


Concept of look ahead
implemented as a move tree for
actual score


1 point per move simulates
survival time

´
Prune on dead state (count dead
states)

´
Total dead states counted for each
move’s
subtree

´
Final move score:


MaxDescendentScore

* W
1

-

TotalDescendentDeadStates

* W
2

root

L

A

S

F

R

L

A

S

F

R

...

UTILITY FUNCTION (U)


Acts as a multiplier for move values, and tilts
the behavior of the player towards passive or
aggressive


A = 1.4


B = 1.0


F = 1.2


L = 0.8


R = 0.8


S = 1.2

FORMULA


f(m) = (h(m) + g(m)) * u(m)


where m = move


Overview:


h(m): Evaluate for each move and choose the one
with the largest value


g(m): Simulate gameState for each child, prune
dead states, and select move with highest


u(m): Utility function adds custom factor to each
value

RESULTS

1

2

3

4

5

6

7

8

9

10

AVG

BEST

H,U(8)

1204

1303

1105

1305

1304

1305

1304

1209

1611

1205

1285.5

1611

H(8)

1204

1208

1203

110

1230

816

1212

1304

1304

1330

1092.1

1081

H,U
-

EC(4)

1806

1705

2810

1911

1606

1708

1906

1806

5316

2709

2328.3

5316

H,U
-

Double(8)

1004

2416

4814

2306

2606

2605

2307

4412

4923

2607

3000

4923

H
-

Double(8)

2708

1606

3710

2508

2609

5218

1009

1408

2506

1805

2508.7

5218

H
-

Double(4)

2507

1205

1509

1103

2309

2107

1707

1505

4315

2409

2067.6

4315

0
1000
2000
3000
4000
5000
1
2
3
4
5
6
7
8
9
10
Avg
Best
H,U(8)
H(8)
H,U - EC(4)
H,U - Double(8)
H - Double(8)
H - Double(4)
DEMONSTRATION