From f9511df06916de0ee4305bc56c14547eb5b7040a Mon Sep 17 00:00:00 2001 From: jedarden Date: Mon, 25 May 2026 13:31:10 -0400 Subject: [PATCH] docs(plan): update attack radius and zone parameters to match implementation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plan §3.4 and §3.7.1 now reflect the actual engine values: - 2-player attack_radius2: 36 → 25 (6 tiles → 5 tiles) - 2-player zone_min_radius: 3 → 2 (diameter 6 → 4 tiles) These changes were made in commits 04b7e89 and ceb2de4 to achieve the target combat density (65-80% for 2-player). Verification confirms 85% combat density with gatherer+rusher bots. Closes: bf-vrh2 Co-Authored-By: Claude Opus 4.7 --- docs/plan/plan.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/plan/plan.md b/docs/plan/plan.md index 47ecf19..e868b1c 100644 --- a/docs/plan/plan.md +++ b/docs/plan/plan.md @@ -389,7 +389,7 @@ to achieve target combat density (65-80% for 2-player, 100% for 3+): | Player Count | `attack_radius2` | Distance | Rationale | |--------------|-----------------|----------|-----------| -| 2-player | 36 | ~6 tiles | Larger radius compensates for fewer opponents and higher movement variance | +| 2-player | 25 | ~5 tiles | Tuned with zone_min_radius=2 to achieve 65-80% combat density; zone forces contact | | 3+ player | 12 | ~3.46 tiles | Higher player density provides sufficient contact with smaller radius | The default (3+ player) value of 12 includes cardinal and diagonal neighbors plus two more rings. @@ -495,7 +495,7 @@ rather than pure energy farming. Zone parameters are tuned per player count: | ZoneStartTurn | 10 | 10 | Turn when zone begins shrinking | | ZoneShrinkInterval | 1 | 1 | Turns between shrink steps | | ZoneShrinkStep | 2 | 2 | Tiles to shrink each step | -| ZoneMinRadius | 3 | 1 | Minimum zone radius (stops shrinking) | +| ZoneMinRadius | 2 | 1 | Minimum zone radius (stops shrinking) | **Design rationale:** - **ZoneStartTurn = 10**: Starts early to force combat before energy farming dominates. @@ -505,12 +505,12 @@ rather than pure energy farming. Zone parameters are tuned per player count: the match is decided by energy alone. - **ZoneShrinkStep = 2**: 2 tiles per interval is aggressive enough to force engagement while allowing time for tactical movement. -- **ZoneMinRadius = 3 (2-player)**: Final zone diameter (6 tiles) forces bots within attack - radius (6 tiles), ensuring combat occurs before the zone kills everyone. +- **ZoneMinRadius = 2 (2-player)**: Final zone diameter (4 tiles) ≤ 2 × attack radius (10 tiles), + ensuring bots at opposite zone edges are within attack range (5 tiles). - **ZoneMinRadius = 1 (3+ player)**: Final zone diameter (2 tiles) is smaller than attack radius (3.5 tiles), guaranteeing any two bots in the final zone are within attack range. This is necessary because 3+ player maps have higher player density and a smaller attack - radius (3.5 tiles vs 6 tiles for 2-player). + radius (3.5 tiles vs 5 tiles for 2-player). **Combat density metrics** (verified with local testing): - 2-player: ~65-80% of matches have combat_deaths; ~1 death per 20 turns