Tactical & Strategic AI John See 10 Jan 2011 Games Programming III (TGP2281) – T1, 2010/2011 Tactical & Strategic AI in Millington’s Model Games Programming III (TGP2281) – T1, 2010/2011 Waypoint Tactics • A waypoint – A single position in the game level (“nodes”, “representative points” used for pathfinding) • To use waypoints tactically need to add more data to the nodes (not just location info) • Some examples of use of waypoints to represent positions in the level with unusual tactical features • Normally the level designer have some say in this Games Programming III (TGP2281) – T1, 2010/2011 Tactical Locations • Waypoints used for tactical purposes are sometimes called – “rally points”. E.g. • To mark a fixed safe location for character to retreat if losing fight (defensive) • To mark a pre-determined hiding spot that can ambush or snipe incoming enemy (offensive) • To move secretly in shadow areas without being detected (stealth) • Many more! Games Programming III (TGP2281) – T1, 2010/2011 Tactical Points NOT THE BEST pathfinding points • Although common to combine two sets of waypoints (one for tactical, one for pathfinding), not efficient nor flexible • E.g. Cover and sniping waypoint nodes are not useful for pathfinding! Result in unrealistic movements within level Games Programming III (TGP2281) – T1, 2010/2011 Primitive and Compound Tactics • Most games have a set of pre-defined tactical qualities (e.g. sniping, shadow, cover, etc.). These are primitive defined tactics • Combination of these primitive tactics result in locations with compound tactical qualities. • E.g. Sniper locations – Points that have combination of both cover points and high-visibility points. • A point can have both defensive and offensive tactical features. Games Programming III (TGP2281) – T1, 2010/2011 Primitive and Compound Tactics • For this e.g. how is an ambush point constructed from primitive tactical locations? Games Programming III (TGP2281) – T1, 2010/2011 More Compound Tactics – Waypoint Graphs • Waypoints can be CONNECTED to form waypoint graphs (similar to pathfinding graphs) when the waypoints defined are not isolated/separated • Where is the best spot for a hit-and-run move? • What are some problems using waypoint graphs? Games Programming III (TGP2281) – T1, 2010/2011 Continuous Tactics • Marking locations with numerical values (able to use fuzzy logic and probabilities) instead of Boolean values • E.g. A waypoint will have a value for cover feature (0.7) and visibility feature (0.9) • In choosing between a few cover points to go, choose one that has better/higher value • Using fuzzy logic rules can allow us to combine these values, E.g. • Sniper (value) = cover (value) AND visibility (value) • Sniper = MIN(0.7, 0.9) = 0.7 Games Programming III (TGP2281) – T1, 2010/2011 Using Tactical Locations • How do we build a tactical mechanism within the character AI? • Three approaches: 1. Controlling tactical movement (simple method) 2. Incorporate tactical information into decisionmaking 3. Use tactical information during pathfinding to produce character motion that is always tactically aware Games Programming III (TGP2281) – T1, 2010/2011 1. Tactical Movement • Tactical waypoints are queried during game when the character AI needs to make a tactical move • E.g. Character needs to reload bullets, it queries the tactical waypoints in the immediate area to look for “nearest suitable location” to stop and reload, before continuing • This method: Action decision is carried out first, then apply tactical information to achieve its decision • Some limitation in realism, and not able to use tactical information to influence decision-making due to limited use. Games Programming III (TGP2281) – T1, 2010/2011 2. Tactical Information in Decision-Making • Give the “decision-maker” access to tactical information, just like any other game world information • DT example: • SM: Trigger transitions only when certain waypoints are available and/or fulfill required numeric value (if used) Games Programming III (TGP2281) – T1, 2010/2011 3. Tactical Information during Pathfinding • Relatively simple extension of basic pathfinding. • Rather than finding shortest/quickest path, it takes into consideration tactical situation of game • Simplest way is to manipulate graph connection costs (by adding “tactical cost” to locations that are dangerous or reducing “tactical cost” at locations that are easy) Games Programming III (TGP2281) – T1, 2010/2011 Tactical Analyses • Sometimes known as influence maps – a technique pioneered and widely used in RTS games where the AI keeps track of areas of military influence in game • Can also be used in simulation/evolution games, FPSs or MMOs • Overwhelming majority of current implementations are based on tile-based grid worlds. Even for non-tile-based worlds, a grid can be imposed over the geometry for tactical analyses. Games Programming III (TGP2281) – T1, 2010/2011 Influence Maps • Keeps track of current balance of military influence at each location in level • Factors… E.g. proximity of military unit, proximity of welldefended base, duration since a unit last occupied a location, terrain, current financial state, weather, etc. • In many games, simple influence maps are constructed based on these popular factors: 1. Proximity of enemy units and bases 2. Relative military power Games Programming III (TGP2281) – T1, 2010/2011 Influence Calculations • Concept: Influence is taken to drop off with distance. The farther away from a unit/base/etc., the lesser the value of their influence I0 • Linear model: I d 1 d ' I0 I0 Id • Non-linear models: I d (1 d ' ) 2 1 d ' • In practice, linear drop off is perfectly reasonable, and is also faster to compute Games Programming III (TGP2281) – T1, 2010/2011 Influence Map Calculations • To calculate the map, need to consider each unit in the game for each location in the level. • Up to billions of calculations may be needed! Execution time: O(nm), Memory: O(m), where m number of locations, n number of units. • 3 approaches: • Limited Radius of Effect • Convolution Filters • Map Flooding Games Programming III (TGP2281) – T1, 2010/2011 Limited Radius of Effect • LIMIT the radius of influence effect for each unit • Each unit has a maximum radius of influence, beyond that radius, no computation is required • Use a threshold influence, It (beyond which influence is zero), the radius is given by I0 r It 1 • This approach results in O(nr) in time, where r is number of locations within the average radius of a unit. r << m Much faster! • Any disadvantages? Games Programming III (TGP2281) – T1, 2010/2011 Example: Influence Map Games Programming III (TGP2281) – T1, 2010/2011 Influence Map: Examples • Influence maps allows AI to see which areas of the game are safe, which areas to avoid, where the border between teams are weakest • Example: Security influence map Games Programming III (TGP2281) – T1, 2010/2011 Dealing with Unknowns • Typically, games don’t allow players to see all the units in the game. Vision can be additionally limited by hills and other terrain features – Often known as “Fog-of-war” • Should AIs have full knowledge of the entire map? Or should they be subjected to “fog-of-war” as well? • With the partial knowledge, one set of tactical analyses is required per side in the game (incl. all AI sides). Games Programming III (TGP2281) – T1, 2010/2011 Combining Tactical Analyses • Multi-layer analyses involved combining a few influence maps into a composite influence map. • Example: To find best location to build tower, consider: Wide range of visibility, secured location, far from other towers to avoid redundancy (3 maps) • To get a single influence value, the 3 base tactical analyses can be combined by multiplication (or addition, etc.) Quality = Security x Visibility x Distance (or if tower influence is used instead of distance) Quality = Security x Visibility Tower Influence Games Programming III (TGP2281) – T1, 2010/2011 Combining Tactical Analyses Games Programming III (TGP2281) – T1, 2010/2011 Structure for Tactical Analyses • Different types of tactical analyses can be distinguished by its properties and frequency of updating needed Games Programming III (TGP2281) – T1, 2010/2011 Tactical Pathfinding • Similar to regular pathfinding (same techniques/algos), only modification is the cost function used – extended to tactical info • Cost function influenced by two criteria: 1. Distance/time 2. Tactical Information • Cost of a connection given by a formula C D wiTi i where D is the distance/time of connection, wi is the weighing factor for each tactic Ti and i is the number of tactics supported. Games Programming III (TGP2281) – T1, 2010/2011 Tactic Weights & Concern Blending • In the previous equation, the real-valued quality for each tactic is multiplied by a weighting factor before summing into the final cost value. • Locations with high tactics weight will be avoided • Locations with low tactics weight will be favoured • Weights can be negative, BUT careful not to have negative overall weight, which may result in negative overall cost! • Tactical costs can be pre-calculated if they are static (terrain, visibility). If they are dynamic (military power, number of units), they must be updated time-to-time. Games Programming III (TGP2281) – T1, 2010/2011 Customizing weights • In certain games, different units can have different sets of tactical weights (w) based on their characteristic. • Example: Reconnaissance units, light infantry, heavy artillery. Tactical info: terrain difficulty, visibility, proximity of enemy units Games Programming III (TGP2281) – T1, 2010/2011 Customizing weights • Weights can also be customized according to a unit’s aggression • E.g. Healthy units finds paths in normal way. When it is injured, the weight for proximity to enemy can be Customizing different increased to make weights the unit for choose a more conservative route units back to base. Games Programming III (TGP2281) – T1, 2010/2011 Implications on heuristic-based pathfinding • When modifying pathfinding heuristics (especially for A*), make sure heuristic measure is not reduced too much due to subtraction of tactical costs, or increased too much due to addition of tactical costs. • May result in underestimating or overestimating heuristic Games Programming III (TGP2281) – T1, 2010/2011 Coordinated Action • To coordinate multiple characters to cooperate together to get their job done, some structure need to be in place. Two categories: 1. Team/Group AI (a group of AI NPCs, fully AI) 2. Cooperative AI (AI cooperates with a human player in a team) • Common Qs: • Should individual AIs “speak” to each other, and make collective decisions? • Should a central “command center/brain” give orders and instructions to each individual AI? • Can we have a bit of both? Games Programming III (TGP2281) – T1, 2010/2011 Multi-Tier AI – Top-Down Approach • Highest level AI makes a decision, passes it down to next level, which uses its instruction to make its decision, and pass again down to the lowest level • Example: Military Hierarchy Games Programming III (TGP2281) – T1, 2010/2011 Multi-Tier AI – Bottom-Up Approach • Lowest level AI algorithms take their own initiative to make decisions, then use higher level algorithms to provide information on which they can base their actions • Example: Autonomous decision making by individual characters that can influence the overall game, Squadbased Strategy games, Evolution-based games • “Emergent cooperation” Games Programming III (TGP2281) – T1, 2010/2011 Multi-Tier AI – Structural Example At higher levels, decision making or tactics are performed. At lower levels, pathfinding and movement behaviors carry out high-level orders Games Programming III (TGP2281) – T1, 2010/2011