Capture current mission, AI, map and administration development
Include the current addon, terrain integrations, tools, regression tests and recorded development evidence.
This commit is contained in:
@@ -1,4 +1,24 @@
|
||||
# Convoy coordination review — 27 September 2026
|
||||
# Convoy coordination review — updated 4 October 2026
|
||||
|
||||
## Current composition — 5 October
|
||||
|
||||
Each supply convoy now has five physical vehicles: three armed UAZ escorts,
|
||||
one ammo Ural and one BMP, with ten crew total. The troop Ural and its fourteen
|
||||
passengers now belong to the hunter roster. Convoy startup no longer waits for
|
||||
those infantry groups, and mounted combat resumes after its quiet interval
|
||||
without a nonexistent truck's boarding requirement.
|
||||
|
||||
Canonical vehicle slot 2 is retained as a released empty entry so ammo slot 1,
|
||||
BMP slot 4, rear-escort slot 5 and their immutable HQ/receipt bindings keep their
|
||||
existing identities. No vehicle, group or body is spawned for that retired slot.
|
||||
The receipt reserves ten bodies and five groups; it rejects registration into
|
||||
the retired slot. The shared body ceiling stays unchanged to leave headroom for
|
||||
the infantry moved to hunters. Original finite convoy counts, cargo, mine stock,
|
||||
mounted ammunition and no-replacement rules remain in place.
|
||||
|
||||
The earlier troop-truck dismount/reboarding findings below describe the previous
|
||||
composition; current supply convoys provide mounted escort cover and protect
|
||||
cargo, while the hunter service owns the transported infantry attack.
|
||||
|
||||
## Findings
|
||||
|
||||
@@ -13,9 +33,11 @@ The supply controller also had coordination problems independent of that excepti
|
||||
|
||||
## Current behavior
|
||||
|
||||
`ERR_SupplyConvoyColumn` owns ordinary travel. The initial lead vehicle follows the existing road route; each follower targets the preceding surviving vehicle rather than the distant base. Targets remain stable through small position changes. Followers regulate cruise speed, leave a spacing gap, and can catch up. The leader waits when a gap between neighbours exceeds 160 metres and resumes below 90 metres. After combat and at a new base leg, a stable travel order is formed from surviving vehicles’ physical distance to the next destination. This prevents restoring spawn order by sending trucks toward each other; canonical vehicle identities and combat roles remain unchanged. Released vehicles are skipped and leadership preserves route progress. A replacement leader still has to physically reach the endpoint, even if its predecessor had already completed that route.
|
||||
`ERR_SupplyConvoyColumn` owns ordinary travel. The initial lead vehicle follows the existing road route; each follower targets a point 35 metres back along the preceding surviving vehicle’s recorded path. The bounded trail preserves bends instead of directing followers at an occupied vehicle position. Targets remain stable through small position changes. Normal lead speed is 25 km/h; followers use 15/25/30 km/h according to their separation and explicitly brake when too close (40-metre stop, 65-metre resume). A rear gap above 160 metres stops the leader for at most twenty seconds, then permits 12 km/h travel until the gap closes below 90 metres. A slowly creeping or blocked tail therefore cannot indefinitely stop the entire column. Supply holds still stop the leader. After combat and at a new base leg, a stable travel order is formed from surviving vehicles’ physical distance to the next destination. This prevents restoring spawn order by sending trucks toward each other; canonical vehicle identities and combat roles remain unchanged. Released vehicles are skipped and leadership preserves route progress. A replacement leader still has to physically reach the endpoint, even if its predecessor had already completed that route.
|
||||
|
||||
The leader uses a 15-metre native waypoint radius and a 35-metre physical arrival check. Followers finish in sequence within 75 metres of their predecessor after it arrives. The normal 45–90 second base pause starts only after this physical column arrival. Timeouts do not advance the trip.
|
||||
Follower holds use a 70-metre threshold behind a held predecessor, safely inside the 75-metre arrival boundary. An already parked predecessor without a recorded trail supplies a point 35 metres behind itself along the follower’s approach; this avoids leaving a reformed tail waiting for a leader that no longer needs to move. Reforming or starting a new leg clears old trails.
|
||||
|
||||
The leader uses a 15-metre native waypoint radius and a 35-metre physical arrival check. On straight intermediate route segments it advances the target within 80 metres (at most a 14-degree change in heading), reducing repeated short-target braking; bends and the final destination retain the 35-metre check. Followers finish in sequence within 75 metres of their predecessor after it arrives. The normal 45–90 second base pause starts only after this physical column arrival. Timeouts do not advance the trip.
|
||||
|
||||
The troop truck waits until dismounted infantry are at least 25 metres away before withdrawing. Owned convoy vehicles slow to 8 km/h within 45 metres of their fit dismounted teams; column travel restores the cruising speed after regroup.
|
||||
|
||||
@@ -27,6 +49,16 @@ Unchanged contacts no longer recreate tactical orders. A changed contact can ref
|
||||
|
||||
The HQ journal now records the selected lead vehicle, spacing waits/resumes, periodic neighbour-gap and supply state, route retries, stranded vehicles and departures.
|
||||
|
||||
## Attack coordination added on 4 October
|
||||
|
||||
Convoy infantry receive only the dismount order while aboard. Once their original soldiers are off the truck, the controller removes that truck from the team’s usable transport, then installs native priority movement and search orders on opposing flanks. This avoids a queued movement order selecting the truck again. Regroup restores only the original live friendly uncaptured truck. Mounted escort movement and boarding orders also use explicit command priority; existing mounted crew retention and emergency abandonment remain in force. Failed waypoint allocation preserves the previous working order.
|
||||
|
||||
VirtualHQ, convoy teams and hunter teams share short-lived friendly destination reservations with 60-metre separation. These are bounded (128 groups, twenty-second expiry), refreshed by active owners and released on teardown. They coordinate intended destinations, not physical collision avoidance or enemy tracking. Stationary convoy cover reserves its actual position. Native AI still handles aiming, individual cover selection and steering.
|
||||
|
||||
HQ can send a finite flanking search to an available mobile squad already fighting. This requires a delivered confirmed sighting, confidence at least 0.65, uncertainty at most 150 metres and age at most sixty seconds. Selected search slots one and two use checked flank positions; road interception and containment retain their existing roles. Home guards, logistics reservations, ammunition requirements, radio delivery, finite force budgets and existing task ownership remain protected. Explicit flank orders survive contact for their remaining lifetime (at most four minutes); ordinary searches still pause for combat. Orders do not follow unreported player positions.
|
||||
|
||||
This does not make every island unit join every engagement: guards, busy crews and units without a working report/order path retain their duties.
|
||||
|
||||
## Validation
|
||||
|
||||
`tests/test_convoy_column.py` executes the production controller against doubles of native entities and waypoints. It covers spacing hysteresis, stable targets, physical arrival, supply-order ownership, route-preserving leader promotion, held-time exclusion, retries and loss. It also exercises the actual unchanged-contact order policy and rejects native-test success based on movement before departure.
|
||||
@@ -48,3 +80,7 @@ The sixth run reboarded all 14 passengers and formed a physical travel order, th
|
||||
The seventh run completed the strengthened fixture: all 18 vehicles moved, both infantry teams dismounted, all 14 passengers reboarded, all three convoys departed for another base, and the original troop truck moved twenty metres measured strictly after its next-leg departure. There were no script errors, VM exceptions or stranded-vehicle releases in that run. Native boarding emitted temporary stuck/reset warnings before completing. The runner records `smoke-completed`, unchanged source/external-addon hashes, and confirmed cleanup. All repository checks passed. Generic qualification still exits nonzero for existing external localization/resource and inherited-prefab keyword errors; the raw report is preserved in `r7-completed/qualification.log`. The successful run did not exercise missing-registration restoration, so it does not establish that as the cause of the sixth run’s stall.
|
||||
|
||||
Dedicated multiplayer and long-session navigation across all road layouts remain separate validation requirements. Native obstacle/pathfinding failures are recoverable only within the engine's capabilities; the controller now exposes and bounds stationary failures rather than reporting them as arrival.
|
||||
|
||||
## October validation evidence
|
||||
|
||||
The additional policy tests and private Nogova runs are recorded in [the October evidence](evidence/convoy-hq-coordination-2026-10-04/README.md). They separately qualify physical convoy movement/dismount/flank execution and the generic HQ planner’s mocked native boundaries. The original September circuit/regroup qualification above remains historical evidence, not a claim that every October change received that entire native sequence.
|
||||
|
||||
Reference in New Issue
Block a user