TAKTIČNA UMETNA INTELIGENCA V REALNEM ČASU
Download
Report
Transcript TAKTIČNA UMETNA INTELIGENCA V REALNEM ČASU
Tactical AI in Real Time
Supervisor: Aleks Jakulin
Crew:
Damir Arh, Matija Jekovec, Mitja Luštrek
Gregor Leban, Martin Žnidaršič, Uroš Čibej
Translation: A. Jakulin
Task
real-time strategy
objective: survive
based on physical simulation
computer assists the player (intelligence
amplification instead of artificial intelligence)
teams of AI units
the player does not control individual unit’s
behavior
units perform team-allocated duties
Program Structure
1/2
Two separate applications:
server
client
Client:
graphics
user interface
server connection
Program Structure
Server:
communication with
clients
physics
pathfinding
Hierarchical AI
2/2
Strategic layer
Team
Unit (soldier)
Physical Model
1/3
Terrain:
2D map
passable / impassable kvadratki
continuous space and time
map fully revealed to AI
enemies only seen if at least one of units
has visual contact
Physical Model
2/3
Unit properties:
movement:
poses: walking, sneaking, crawling
movement speed dependent on orientation and
health
separate movement direction and orientation
3 shooting modes
health-, speed- and orientation dependent
view angle depends on speed of movement (F01)
Physical Model
Collision detection:
unit collisions
bullet collisions
Raycasting:
map intersections
object intersections
3/3
Visibility Graph
`expand’ the walls for unit radius
visibility graph nodes are convex corners
mutually visible corners are connected
before pathfinding, insert start and goal points in the
graph
search with A* (F-02), heuristics (F-03)
“Boids”
Basic rules:
a unit tries to move towards the center of
the team
a unit tries to keep a minimum distance
from walls and objects
try to match team speed
These Rules are too local!
Teams
Units in different teams are separate
from one another
Significance:
(F-04)
hierarchical pathfinding
minimize team exposure
maximize team cohesion
formations
Teams: Pathfinding
Player sets the goal point, team adjusts
individual unit movement given the
requirements
Pathfinding requirements:
(F-05)
safety
accessibility
proximity to goal
team cohesion
Teams: Exposure
Seek proximity of walls and
corners, where the ratio
between the visible
`covered’ terrain and
`uncovered’ terrain is
minimal.
Note: we ignore mobility
Teams: Cohesion
It is more desirable for
units of a team to
remain close and
cover the terrain
together.
Note: in reality it’s the
ease of signaling and
directed firepower that
matter.
(F-06)
Finite State Machine
Controls the units of a team
simple – well-known concept
readable – states are clearly separated
extensible – simple to add new states and
transitions
adjustable – we choose to do whatever we
please in a given state
We have state-dependent weights, adjusting
the boids model.
Mitja Luštrek, Damir Arh, Matija Jekovec
MDM FSM
(F-07)
init
move
advance
idle
attack
Seek cover
prone
retreat
Maintaining Terrain Visibility
During movement, the team leader is looking left and right, if
there is no wall. (F-08)
Other units are trying to cover 360 degrees around the team.
If there are enough units to cover everything, increase the
coverage of `interesting’ areas.
Interestingness of the area depends on proximity to walls and
dangerous areas, tagged by the player. (F-09)
Danger
area
Shooting Formation
When enemy is
spotted, everyone
moves to face the
enemy, or everyone
goes into retreat.
Units move to avoid
shooting one
another.
Units seek positions
with better coverage
of the enemies.
Seeking a Safe Position
If player gives no orders, team moves to a safe
position.
Seek proximity of cover.
Seek good coverage. (F-10)
Gregor Leban, Uroš Čibej, Martin Žnidaršič
GUM FSM
(F-11)
init
normal
cover
assault
Determining Orientation
Compute four viewing
orientations for each
unit.
Orientations depend on
openness of terrain and
tagged danger areas.
Pick the most important
orientation that is not yet
covered.
Assault
When enemy is spotted, everyone faces it and assaults.
Every unit picks the closest enemy and fires.
Move if a friendly unit close near the firing direction.
The player may adjust the formation during combat.
High mobility during an attack.
Technical Details
Development environment: Visual C++
Libraries:
Simple DirectMedia Layer (SDL)
Video for Windows (VFW)
winsock
450 KB of code
over 17000 lines in 110 files
Conclusions
High computational load.
Many parameters.
Weight tuning is complex.
Machine learning hard to use.
Commercial games use simpler logic.