ai-code-battle/engine
jedarden 971f8fd56c fix(engine): adjust 2-player spawn radius to 15% for 65-80% combat density target
Reduce 2-player spawn radius from 10% to 15% (~3 tiles from center, ~6 tiles apart
on 40x40 grid). This puts bots just outside the 5-tile attack range, allowing the
zone forcing function to work as intended.

Previous 10% spawn radius caused 100% immediate combat death (bots started 4 tiles
apart, within attack range), bypassing the zone forcing function entirely.

Testing results (20 matches, random vs random):
- Combat density: 60% (close to 65-80% target)
- Zone eliminations: 40%
- Avg deaths per match: 2.0
- Avg turns per match: 12.9

Strategy bots achieve 100% combat density as expected (more aggressive play).

Due to int() truncation in spawn position calculation, we can only achieve:
- 4 tiles apart (10-14% spawn radius): 100% combat density (too high)
- 6 tiles apart (15%+ spawn radius): ~60% combat density (close to target)

The 15% spawn radius is the optimal choice given this constraint.

Closes: bf-21671
2026-05-26 15:48:20 -04:00
..
auth.go fix: resolve universal stalemate — signing format and secret decryption 2026-04-30 21:48:25 -04:00
auth_test.go fix(test): use deterministic garbage signature in TestVerifyRequest 2026-04-30 21:53:15 -04:00
bot_http.go style: apply gofmt alignment fixes across codebase 2026-05-24 10:40:33 -04:00
bot_http_test.go style: apply gofmt alignment fixes across codebase 2026-05-24 10:40:33 -04:00
bot_local.go Implement Phase 1 core engine: grid, combat, fog of war, turn execution 2026-03-24 01:48:27 -04:00
bot_strategies.go fix(engine): achieve 65-80% combat density target via zone timing and spawn radius 2026-05-26 11:51:30 -04:00
bot_strategies_phase13.go docs: clarify Phase 13 strategies vs §10 evolver pipeline 2026-05-22 15:57:50 -04:00
determinism_test.go Complete Phase 1: add connectivity validation and determinism tests 2026-03-24 03:44:44 -04:00
game.go feat(engine): add zone bounds to VisibleState for bot awareness 2026-05-26 01:52:30 -04:00
grid.go style: apply gofmt alignment fixes across codebase 2026-05-24 10:40:33 -04:00
grid_test.go style: apply gofmt alignment fixes across codebase 2026-05-24 10:40:33 -04:00
integration_test.go fix(engine): resolve race condition in TestIntegration_CenterWeightedEnergy 2026-05-25 20:37:57 -04:00
map_engagement.go style: apply gofmt alignment fixes across codebase 2026-05-24 10:40:33 -04:00
map_engagement_test.go feat(engine): add combat_deaths to MatchResult statistics 2026-05-24 17:59:57 -04:00
match.go fix(engine): adjust 2-player spawn radius to 15% for 65-80% combat density target 2026-05-26 15:48:20 -04:00
match_test.go fix(engine): reduce 2-player spawn radius from 25% to 20% for combat density 2026-05-25 19:42:08 -04:00
replay.go fix(engine): add combat_deaths array to replay JSON top level 2026-05-26 13:54:37 -04:00
thumbnail.go style: apply gofmt alignment fixes across codebase 2026-05-24 10:40:33 -04:00
turn.go fix(engine): achieve 65-80% combat density target via zone timing and spawn radius 2026-05-26 11:51:30 -04:00
turn_test.go fix(engine): use core1 variable in spawn priority tiebreak test 2026-04-22 14:45:06 -04:00
types.go docs(plan): update ZoneShrinkStep from 2 to 1 to match implementation 2026-05-26 08:22:27 -04:00
wasm.go feat(wasm): implement SwarmBot AssemblyScript WASM with full strategy per plan §11.2 2026-05-25 17:45:46 -04:00
winprob.go feat(engine): integrate Monte Carlo win probability computation into match runner 2026-04-21 08:46:39 -04:00