Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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.