← Tactical Air

Reward attribution experiment — v1

Protocol: reward-attribution-v1.protocol.json. Raw results · Summary. Original adaptation-v1 evidence is retained unchanged.

Decision: do-not-promote. All five predeclared gates must pass to advance this candidate.

The candidate uses 50% individual damage credit and 50% team-average damage credit, retaining the original individual defeat penalty and observation gate. No combat rules, stats, player controls, legal tactics, Rust learning parameters or maps changed. This is an experiment-only host adapter; it is not enabled in the game.

Executed 5376 candidate encounters across 32 matched policy seeds, plus 264 reference-replay encounters. The complete replay matched the original seed exactly. Original comparison traces and all source hashes were verified before reuse; reused encounters are not new independent data.

Advancement gates

GateMeasured difference, HP [95% interval]RequirementPass
feint_vs_original-0.66 [-1.08, -0.28]Mean ≥ 3; lower bound > 0false
feint_continued_learning-4.22 [-4.88, -3.56]Mean ≥ 3; lower bound > 0false
reverse_vs_original-4.55 [-5.91, -3.28]Mean ≥ -3; lower bound ≥ -3false
reverse_continued_learning13.45 [11.34, 15.56]Mean ≥ 6; lower bound > 0true
cover_damageMax absolute late-round difference 0.00≤ 1true

Differences compare candidate online against original online, or candidate online against its own identically trained frozen branch. Reversal versus original is a noninferiority guard. Intervals resample paired per-seed means, not individual rounds. No gate or candidate weight was changed after measurement.

Late-round effectiveness

Player switchCandidate onlineCandidate frozenOriginal onlineOriginal frozenFixedRandomCandidate − originalCandidate learning benefit
reverse67.3153.8671.8653.1684.0049.97-4.55 [-5.91, -3.28]13.45 [11.34, 15.56]
feint36.6140.8337.2742.0036.0034.08-0.66 [-1.08, -0.28]-4.22 [-4.88, -3.56]
cover72.0072.0072.0072.0072.0072.000.00 [0.00, 0.00]0.00 [0.00, 0.00]

Higher damage measures enemy effectiveness, not player enjoyment. These are rounds 17–24 after the switch. Each reward rule trains its own policy for 24 clockwise rounds, so the candidate-versus-original effect includes changes during both training and adaptation.

reverse: recovery and player outcomes

RoundsCandidate onlineCandidate frozenOriginal onlineOriginal frozen
1–454.8452.8856.0653.25
5–859.8150.0662.0650.53
9–1264.5954.6669.0955.22
13–1664.1352.5967.9753.53
17–2067.5054.0972.2852.97
21–2467.1353.6371.4453.34

Candidate late clear rate: 100.00%; player death rate: 0.00%; mean duration: 22.34s. Candidate minus fixed damage: -16.69 [-19.03, -14.44] HP.

TacticCandidate probability after trainingAfter switch
vanguard/rush62.17%76.44%
vanguard/hold37.83%23.56%
flanker/flank_left73.76%26.09%
flanker/flank_right26.24%73.91%
ranger/aim11.91%29.23%
ranger/lead88.09%70.77%

feint: recovery and player outcomes

RoundsCandidate onlineCandidate frozenOriginal onlineOriginal frozen
1–439.2840.4141.0641.44
5–837.7839.7539.0940.59
9–1236.0040.5937.5041.72
13–1636.1939.9437.5041.16
17–2035.8140.7836.5642.47
21–2437.4140.8837.9741.53

Candidate late clear rate: 100.00%; player death rate: 0.00%; mean duration: 13.19s. Candidate minus fixed damage: 0.61 [-0.38, 1.69] HP.

TacticCandidate probability after trainingAfter switch
vanguard/rush62.17%58.30%
vanguard/hold37.83%41.70%
flanker/flank_left73.76%52.93%
flanker/flank_right26.24%47.07%
ranger/aim11.91%37.50%
ranger/lead88.09%62.50%

cover: recovery and player outcomes

RoundsCandidate onlineCandidate frozenOriginal onlineOriginal frozen
1–472.0072.0072.0072.00
5–872.0072.0072.0072.00
9–1272.0072.0072.0072.00
13–1672.0072.0072.0072.00
17–2072.0072.0072.0072.00
21–2472.0072.0072.0072.00

Candidate late clear rate: 100.00%; player death rate: 0.00%; mean duration: 11.18s. Candidate minus fixed damage: 0.00 [0.00, 0.00] HP.

TacticCandidate probability after trainingAfter switch
vanguard/rush62.17%51.08%
vanguard/hold37.83%48.92%
flanker/flank_left73.76%54.03%
flanker/flank_right26.24%45.97%
ranger/aim11.91%41.86%
ranger/lead88.09%58.14%

Reproduce and interpret

npm ci
npm run build:wasm
npm run compile:sim
node scripts/evaluate-rewards.mjs --out docs/experiments/reward-attribution-v1-replication
node scripts/verify-rewards.mjs docs/experiments/reward-attribution-v1-replication.results.json

The runner refuses to overwrite evidence. It verifies v1 sources and raw data, then replays one full original trial exactly before reusing the original baselines. Every candidate reward retains original reward, own/team damage, observation status and actual feedback acceptance. Every frozen round is checked for exact policy preservation.