mirror of
https://github.com/jcreek/CosmicClash.git
synced 2026-09-15 02:52:12 +00:00
chore(training): add air_approach_weight and restart stage-5 intercepts
Stage 5 blocked all three attempts on productive_air_touch_fraction stuck exactly at 0.0 across a continuous 180M-step lineage, while goal_rate/upright_fraction/forward_motion_fraction kept improving on the same budget. forward_velocity_to_ball_weight (the term that solved Stage 4's ground pursuit) is hard-gated below GROUND_HANDLING_HEIGHT and does nothing in the air, so Stage 5's air_intercept_chance had no matching aerial incentive to learn from. air_approach_weight adds the airborne mirror (nose-first 3D closing speed, no uprightness multiplier) and folds into HANDLING_REWARD_FLAGS so Stage 6 inherits it too. Deleted the three blocked attempts and reset state to resume Stage 5 from the Stage-4 checkpoint with the new term.
This commit is contained in:
@@ -355,6 +355,11 @@ def parse_args():
|
||||
"--forward-velocity-to-ball-weight", type=float, default=None,
|
||||
help="Low-altitude dense reward for nose-led planar approach toward the ball",
|
||||
)
|
||||
curriculum.add_argument(
|
||||
"--air-approach-weight", type=float, default=None,
|
||||
help="Aerial mirror of forward-velocity-to-ball-weight: high-altitude dense reward for "
|
||||
"nose-led 3D closing speed toward the ball",
|
||||
)
|
||||
curriculum.add_argument(
|
||||
"--ball-distance-penalty", type=float, default=None,
|
||||
help="Overrides ShipAIController.ball_distance_penalty (dense per-tick cost scaled by distance to the ball)",
|
||||
@@ -419,6 +424,7 @@ def _curriculum_kwargs(args) -> dict:
|
||||
"ai_grounded_upright_reward": args.grounded_upright_reward,
|
||||
"ai_velocity_to_ball_weight": args.velocity_to_ball_weight,
|
||||
"ai_forward_velocity_to_ball_weight": args.forward_velocity_to_ball_weight,
|
||||
"ai_air_approach_weight": args.air_approach_weight,
|
||||
"ai_ball_distance_penalty": args.ball_distance_penalty,
|
||||
"ai_ball_touch_reward": args.ball_touch_reward,
|
||||
"ai_airborne_penalty": args.airborne_penalty,
|
||||
|
||||
Reference in New Issue
Block a user