From 80c8504f7ef31aa895a68dec0aa0d92712aeb56f Mon Sep 17 00:00:00 2001 From: Natalie Date: Sun, 26 Apr 2026 20:23:07 -0700 Subject: [PATCH] =?UTF-8?q?feat(@projects/@magic-civilization):=20?= =?UTF-8?q?=E2=9C=A8=20update=20tier-10=20research=20findings=20and=20roun?= =?UTF-8?q?d-2=20plan?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Lilith Autocommit --- .project/experiments/p1-29-tier10-by-t200.md | 39 +++++++++++++++++--- 1 file changed, 33 insertions(+), 6 deletions(-) diff --git a/.project/experiments/p1-29-tier10-by-t200.md b/.project/experiments/p1-29-tier10-by-t200.md index c2f633ce..a156f8f5 100644 --- a/.project/experiments/p1-29-tier10-by-t200.md +++ b/.project/experiments/p1-29-tier10-by-t200.md @@ -40,14 +40,41 @@ H1 + H2 compose: faster research helps only if games last long enough. H3 is an **Failure mode:** Games still end at T48-T200 via early domination. In that case, even infinite research speed wouldn't help — H2 (capture math) is the binding constraint. Move to Round 2. -**Status:** PENDING — code change drafted (see plan below); batch awaiting dispatch. +**Status:** **DONE 2026-04-26 — H1 PARTIALLY CONFIRMED, INSUFFICIENT ALONE.** -## Round 2 (planned) — H1 + H2 compose +Edit landed: `difficulty.json::hard.research_mult` 1.20 → 2.00, `insane.research_mult` 1.40 → 3.00. Validated via two parallel apricot batches (10 seeds × T500 cap each). -If Round 1 shows research speed alone is insufficient AND games end too early: -- Add turn-floor in mc-turn `victory.rs::check_domination`: skip domination check before T100. -- Re-run Insane T500 batch. -- Success: median game-end shifts toward T200-T300, AND `tier_peak ≥ 10` reached. +| Difficulty | Median `tier_peak` | Highest reached | Median game-end | T500 games | Tier-10 hit | +|---|---:|---:|---:|---:|---:| +| Hard (research=2.0) | 5 | **tier 9** (seed 6, T500) | ~T210 | 3/10 | **0/10** | +| Insane (research=3.0) | 4.5 | tier 7 (multiple seeds) | ~T205 | 2/10 | **0/10** | + +**Findings:** +1. Research speed bump DOES help tier_peak — Hard median climbed from baseline ~4 to 5, peak ceiling pushed from ~6 to 9. +2. **Tier 10 still unreachable.** Even 3× research speed + T500 cap doesn't get there in any seed. +3. **Counter-intuitive: Hard out-tiers Insane.** Insane's `extra_starting_units=1 + starting_gold_bonus=150` makes AI MORE aggressive → games end faster (4/10 at T40-T126) → less time for late-game tier development. The handicaps actively HURT tier progression by accelerating rush-domination. +4. **Game-length is the binding constraint.** With 7/10 Hard and 8/10 Insane games ending before T200, no amount of research_mult will hit tier-10-by-T200. + +**Decision:** H1 alone is insufficient. The 1.2/1.4 → 2.0/3.0 bumps are kept (they help on the games that DO reach T500), but H2 must compose. Move to Round 2. + +Evidence: +- `.local/iter/p1-29-hard-20260426_194937/` (10 seeds, T500 cap, AI_DIFFICULTY=hard) +- `.local/iter/p1-29-insane-20260426_194939/` (10 seeds, T500 cap, AI_DIFFICULTY=insane) +- Analysis tool: `tools/time-to-tier-peak.py` (shows reached_t10=0/10 on both batches, fail vs T200 target) + +## Round 2 — H2 turn-floor for domination check (NEXT — Round 1 insufficient) + +H1 bumps kept (they help when games go long); H2 layers a hard floor: domination victory cannot fire before T100. + +**Rationale:** 7/10 Hard and 8/10 Insane games end before T200. Even tier-9 reach (Hard seed 6) only happens in T500 games. By gating domination behind T100 minimum, every game gets at least 100 turns of mid-game tech development before anyone can win-out via capture. Combined with H1's 2-3× research speed, this should push the floor much higher. + +**Implementation:** `src/simulator/crates/mc-turn/src/victory.rs::check_domination` — add early-return if `state.turn < 100`. ~5 lines. + +**Risk:** May produce more T500 score-victory stalemates if no clan can decisively dominate after the floor lifts. Acceptable because score victory at T500 with tier_peak=9-10 is a HEALTHY game-arc (which is what the user wants). Bimodal failure (T100 instant + T500 stalemate) is the warning sign. + +**Success criterion:** Insane T500 batch shows ≥3/10 games reach `tier_peak ≥ 10`, median game-end ≥T250. + +**Status:** PENDING — Rust change to victory.rs needed, then GDExt rebuild + batch. ## Round 3 (planned) — game-data shortening