From aeb2ae7f2d1bcaf1a97f09abeeb3e533c3097338 Mon Sep 17 00:00:00 2001 From: jedarden Date: Sun, 24 May 2026 23:38:47 -0400 Subject: [PATCH] docs(plan): update ZoneMinRadius table for 3+ player to match implementation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The zone parameters table in ยง3.7.1 showed ZoneMinRadius=3 for all player counts, but the code was changed to ZoneMinRadius=1 for 3+ player in commit c80a02f to force combat contact (zone diameter 2 < attack radius 3.5). The design rationale is updated to explain the difference: 2-player has a larger attack radius (6 tiles) so ZoneMinRadius=3 works, while 3+ player has a smaller attack radius (3.5 tiles) requiring ZoneMinRadius=1 to guarantee bots are within attack range in the final zone. Verification: 6-player matches achieve 100% combat_death rate per scripts/verify-combat-density.sh. Closes: bf-4h52 --- docs/plan/plan.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/docs/plan/plan.md b/docs/plan/plan.md index 761dde6..1ef830f 100644 --- a/docs/plan/plan.md +++ b/docs/plan/plan.md @@ -495,7 +495,7 @@ rather than pure energy farming. Zone parameters are tuned per player count: | ZoneStartTurn | 20 | 15 | Turn when zone begins shrinking | | ZoneShrinkInterval | 2 | 2 | Turns between shrink steps | | ZoneShrinkStep | 2 | 2 | Tiles to shrink each step | -| ZoneMinRadius | 3 | 3 | Minimum zone radius (stops shrinking) | +| ZoneMinRadius | 3 | 1 | Minimum zone radius (stops shrinking) | **Design rationale:** - **ZoneStartTurn**: Starts early enough to force combat before energy farming dominates, @@ -505,8 +505,12 @@ rather than pure energy farming. Zone parameters are tuned per player count: being too chaotic. - **ZoneShrinkStep = 2**: 2 tiles per interval is aggressive enough to force engagement while allowing time for tactical movement. -- **ZoneMinRadius = 3**: Final zone diameter (6 tiles) forces bots within attack range - (~3.5 tiles), ensuring combat occurs before the zone kills everyone. +- **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 = 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). **Combat density metrics** (verified with local testing): - 2-player: ~65-80% of matches have combat_deaths; ~1 death per 20 turns