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.
This commit is contained in:
Josh Creek
2026-07-22 12:48:45 +01:00
parent cf4859e61c
commit fca6a46200
5 changed files with 149 additions and 20 deletions
+30
View File
@@ -58,5 +58,35 @@
"wins_b": 19,
"draws": 37,
"win_rate_a": 0.44
},
{
"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
},
{
"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
},
{
"timestamp": "2026-07-22T11:40:07+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-s2-defend.json",
"episodes": 100,
"wins_a": 24,
"wins_b": 57,
"draws": 19,
"win_rate_a": 0.24
}
]