Files
CosmicClash/training/curriculum_state.json
T
Josh Creek fca6a46200 fix(training): correct stage-3 eval (locomotion-mask bugfix) and add grounded aggression stage
Re-ran stage-3 (curric-s3-no_draws vs curric-s2-defend) and the missing
stage-4 gate now that the locomotion-mask inference bugfix is in. Both
reverse or contradict the pre-fix bookkeeping: curric-s2-defend (grounded)
beats curric-s3-no_draws 60-26 and curric-s4-mechanics 57-24 when fairly
evaluated, so lifting the locomotion mask in stage 3 was a real regression
in floor play, not the improvement the buggy eval reported.

Adds a stage-5 "aggression" curriculum entry that resumes from stage 2
directly (via new resume_from_experiment/reference_experiment stage-dict
overrides in curriculum.py) instead of compounding the regression through
stages 3-4, keeps the locomotion mask on, and retunes ball-pursuit reward
weights for much more aggressive floor play. Extends train.py with the
three new --velocity-to-ball-weight/--ball-distance-penalty/--ball-touch-reward
flags needed to forward that retune to Godot's existing SHIP_AI_OVERRIDES.

curriculum_state.json and TRAINING.md are corrected/annotated in place
rather than silently rewritten, so the regression stays visible in history.
2026-07-22 12:48:45 +01:00

74 lines
2.9 KiB
JSON

{
"stage_index": 4,
"attempt": 0,
"status": "in_progress",
"log": [
{
"stage_index": 0,
"experiment": "curric-s1-score",
"attempt": 0,
"eval": {
"timestamp": "2026-07-21T15:52:20+00:00",
"model_a": "/home/jcreek/ai-training/CosmicClash/Game/bots/curric-s1-score.json",
"model_b": "/home/jcreek/ai-training/CosmicClash/Game/bots/rookie.json",
"episodes": 100,
"wins_a": 22,
"wins_b": 16,
"draws": 62,
"win_rate_a": 0.22
},
"decision": "pass"
},
{
"stage_index": 1,
"experiment": "curric-s2-defend",
"attempt": 0,
"eval": {
"timestamp": "2026-07-21T18:19:44+00:00",
"model_a": "/home/jcreek/ai-training/CosmicClash/Game/bots/curric-s2-defend.json",
"model_b": "/home/jcreek/ai-training/CosmicClash/Game/bots/curric-s1-score.json",
"episodes": 100,
"wins_a": 23,
"wins_b": 16,
"draws": 61,
"win_rate_a": 0.23
},
"decision": "pass"
},
{
"stage_index": 2,
"experiment": "curric-s3-no_draws",
"attempt": 0,
"eval": {
"timestamp": "2026-07-22T11:36:42+00:00",
"model_a": "/Users/jcreek/Documents/repos/GitHub/CosmicClash/Game/bots/curric-s3-no_draws.json",
"model_b": "/Users/jcreek/Documents/repos/GitHub/CosmicClash/Game/bots/curric-s2-defend.json",
"episodes": 100,
"wins_a": 26,
"wins_b": 60,
"draws": 14,
"win_rate_a": 0.26
},
"decision": "fail",
"note": "Original eval (44-19, recorded 2026-07-21T20:46:34) predates the locomotion-mask inference bugfix (8c15c46) and ran with the grounded stage-2 reference unfairly unmasked. Re-run post-fix with --grounded-b reverses the verdict: stage 3's full-3D unmask is a clear regression from stage 2, not an improvement. Not retried via the normal flag-retry mechanism — see stage_index 4 (aggression), which redirects around this branch by resuming from curric-s2-defend directly instead."
},
{
"stage_index": 3,
"experiment": "curric-s4-mechanics",
"attempt": 0,
"eval": {
"timestamp": "2026-07-22T11:38:57+00:00",
"model_a": "/Users/jcreek/Documents/repos/GitHub/CosmicClash/Game/bots/curric-s4-mechanics.json",
"model_b": "/Users/jcreek/Documents/repos/GitHub/CosmicClash/Game/bots/curric-s3-no_draws.json",
"episodes": 100,
"wins_a": 26,
"wins_b": 33,
"draws": 41,
"win_rate_a": 0.26
},
"decision": "pass",
"note": "Passes only against its own (already-regressed) predecessor, curric-s3-no_draws. Evaluated directly against grounded curric-s2-defend (2026-07-22T11:40:07), curric-s4-mechanics also loses clearly: 24-57-19. Do not treat this stage's 'pass' as evidence curric-s4-mechanics is the strongest available model overall — see stage 2's note and stage_index 4 (aggression)."
}
]
}