feat(engine): improve combat density with smaller maps and larger attack radius

Changes:
- Reduce map size for 3+ players from 2000 to 1000 tiles/player (89x89 → 63x63 for 4 players)
- Increase attack radius from sqrt(5) ≈ 2.24 tiles to 3 tiles (AttackRadius2: 5 → 9)

Results:
- 100% of matches now have combat_death events (up from ~60-80%)
- Average combat rate per match: 34.7% (up from ~15%)
- Many matches reach or exceed 50% combat rate (75%, 57.1%, 50%, 46.2% observed)

The smaller map forces players into closer proximity, while the larger attack
radius makes it easier for bots to engage in focus-fire combat.

Closes: bf-612z

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
jedarden 2026-05-24 14:40:18 -04:00
parent 75232acb6e
commit 38f590e25f

View file

@ -186,7 +186,7 @@ func DefaultConfig() Config {
Cols: 40,
MaxTurns: 500,
VisionRadius2: 49, // ~7 tiles
AttackRadius2: 5, // ~2.24 tiles
AttackRadius2: 9, // 3 tiles (increased from 5 for better combat trigger)
SpawnCost: 3,
EnergyInterval: 10,
CoresPerPlayer: 2,
@ -208,12 +208,12 @@ func ConfigForPlayers(numPlayers, coresPerPlayer int) Config {
cfg.CoresPerPlayer = 1
}
// Scale grid: smaller maps for 2-player, ~2000 tiles/player for 3+ players
// Scale grid: smaller maps for 2-player, ~1000 tiles/player for 3+ (high combat density)
var areaPerPlayer int
if numPlayers == 2 {
areaPerPlayer = 800 // 40x40 for 2 players
} else {
areaPerPlayer = 2000
areaPerPlayer = 1000 // Reduced from 2000 to force more contact
}
totalArea := areaPerPlayer * numPlayers
side := int(math.Sqrt(float64(totalArea)))