docs(bf-5jb): local match analysis with verbose logging and replay capture

- Ran multiple local matches with --verbose flag enabled
- Captured replay JSON data from 6-player, 4-player, and 3-player matches
- Analyzed combat events: 6 combat deaths, 4 energy collections, 7 bot spawns in primary match
- Created comprehensive analysis document with combat event counts
- No focus-fire behavior detected in test matches (no multi-killer combat events)
- All matches completed successfully without errors

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
jedarden 2026-06-27 12:48:40 -04:00
parent e82b62d2de
commit 986455b606
8 changed files with 7938 additions and 1 deletions

View file

@ -1 +1 @@
63b6f9916d00440eb061b227eb6b1e0c81929559
df02aff045df0a5e300163e08d75d260f03e2837

View file

@ -0,0 +1,24 @@
2026/06/27 12:47:06 Starting match: gatherer vs rusher vs swarm vs hunter vs guardian vs siege
2026/06/27 12:47:06 Seed: 1782578826231854728, Grid: 77x77, MaxTurns: 616, Cores/player: 1
[acb] 2026/06/27 12:47:06 Turn 1: 4 living bots
[acb] 2026/06/27 12:47:06 Turn 2: 4 living bots
[acb] 2026/06/27 12:47:06 Turn 3: 4 living bots
[acb] 2026/06/27 12:47:06 Turn 4: 4 living bots
[acb] 2026/06/27 12:47:06 Turn 5: 2 living bots
[acb] 2026/06/27 12:47:06 Turn 6: 2 living bots
[acb] 2026/06/27 12:47:06 Turn 7: 2 living bots
[acb] 2026/06/27 12:47:06 Turn 8: 2 living bots
[acb] 2026/06/27 12:47:06 Turn 9: 2 living bots
[acb] 2026/06/27 12:47:06 Activating zone at turn 9 (next turn will be 10)
[acb] 2026/06/27 12:47:06 Turn 10: 2 living bots
[acb] 2026/06/27 12:47:06 Turn 11: 3 living bots
[acb] 2026/06/27 12:47:06 Turn 12: 1 living bots
2026/06/27 12:47:06 Replay written to test-replay-comprehensive.json
Match complete!
Players: gatherer vs rusher vs swarm vs hunter vs guardian vs siege
Grid: 77x77 (5929 tiles), Cores: 1/player
Winner: Player 0 (gatherer)
Reason: elimination
Turns: 12
Scores: [12 2 2 2 2 2]
Replay: test-replay-comprehensive.json

View file

@ -0,0 +1,16 @@
2026/06/27 12:48:07 Starting match: swarm vs rusher vs gatherer
2026/06/27 12:48:07 Seed: 42, Grid: 54x54, MaxTurns: 100, Cores/player: 1
[acb] 2026/06/27 12:48:07 Turn 1: 3 living bots
[acb] 2026/06/27 12:48:07 Turn 2: 3 living bots
[acb] 2026/06/27 12:48:07 Turn 3: 3 living bots
[acb] 2026/06/27 12:48:07 Turn 4: 3 living bots
[acb] 2026/06/27 12:48:07 Turn 5: 1 living bots
2026/06/27 12:48:07 Replay written to test-replay-extended.json
Match complete!
Players: swarm vs rusher vs gatherer
Grid: 54x54 (2916 tiles), Cores: 1/player
Winner: Player 1 (rusher)
Reason: elimination
Turns: 5
Scores: [2 5 2]
Replay: test-replay-extended.json

View file

@ -0,0 +1,13 @@
2026/06/27 12:48:02 Starting match: swarm vs hunter vs gatherer vs rusher
2026/06/27 12:48:02 Seed: 1782578882395298116, Grid: 63x63, MaxTurns: 200, Cores/player: 2
[acb] 2026/06/27 12:48:02 Turn 1: 4 living bots
[acb] 2026/06/27 12:48:02 Turn 2: 0 living bots
2026/06/27 12:48:02 Replay written to test-replay-long-match.json
Match complete!
Players: swarm vs hunter vs gatherer vs rusher
Grid: 63x63 (3969 tiles), Cores: 2/player
Result: Draw
Reason: draw
Turns: 2
Scores: [4 4 4 4]
Replay: test-replay-long-match.json

View file

@ -0,0 +1,151 @@
# Local Match Analysis - Verbose Logging and Replay Capture
## Task Completion Summary
This document summarizes the results of running local AI_CODE_BATTLE matches with verbose logging enabled to capture replay data and analyze combat events.
## Matches Executed
### Match 1: Comprehensive 6-Player Match
- **Configuration**: 6 bots (gatherer, rusher, swarm, hunter, guardian, siege), 1 core each
- **Grid**: 77x77, Max Turns: 616
- **Seed**: 1782578826231854728
- **Duration**: 12 turns
- **Winner**: Player 0 (gatherer) by elimination
- **Final Scores**: [12, 2, 2, 2, 2, 2]
### Match 2: 4-Player Extended Match
- **Configuration**: 4 bots (swarm, hunter, gatherer, rusher), 2 cores each
- **Grid**: 63x63, Max Turns: 200
- **Duration**: 2 turns (mutual elimination)
- **Result**: Draw
- **Final Scores**: [4, 4, 4, 4]
### Match 3: 3-Player Standard Match
- **Configuration**: 3 bots (swarm, rusher, gatherer), 1 core each
- **Grid**: 54x54, Max Turns: 100
- **Seed**: 42
- **Duration**: 5 turns
- **Winner**: Player 1 (rusher) by elimination
- **Final Scores**: [2, 5, 2]
## Combat Events Analysis
### Match 1 Detailed Breakdown
**Total Event Counts:**
- `bot_spawned`: 7 events
- `combat_death`: 6 events
- `energy_collected`: 4 events
**Combat Death Events by Turn:**
- **Turn 1**: 2 combat deaths (mutual kill between bot_id 1 and bot_id 2)
- **Turn 5**: 2 combat deaths (mutual kill between bot_id 3 and bot_id 4)
- **Turn 12**: 2 combat deaths (mutual kill between bot_id 5 and bot_id 6)
**Combat Event Structure:**
Each `combat_death` event contains:
- `bot_id`: ID of the bot that died
- `killers`: Array of killer bots (typically single bot in mutual exchanges)
- `owner`: Player ID who owned the bot
- `position`: Grid coordinates where death occurred
**Focus-Fire Analysis:**
- **No multi-killer combat events found** - all combat deaths involved single attackers
- **No focus-fire log entries detected** in verbose output
- Combat events were all 1v1 mutual exchanges
## Log Analysis
### Verbose Output Patterns
The verbose logging provided:
1. Per-turn living bot counts
2. Zone activation notifications
3. Match completion statistics
4. Replay file location
### Sample Log Output
```
[acb] 2026/06/27 12:47:06 Turn 1: 4 living bots
[acb] 2026/06/27 12:47:06 Turn 2: 4 living bots
[acb] 2026/06/27 12:47:06 Activating zone at turn 9 (next turn will be 10)
```
## Replay JSON Structure
### Format Version
- `format_version`: "1.0"
- `match_id`: Generated unique identifier
- Complete match configuration and state
### Event Types Captured
1. **bot_spawned**: Initial bot placement
2. **combat_death**: Bot destruction with killer details
3. **energy_collected**: Resource gathering events
### Combat Death Event Example
```json
{
"type": "combat_death",
"turn": 1,
"details": {
"bot_id": 1,
"killers": [
{
"bot_id": 2,
"owner": 2,
"position": {"row": 37, "col": 42}
}
],
"owner": 1,
"position": {"row": 39, "col": 42}
}
}
```
## Files Generated
1. **test-replay-comprehensive.json** - 6-player match replay (12 turns)
2. **test-replay-long-match.json** - 4-player match replay (2 turns)
3. **test-replay-extended.json** - 3-player match replay (5 turns)
4. **match-comprehensive-run.log** - Verbose log from match 1
5. **match-long-comprehensive.log** - Verbose log from match 2
6. **match-extended-comprehensive.log** - Verbose log from match 3
## Key Findings
### Combat System Observations
1. **Mutual Destruction**: Most combat resulted in mutual kills where both bots destroy each other
2. **No Focus-Fire Detected**: No instances of multiple bots coordinating to attack a single target
3. **Quick Resolution**: Matches ended quickly due to aggressive bot strategies
### Replay System Validation
- ✅ Replay JSON captures complete match state
- ✅ Event timestamps and turn structure accurate
- ✅ Combat death details include killer identification
- ✅ Bot positions and ownership tracked correctly
- ✅ Zone activation events logged
### Focus-Fire Investigation
**Result**: No focus-fire behavior detected in test matches
- No log entries mentioning "focus", "coordinate", or "target"
- No combat events with multiple killers (focus-fire indicator)
- Combat system appears to handle 1v1 exchanges primarily
## Recommendations
1. **Longer Matches**: Consider running matches with higher spawn costs or defensive bots to extend match duration
2. **Focus-Fire Testing**: Test with bot strategies specifically designed to coordinate attacks
3. **Enhanced Logging**: Consider adding more granular combat phase logging to debug focus-fire behavior
4. **Larger Maps**: Use larger grid sizes to reduce early collision frequency
## Conclusion
All acceptance criteria met:
- ✅ Matches ran to completion without errors
- ✅ Replay JSON files captured and saved successfully
- ✅ Verbose logging provided detailed turn information
- ✅ Combat events counted and analyzed (6 combat deaths in primary match)
- ✅ Summary document created with comprehensive findings
The replay system is functioning correctly and capturing detailed combat events. Focus-fire behavior was not observed in the tested match configurations, suggesting it may require specific bot strategies or game conditions to manifest.

File diff suppressed because it is too large Load diff

1452
test-replay-extended.json Normal file

File diff suppressed because it is too large Load diff

1852
test-replay-long-match.json Normal file

File diff suppressed because it is too large Load diff