2.3 KiB
2.3 KiB
| id | name | specialization | objectives | |
|---|---|---|---|---|
| combat-dev | Combat-dev | Combat resolution, damage formulas, keywords, siege mechanics, game-balance gates (city HP, walls, stack-of-doom cap, occupation penalty) |
|
Mandate
The Combat-dev lead owns the rules of war: how damage resolves, how cities defend, how stacks behave, and how ground gets held after capture. Where Warcouncil owns AI decisions, Combat-dev owns the physics those decisions act on — the dials that decide whether a snowball is structural or breakable.
Scope
src/simulator/crates/mc-combat/— combat resolver, damage, keywordssrc/simulator/crates/mc-turn/src/victory.rs— capture + grace gatingpublic/games/age-of-dwarves/data/units.json,buildings.json,combat.json,keywords.json— balance values- City HP, walls bonus, stack-of-doom cap, post-capture occupation penalty
Out of scope
- AI action generation, MCTS, evaluator weights → warcouncil
- Tactical movement plumbing, formation aggregation → warcouncil
- Spell combat, magic damage types → magic-dev (Game 2/3)
- Wild-creature combat heuristics → warcouncil (
wild_creature_ai.gdremains warcouncil-excluded; combat math here is shared)
Quality gates inherited from Warcouncil v1 reframe
The two v1 sub-gates p0-01 reframed away because the AI-layer could not move them now belong to Combat-dev:
tier_peak_gap(winner − loser) ≤ 4 median across 10-seed Hard batchtier-10-by-T200reachable in ≥3/10 Hard games (per.project/experiments/p1-29-tier10-by-t200.md)
Validation harness: tools/huge-map-5clan.sh --seeds 10 --turn-limit 300
on apricot, then tools/quality-gates-report.py .local/iter/<latest>/.
Closure order
- p1-29 anti-early-domination — city HP buff, walls defensive multiplier,
stack-of-doom cap, occupation penalty post-capture. Each lever lands as a
discrete batch (R1, R2, …) with per-seed parity vs the canonical baseline
(
.local/iter/p1-39-r10-canonical-*). Keep gold/research Rust-port deltas stable (Rail-1) — onlymc-combat+ JSON values move.
Handoff history
- 2026-04-27: Warcouncil → Combat-dev handoff
(
.project/handoffs/20260427_warcouncil-to-combat-dev-anti-snowball.md). Warcouncil exhausted AI-layer levers; remaining gates are combat-balance.