Verified all 5 backlog items: - Combat kill scoring (engine/turn.go:272-275) - Fitness formula blending win rate + kill rate (run.go:608) - CombatDeaths tracking through arena (arena.go:204-221) - Behavior vector derived from actual kill rate (run.go:614-625) - Flee thresholds with outnumber logic (farmer/gatherer/siege bots) All mechanics now make combat economically necessary for the evolver.
46 lines
1.3 KiB
Markdown
46 lines
1.3 KiB
Markdown
# Bead bf-413 Verification
|
|
|
|
## Date: 2025-06-17
|
|
|
|
Verified that all backlog items from the Genesis AI Code Battle Mechanics Iteration bead are complete:
|
|
|
|
### Code Verification Results
|
|
|
|
✅ **Combat Kill Scoring** (engine/turn.go:272-275)
|
|
```go
|
|
if e.Owner < len(gs.Players) {
|
|
gs.Players[e.Owner].Score += gs.Config.KillScore
|
|
}
|
|
```
|
|
|
|
✅ **Fitness Formula** (cmd/acb-evolver/run.go:608)
|
|
```go
|
|
fitness := 0.7*winRate + 0.3*killRate
|
|
```
|
|
|
|
✅ **CombatDeaths Tracking** (cmd/acb-evolver/internal/arena/arena.go:204-221)
|
|
- TotalKills and KillRate computed from arena outcomes
|
|
- CombatDeaths array tracks kills per player
|
|
|
|
✅ **Behavior Vector from Kill Rate** (cmd/acb-evolver/run.go:614-625)
|
|
```go
|
|
aggression := killRate
|
|
if aggression > 1.0 {
|
|
aggression = 1.0
|
|
}
|
|
behaviorVec = []float64{aggression, program.BehaviorVector[1]}
|
|
```
|
|
|
|
✅ **Flee Thresholds with Outnumber Logic**
|
|
- bots/farmer/strategy.go:262-296
|
|
- bots/gatherer/strategy.go:112-142
|
|
- bots/siege/strategy.go:282-312
|
|
|
|
All mechanics now make combat economically necessary:
|
|
- Bots only flee when locally outnumbered AND enemies are in attack range
|
|
- Kill rate contributes 30% to evolver fitness
|
|
- Aggression is derived from actual combat performance, not LLM self-report
|
|
|
|
## Status
|
|
|
|
All 5 backlog items completed and verified. The evolutionary loop now has proper incentives for combat aggression.
|