Ring mover heat retune (author: the user) - dodge bullets, ignore walls/centre,
re-plan 3x more often Uncommitted working-tree change in `the_floor_is_lava_ring.nim`, confirmed by the user as theirs. Committing it so it stops appearing in every job's `git status`. WHAT IT DOES - a coherent "be far more afraid of bullets" strategy: - BULLETS 2x hotter: BulletCore 10 -> 20, BulletAura 5 -> 10. - Walls weaker and thinner: WallRadiance 10 -> 5; the `WallHotness` default 10 -> 15 (so the heat falls off over ~3 tiles instead of 1, with a higher peak). - CENTRE PILLAR DISABLED: PillarHotness 30 -> 0, PillarRadiance 10 -> 0, so the bot may now use the middle of the arena instead of treating it as a no-go zone. - MUCH more reactive: CommitTicks 15 -> 5 and MinCommitTicks 5 -> 0, i.e. the dodge target is re-chosen 3x more often and a replan is allowed immediately. - `CorridorHeat` default 5 -> 10. This applies ONLY to the ring mover, which is NOT the shipped movement (the default is `tfil`), so the shipped bot is unaffected. TWO FACTS RECORDED, not objections - it is the user's call: 1. `CorridorHeat = 10` now EQUALS `PathDangerThreshold = 10`. The earlier measured taming set it to 5 precisely so a single corridor could no longer poison a path on its own (a corridor at 10 puts every tile along it at/over the threshold). That is part of what lifted the "band-weightable" fraction from 10.8% to 26.5%. At 10 the range weighting gets less to work with. 2. UNMEASURED: this retune has not been A/B'd. The ring mover it modifies was itself measured as a glass cannon (best offline hit rate, but round wins 16/49 -> 6/49, p=0.012). The two changes push in the same direction - hotter bullets and more frequent replanning mean MORE dodging and LESS time spent closing to the 100-200px band where our hit rate peaks (27% vs 5% at 450px). Worth an A/B before drawing conclusions, but it is an experiment, not a shipped change.
This commit is contained in:
@@ -80,8 +80,8 @@ const BulletCoreRadiusMax = 54.0 ## core radius at power 3.0
|
|||||||
const BulletAuraExtMin = 36.0 ## aura extension at power 3.0 (slow)
|
const BulletAuraExtMin = 36.0 ## aura extension at power 3.0 (slow)
|
||||||
const BulletAuraExtMax = 54.0 ## aura extension at power 0.1 (fast)
|
const BulletAuraExtMax = 54.0 ## aura extension at power 0.1 (fast)
|
||||||
|
|
||||||
const BulletCore = 10.0 ## lava accumulation per bullet-overlapping tile
|
const BulletCore = 20.0 ## lava accumulation per bullet-overlapping tile
|
||||||
const BulletAura = 5.0 ## lava accumulation for aura ring tiles
|
const BulletAura = 10.0 ## lava accumulation for aura ring tiles
|
||||||
|
|
||||||
const EnemyCoreRadius = 18.0 ## half of 36px body
|
const EnemyCoreRadius = 18.0 ## half of 36px body
|
||||||
const EnemyAuraRadius = 54.0 ## 18 + 36
|
const EnemyAuraRadius = 54.0 ## 18 + 36
|
||||||
@@ -92,13 +92,13 @@ const EnemyAura = 10.0 ## lava per tile in enemy aura ring
|
|||||||
## NOTE: CorridorHeat and WallHotness are NOT const here (unlike the original
|
## NOTE: CorridorHeat and WallHotness are NOT const here (unlike the original
|
||||||
## `the_floor_is_lava.nim`): they are env-overridable and read at module init,
|
## `the_floor_is_lava.nim`): they are env-overridable and read at module init,
|
||||||
## below, in the same style as the range-weighting knobs.
|
## below, in the same style as the range-weighting knobs.
|
||||||
const WallRadiance = 10.0
|
const WallRadiance = 5.0
|
||||||
|
|
||||||
const PillarHotness = 30.0
|
const PillarHotness = 0.0
|
||||||
const PillarRadiance = 10.0
|
const PillarRadiance = 0.0
|
||||||
|
|
||||||
const CommitTicks = 15 ## ticks to commit to a dodge point
|
const CommitTicks = 5 ## ticks to commit to a dodge point
|
||||||
const MinCommitTicks = 5 ## must commit for this many ticks before danger replan allowed
|
const MinCommitTicks = 0 ## must commit for this many ticks before danger replan allowed
|
||||||
const DangerReplanThreshold = 25.0 ## replan on serious threats only (bullet core), not corridors/auras
|
const DangerReplanThreshold = 25.0 ## replan on serious threats only (bullet core), not corridors/auras
|
||||||
const CoolestLevels = 2 ## how many distinct lava values count as "cool"
|
const CoolestLevels = 2 ## how many distinct lava values count as "cool"
|
||||||
const MaxTrackedBullets = 20 ## hard cap on tracked bullets
|
const MaxTrackedBullets = 20 ## hard cap on tracked bullets
|
||||||
@@ -129,8 +129,8 @@ let RangeK* = getEnvFloat("TR_TFIL_RANGE_K", DefaultRangeK)
|
|||||||
let MovementLog* = existsEnv("TR_MOVEMENT_LOG")
|
let MovementLog* = existsEnv("TR_MOVEMENT_LOG")
|
||||||
|
|
||||||
# ── Heat-field knobs (see the rationale in the file header) ──────────────────
|
# ── Heat-field knobs (see the rationale in the file header) ──────────────────
|
||||||
let CorridorHeat* = getEnvFloat("TR_TFIL_CORRIDOR_HEAT", 5.0)
|
let CorridorHeat* = getEnvFloat("TR_TFIL_CORRIDOR_HEAT", 10.0)
|
||||||
let WallHotness* = getEnvFloat("TR_TFIL_WALL_HOTNESS", 10.0)
|
let WallHotness* = getEnvFloat("TR_TFIL_WALL_HOTNESS", 15.0)
|
||||||
|
|
||||||
proc rangeWeight*(d, lo, hi, k: float): float =
|
proc rangeWeight*(d, lo, hi, k: float): float =
|
||||||
## Flat-topped range weight. Exactly 1.0 for d inside [lo, hi]; Gaussian
|
## Flat-topped range weight. Exactly 1.0 for d inside [lo, hi]; Gaussian
|
||||||
|
|||||||
Reference in New Issue
Block a user