Release Notes & Changelog

What's New in Tactical AI

Complete release documentation, architectural highlights, new component references, and upgrade guides for Versions 3.0, 2.5, and 2.0.

VERSION 3.0

Tactical AI 3.0: Combat Locomotion, Synchronized Squads & Scene Validator

Tactical AI Version 3.0 represents a major evolutionary leap: bridging the gap between the Search Phase (choosing where to hide, introduced in v1 and expanded in v2/v2.5) and the Execution Phase (how agents dynamically react, adjust posture, peek corners, vault barriers, and coordinate squad fireteams once in cover).

Version 3.0 is 100% backwards-compatible with existing v2.x projects while adding dedicated locomotion execution APIs, coordinated squad fireteams, 3 new tactical scorers, sensory stimulus management, universal cover metadata, and an automated in-editor scene diagnostic validator with 1-click auto-fix.

Tactical AI 3.0 Architecture ┌───────────────────────────────────┼───────────────────────────────────┐ ▼ ▼ ▼ [ Combat & Locomotion Execution ] [ Synchronized Squad Maneuvers ] [ Environment & Agent Validator ] • DesiredStance & Auto Posture • Dynamic Fireteam Splitting • Automated Scene Diagnosis (7 Categories) • TryGetBestPeekDirection (LOS) • Synchronized Squad Commands • Smart Grouped Summary View • Proactive Flank Warnings (>90°) • Shared Hivemind Threat Memory • Safe 1-Click Auto-Fix All (Undoable) • Obstacle Vault / Mantle Checks • 3 New Strategic Scorers • Direct In-Editor Doc Links & Preflight CI • Real-Time Suppression Meter • StimulusRegistry Sensory Events • Universal ICoverDataProvider & Tags

1. TacticalAgent: Combat & Locomotion Execution APIs

Previously, TacticalAgent primarily focused on finding candidate spots and moving towards them. In Version 3.0, your agents can continuously query and execute tactical combat logic while in or navigating to cover:

Stance Recommendation (`DesiredStance`)

Reads CoverPointFlags from the active cover spot to dynamically inform your animation controller whether the agent should stand, crouch, or is versatile.

// Listen to stance transitions
agent.OnStanceChangeRequired += (newStance) => {
    animator.SetBool("IsCrouching", newStance == CoverStance.Crouching);
};

Smart Corner Peeking (`TryGetBestPeekDirection`)

Evaluates whether stepping left or right from behind cover yields clear line of sight to the enemy without exposing the agent's core mass.

if (agent.TryGetBestPeekDirection(targetPos, out PeekDirection dir)) {
    if (dir == PeekDirection.PeekRight) PlayPeekRightAnimation();
    else if (dir == PeekDirection.PeekLeft) PlayPeekLeftAnimation();
}

Proactive Flank Warnings (`IsFlanked`)

Calculates GetCoverFlankAngle(). If an enemy crosses the cover plane (>90° angle), IsFlanked becomes true, allowing AI to scramble before taking damage.

if (agent.IsFlanked) {
    // Enemy is behind our cover line; immediately repath
    agent.FindTacticalPosition();
}

Obstacle Vaulting (`CanVaultCover`)

Validates if low barrier cover can be mantled over during rush maneuvers and computes the exact landing coordinate on the NavMesh.

if (agent.CanVaultCover(out Vector3 landingPos)) {
    animator.SetTrigger("Vault");
    navMeshAgent.Warp(landingPos);
}

Live Agent Suppression Meter (`SuppressionLevel` & `IsSuppressed`)

Provides a real-time normalized float value (0.0 to 1.0) reflecting the incoming fire intensity directed at the agent. Integrates with automatic recovery decay over time.

if (agent.SuppressionLevel > 0.7f) {
    // Agent is under intense suppressive fire; cower or seek fortified bunker
    animator.SetTrigger("CowerUnderFire");
}

2. SquadCoordinator: Synchronized Maneuvers & Dynamic Fireteams

Version 3.0 upgrades squad coordination from passive reservations to active tactical fireteams and synchronized squad maneuvers:

Dynamic Fireteam Splitting (`AssignFireteams`)

Automatically divides any registered squad into two coordinated sub-teams:

  • Base of Fire (Suppression Element): Pins the target down with sustained gunfire and holds position.
  • Maneuver Element (Flanking Force): Paths around the sides or rear of the pinned enemy using flank providers.
Synchronized Squad Commands (`ExecuteManeuver`)
Maneuver Order Tactical Execution Behavior
TacticalSquadManeuver.SuppressAndFlank Suppression team engages target directly while flanking team advances to unmonitored angles.
TacticalSquadManeuver.BoundingOverwatch Alternating leap-frog advances where one element covers the movement of the second element.
TacticalSquadManeuver.TacticalFallBack Coordinated, rearward withdrawal into defensive perimeter cover.
TacticalSquadManeuver.HoldPerimeter Agents fan out into 360° defensive cover surrounding an objective or strongpoint.
Hivemind Threat Memory (`BroadcastSquadThreat`)

When any squad member acquires line of sight to a hostile, calling BroadcastSquadThreat(squadName, targetPos) updates the shared threat location across all allies in the squad.

3. 3 New Tactical Scorers (v3.0)

Zone Control State

`ZoneControlStateScorerSO` evaluates candidate hiding spots based on whether their TacticalZone is FriendlyControlled, Contested, or HostileControlled.

preferredStateFavored zone state
vetoHostileZonesReject enemy-held zones
vetoContestedZonesReject contested zones

Enables defensive medics/snipers to veto hostile territory while rushers prioritize contested objectives.

Vault Opportunity

`VaultOpportunityScorerSO` rewards low obstacles that have the CoverPointFlags.Vaultable bit set.

vaultableScoreScore for low barriers (1.0)
nonVaultableScoreScore for high walls (0.2)
requireVaultableOnlyVeto static cover

Allows shotgunners, rushers, and agile flankers to favor barriers they can immediately mantle over.

Sensory Stimulus Filter

`SensoryTypeScorerSO` evaluates proximity to disturbances recorded in StimulusRegistry with category bitmask filtering.

targetStimuliGunshot, Footstep, etc.
hearingRangeAudible reaction radius
investigateModeTrue = seek, False = flee

Supports investigation mode (seeking gunshots) or evasion mode (fleeing loud explosions).

4. StimulusRegistry: Global Sensory Events

High-speed, zero-allocation global sensory registry tracking audio and visual disturbances across your scene:

Stimulus Categories
  • StimulusType.Gunshot: High threat, large audible radius.
  • StimulusType.Footstep: Subtle disturbance with acoustic falloff.
  • StimulusType.Explosion: Extreme intensity, triggers evasive retreat.
  • StimulusType.Distraction: Rocks, coins, lure devices.
  • StimulusType.VoiceCallout: Shoutings, teammate warnings.
Public API Example
// Register a disturbance when shooting
StimulusRegistry.RegisterStimulus(
    StimulusType.Gunshot,
    muzzleTransform.position,
    radius: 40f,
    intensity: 1.0f
);

// Query perceived stimuli
if (StimulusRegistry.TryGetLoudestStimulus(agent.position, threshold: 0.2f, out var stimulus)) {
    agent.InvestigatePosition(stimulus.Position);
}

5. Custom Cover Metadata & Universal Stance System

Tactical AI 3.0 provides a universal metadata pipeline connecting level geometry directly to AI tactical evaluations:

`CoverPointFlags` Enum

[Flags]
public enum CoverPointFlags {
    None         = 0,
    LowStance    = 1 << 0,  // Crouch cover
    HighStance   = 1 << 1,  // Standing cover
    EdgePoint    = 1 << 2,  // Corner for peeking
    Vaultable    = 1 << 3,  // Mantleable barrier
    Destructible = 1 << 4   // Thin / penetrable
}

`CoverMetadata` Drop-In Component

Attach CoverMetadata to any collider, crate, sandbag, or wall in your scene to instantly author:

  • Stance: Low, High, or Both.
  • Corner/Edge Toggle: Informs peeking algorithms.
  • Vaultable / Destructible: Physical flags.
  • String Gameplay Tags: e.g. "SniperNest", "Reinforced".

6. Environment & Agent Scene Validator Tool (v3.0)

Tactical AI 3.0 includes an in-editor diagnostic and auto-repair suite designed to eliminate silent configuration errors before playtesting:

┌────────────────────────────────────────────────────────────────────────────┐ │ Tactical AI — Environment & Agent Validator [📖 Docs] [⚡ Auto-Fix All] [🔍 Scan]│ ├────────────────────────────────────────────────────────────────────────────┤ │ [ 12 ] Agents [ 34 ] Helpers [ 0 ] Errors [ 2 ] Warnings [ 5 ] Suggestions │ ├────────────────────────────────────────────────────────────────────────────┤ │ 🟡 WARNING [Service Dependency] (12 Objects Affected) │ │ Missing SuppressionService In Scene │ │ Active agents use SuppressionPressureScorerSO, but no service is present. │ │ 💡 Recommendation: Create a SuppressionService in the scene. │ │ [▼ View 12 Affected Objects] [📖 Doc] [⚡ Fix All 12] │ └────────────────────────────────────────────────────────────────────────────┘
The 7 Diagnostic Inspection Categories:
1. Scene Environment

Checks for unbaked NavMesh, missing light probes for shadow scorers, and missing directional lights.

2. Agent Setup

Detects missing settings assets, missing NavMeshAgent components, self-occlusion hazards, and stopping distance conflicts.

3. Service Dependencies

Flags missing SuppressionService, SquadCoordinator, or ThreatMapService singletons required by active agents.

4. Provider Dependencies

Warns when providers like CoverNodeProviderSO or TacticalZoneProviderSO are active but 0 scene helpers exist.

5. Scorer Optimization

Identifies zero-weight scorers wasting search cycles and flags zone scorers without zones.

6. Semantic Compatibility

Verifies providers supply CoverPointFlags when using posture scorers, and validates path max distances.

7. Orphaned Scene Authoring

Alerts designers when placed CoverNode or TacticalZone volumes are never referenced by any active agent profile, or if zone colliders were accidentally left non-trigger.

⚡ One-Click Auto-Fix & Safe Undo: Click "⚡ Auto-Fix All" or click "⚡ Fix" on individual issue cards to safely correct misconfigurations with full Unity Undo (Ctrl+Z) support.

7. v3.0 Integration Code Example

using UnityEngine;
using MaharajaStudio.TacticalAI;
using MaharajaStudio.TacticalAI.Helper;

public class SquadAssaultController : MonoBehaviour
{
    [SerializeField] private string squadName = "BravoTeam";
    [SerializeField] private Transform enemyTarget;

    public void ExecutePincerAssault()
    {
        // 1. Issue synchronized squad maneuver: suppressors pin enemy, flankers wrap around
        SquadCoordinator.Instance.ExecuteManeuver(
            squadName,
            TacticalSquadManeuver.SuppressAndFlank,
            enemyTarget
        );

        // 2. Broadcast high-priority enemy target position across squad hivemind
        SquadCoordinator.Instance.BroadcastSquadThreat(squadName, enemyTarget.position);
    }
}

Ready to explore full v3.0 technical documentation?

View full class references, method signatures, parameter tables, and cookbooks.

Go to Full Documentation
VERSION 2.5

Tactical AI 2.5: Dynamic Suppression, CQB Stacking & Weapon Sweetspots

Tactical AI Version 2.5 introduces high-fidelity ballistics awareness, tactical CQB spatial analysis, weapon-range behavioral tuning, and high-ground vantage anchor capabilities.

Version 2.5 is 100% backwards-compatible with v2.0 setups, allowing you to selectively add ballistic suppression, doorway stacking breach points, and Gaussian weapon range profiles.

Tactical AI 2.5 Architecture ┌─────────────────────────────────┼─────────────────────────────────┐ ▼ ▼ ▼ [ Tactical CQB & Sniping ] [ Dynamic Suppression ] [ Weapon & 360° Security ] • DoorStackProviderSO • SuppressionService • WeaponSweetspotScorerSO • ElevationAnchorProviderSO • SuppressionPressureScorerSO • FlankExposureRiskScorerSO

1. Dynamic Suppression & Incoming Fire Awareness

Provides your AI with real-time awareness of incoming gunfire streams and bullet paths:

`SuppressionService`

High-performance singleton tracking active gunfire lines and bullet streams in real-time with automatic temporal decay.

SuppressionService.Instance.RegisterSuppressiveFire(
    origin: muzzle.position,
    direction: muzzle.forward,
    length: 50f,
    radius: 1.5f,
    duration: 0.8f
);

`SuppressionPressureScorerSO`

High-stakes survival scorer that penalizes or vetoes candidate spots that fall inside active bullet corridors or incoming fire lines.

  • strictVeto = true: Immediately returns -Infinity to reject spots under fire.
  • Zero-Allocation: Fast vector cylinder distance math.

2. Advanced CQB & High-Ground Spatial Providers

Door Stack Provider (`DoorStackProviderSO`)

Dynamically scans geometry to detect doorway openings and choke points, generating wall-hugging "Stack Left" and "Stack Right" candidate points outside the fatal funnel.

maxDoorwayWidth Max opening width (default: 3.0m).
stackOffset Distance from doorframe edge (default: 1.0m).
raycastDepth Wall depth scan tolerance (default: 2.0m).

Elevation Anchor Provider (`ElevationAnchorProviderSO`)

Identifies multi-story NavMesh surfaces with significant altitude advantage over the enemy, verifying drop-off ledges for snipers, marksmen, and overwatch units.

minElevationAdvantage Minimum vertical height difference (default: 3.0m).
requireLedgeEdge Rejects gentle slopes; requires drop-off ledge (default: true).
maxSearchRadius Maximum altitude search radius (default: 40.0m).

3. Weapon Range Sweetspots & 360° Flank Security

Weapon Sweetspot (`WeaponSweetspotScorerSO`)

Evaluates distance to target using a tunable Gaussian bell-curve. Allows distinct archetype tuning for Shotguns, Rifles, and Snipers.

Score 1.0 ┤ ╭───╮ ◄ Optimal Range (e.g. 18m) 0.5 ┤ ╭──╯ ╰──╮ 0.0 ┴───┴─────────┴─── Distance (m)
Shotgun Rusheroptimal: 4.0m, stdDev: 2.5m
Assault Rifleoptimal: 18.0m, stdDev: 8.0m
Sniperoptimal: 40.0m, stdDev: 15.0m

Flank Exposure Risk (`FlankExposureRiskScorerSO`)

Radial 360° raycast scorer that measures ambient exposure. Rewards spots tucked deep into wall corners and penalizes open-field positions.

scanRadius Barrier scan distance (default: 10.0m).
rayCount Radial ray samples (default: 8 rays).
threatMask Layers considered protective occluders.

4. v2.5 Step-by-Step Setup Guide

  1. Add Suppression Service to Your Scene:
    Create an empty GameObject in your scene named [SuppressionService] and attach the SuppressionService component.
  2. Create Weapon Sweetspot Profiles:
    Right-click in Unity: Create > TacticalAI > Scorers > Offensive > Weapon Sweetspot.
    Set optimalRange: 4.0 for Shotguns, 18.0 for Assault Rifles, and 40.0 for Snipers.
  3. Add v2.5 Providers & Scorers to Settings:
    Add DoorStackProviderSO and ElevationAnchorProviderSO under Providers, and add SuppressionPressureScorerSO and FlankExposureRiskScorerSO under Scorers.

Ready to explore full v2.5 technical documentation?

View full class references, method signatures, parameter tables, and cookbooks.

Go to Full Documentation
VERSION 2.0 ARCHIVE

Version 2.0 Archive & Upgrade Guide

⚠️ Namespace Rebranding Note: In Version 2.0, the asset evolved from "Hiding System" to "Tactical Cover & Retreat AI". The namespace changed from MaharajaStudio.HidingSystem to MaharajaStudio.TacticalAI.

Namespace & Class Migration Reference

Old Term (v1.x) New Term (v2.0+) Notes
MaharajaStudio.HidingSystem MaharajaStudio.TacticalAI Root namespace update
EnemyHider TacticalAgent Primary component script
HidingSettingsSO TacticalProfileSO / TacticalAISettingsSO Settings profile asset
HideSpotScorerSO TacticalScorerSO Base class for custom scorers
HideSpotProviderSO TacticalSpotProviderSO Base class for custom providers

8 Providers Introduced in Version 2.0

AdvanceCoverProviderSO
Leapfrog forward movement towards targets.
ChokePointProviderSO
Constricted corridor and doorway ambushes.
CornerEdgeProviderSO
Vertical corner peeking and wall boundaries.
FlankPointProviderSO
Side and rear flanking candidate arcs.
PincerFormationProviderSO
Squad encirclement and pincer formations.
RoomClearanceProviderSO
Pie-slicing doorways and room breach points.
SquadFormationProviderSO
Wedge, line, and V squad spatial shapes.
VantagePointProviderSO
High-ground sniper bias and elevated perches.

25 Specialized Scorers Introduced in Version 2.0

Version 2.0 introduced 25 specialized scorers organized across tactical disciplines:

Offensive & Combat Scorers
  • AggressiveLOSScorerSO — Rewards clear offensive sightlines.
  • PlayerPathPredictionScorerSO — Intercepts player heading vectors.
  • PushForwardScorerSO — Drives rushers towards the front line.
  • RearAttackScorerSO — Prioritizes blind spots behind targets.
  • HighGroundScorerSO — Rewards vertical advantage.
Defensive & Survival Scorers
  • FatalFunnelScorerSO — Penalizes standing directly in doorway openings.
  • EscapeRouteScorerSO — Verifies unobstructed secondary retreat paths.
  • SkyliningScorerSO — Penalizes silhouetting against open ridgelines.
  • BulletPenetrationScorerSO — Tests wall thickness against calibers.
  • CasualtyAversionScorerSO — Flees spots where teammates fell.
Squad & Formation Scorers
  • SquadReservationScorerSO — Prevents teammates claiming identical spots.
  • SquadSeparationScorerSO — Maintains healthy dispersal spacing.
  • LineOfFireScorerSO — Prevents stepping into friendly firing corridors.
  • MuzzleDisciplineScorerSO — Penalizes sweeping allies with crosshairs.
  • SectorWatchScorerSO — Divides 360° defensive surveillance sectors.
Spatial & Sensory Scorers
  • LightProbeScorerSO — Favors dark, shadowy hiding spots.
  • AudioStimulusScorerSO — Investigates gunshot / footstep disturbances.
  • WallHuggingScorerSO — Hugs solid geometry contours.
  • ZoneControlScorerSO — Scores spots by TacticalZone control state.
  • StalemateBreakerScorerSO — Applies penalties to campers to break stalemates.

Tactical AI Profiler Window

Introduced in v2.0, the Tactical AI Profiler (Window > Analysis > Tactical Cover And Retreat AI > Tactical AI Profiler) provides millisecond-accurate diagnostics for AI searches:

  • Pulse Graph (Live Monitor): Visualizes computational cost per search request with a 16ms (60 FPS) yellow budget line.
  • Timeline Breakdown: Color-coded execution metrics dividing time into Generation, Job Setup, Burst Execution, Scoring, and NavMesh Pathing.
  • Pause on Fail: Automatically pauses Unity playmode the instant any agent fails to find cover, allowing immediate inspection in the Tactical Decision Inspector.
  • Candidate Spatial Map: Top-down 2D dot cluster showing all evaluated candidate positions and the winning spot.

Ready to explore full technical documentation?

View full class references, method signatures, parameter tables, and cookbooks.

Go to Full Documentation
Top Full Docs