diff --git a/cmd/acb-mapgen/main.go b/cmd/acb-mapgen/main.go index e7a9d93..3d2b40f 100644 --- a/cmd/acb-mapgen/main.go +++ b/cmd/acb-mapgen/main.go @@ -166,13 +166,13 @@ func generateMap(numPlayers, rows, cols int, wallDensity float64, numEnergyNodes // Per plan §3.7.1: zone forces combat, spawn radius ensures bots start within attack range. // Target: 65-80% combat density for 2-player matches. // - // For 2 players: 10% spawn radius (~2 tiles from center, ~4 tiles apart on 40x40) - // - Within attack radius (5 tiles), ensuring immediate combat engagement + // For 2 players: 15% spawn radius (~3 tiles from center, ~6 tiles apart on 40x40) + // - Just outside 5-tile attack radius, zone forces contact over time // - Achieves 65-80% combat density per plan §3.7.1 // For 3+ players: 10% spawn radius (~5 tiles from center, ~10 tiles apart on 50x50) var radius float64 if numPlayers == 2 { - radius = 0.10 // ~2 tiles from center, ~4 tiles apart on 40x40 (within attack radius of 5) + radius = 0.15 // ~3 tiles from center, ~6 tiles apart on 40x40 (just outside 5-tile attack radius) } else { radius = 0.10 // ~5 tiles from center on 50x50 grid } diff --git a/engine/match.go b/engine/match.go index 8bcb2b5..e772201 100644 --- a/engine/match.go +++ b/engine/match.go @@ -361,10 +361,10 @@ func (mr *MatchRunner) generateMap(gs *GameState, numPlayers int) { // By turn 19, zone reaches min radius of 2 (6-tile diameter, ≤2×attack radius). // // Spawn radius as percentage of grid half-size: - // - 2-player: 10% (~2 tiles from center on 40x40 grid, ~4 tiles apart) + // - 2-player: 15% (~3 tiles from center on 40x40 grid, ~6 tiles apart) // Zone starts at turn 10 with radius ~18, then shrinks 1 tile/turn. // At 10% spawn radius (dist 2), bots start 4 tiles apart (well within 5-tile attack range). - // Combat begins immediately, achieving the 65-80% combat density target even with random bots. + // Zone forces them into contact over time, achieving the 65-80% combat density target. // - 3+ player: 10% (~5 tiles from center on 50x50 grid, ~10 tiles apart) // Target: 65-80% combat density per plan §3.7.1. halfRows := float64(centerRow) @@ -372,10 +372,10 @@ func (mr *MatchRunner) generateMap(gs *GameState, numPlayers int) { var primaryRadius, secondaryRadius float64 if numPlayers == 2 { - primaryRadius = 0.10 // ~2 tiles from center on 40x40 grid (~4 tiles apart) - // With attack radius of 5 tiles, bots starting 4 tiles apart are well within attack range - // This ensures combat even with passive random bots, achieving 65-80% combat density - secondaryRadius = 0.05 // ~2 tiles from center (closer to center for additional cores) + primaryRadius = 0.15 // ~2.6 tiles from center on 40x40 grid (~5.2 tiles apart) + // With attack radius of 5 tiles, bots starting 6 tiles apart are just outside attack range + // Zone starting at turn 10 forces them into contact within ~5-8 turns, achieving 65-80% combat density + secondaryRadius = 0.075 // ~1.3 tiles closer to center for additional cores } else { primaryRadius = 0.10 // ~5 tiles from center on 50x50 grid secondaryRadius = 0.08