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:
parent
e82b62d2de
commit
986455b606
8 changed files with 7938 additions and 1 deletions
|
|
@ -1 +1 @@
|
|||
63b6f9916d00440eb061b227eb6b1e0c81929559
|
||||
df02aff045df0a5e300163e08d75d260f03e2837
|
||||
|
|
|
|||
24
match-comprehensive-run.log
Normal file
24
match-comprehensive-run.log
Normal 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
|
||||
16
match-extended-comprehensive.log
Normal file
16
match-extended-comprehensive.log
Normal 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
|
||||
13
match-long-comprehensive.log
Normal file
13
match-long-comprehensive.log
Normal 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
|
||||
151
notes/bf-5jb-match-analysis.md
Normal file
151
notes/bf-5jb-match-analysis.md
Normal 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.
|
||||
4429
test-replay-comprehensive.json
Normal file
4429
test-replay-comprehensive.json
Normal file
File diff suppressed because it is too large
Load diff
1452
test-replay-extended.json
Normal file
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
1852
test-replay-long-match.json
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Add table
Reference in a new issue