Date post: | 22-Dec-2015 |
Category: |
Documents |
View: | 218 times |
Download: | 2 times |
Tactical AI in Real Time
Supervisor: Aleks Jakulin
Crew:Damir Arh, Matija Jekovec, Mitja LuštrekGregor 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 2/2
Server: communication
with clients physics pathfinding Hierarchical AI
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 (F-01)
Physical Model 3/3
Collision detection: unit collisions bullet collisions
Raycasting: map intersections object
intersections
Visibility Graph`expand’ the walls for unit radiusvisibility graph nodes are convex cornersmutually visible corners are connectedbefore pathfinding, insert start and goal points in the graphsearch 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 (F-04)
Significance: hierarchical pathfinding minimize team exposure maximize team cohesion formations
Teams: Pathfinding
Player sets the goal point, team adjusts individual unit movement given the requirements (F-05)
Pathfinding requirements: 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. (F-06)
Note: in reality it’s the ease of signaling and directed firepower that matter.
Finite State Machine
Controls the units of a teamsimple – well-known conceptreadable – states are clearly separatedextensible – simple to add new states and transitionsadjustable – we choose to do whatever we please in a given stateWe have state-dependent weights, adjusting the boids model.
MDM FSM (F-07)
Seek cover
idle
prone
initmove
advance
attack
retreat
Mitja Luštrek, Damir Arh, Matija Jekovec
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)
Dangerarea
Shooting FormationWhen 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 PositionIf player gives no orders, team moves to a safe position.Seek proximity of cover.Seek good coverage. (F-10)
GUM FSM (F-11)
cover assault
normal
init
Gregor Leban, Uroš Čibej, Martin Žnidaršič
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.
AssaultWhen 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.