diff --git a/.project/experiments/p1-29-tier10-by-t200.md b/.project/experiments/p1-29-tier10-by-t200.md index f8602079..5e8ccedb 100644 --- a/.project/experiments/p1-29-tier10-by-t200.md +++ b/.project/experiments/p1-29-tier10-by-t200.md @@ -80,7 +80,37 @@ Evidence: H3 (tech-tree shortening) was the originally-planned next step but is now rejected: a SHORTER tree would let the snowballer reach tier-10 even faster, while losers would still be rolled before research mattered. Reduces tier_peak gap if anything. -## Round 4 — H4 combat rebalance (NEXT) +## Round 3 — full per-yield mults + linear-growth scaling (TRIED, BACKFIRED) + +Per user direction (2026-04-27): "give AI a multiplier of each producible game unit (gold, science, culture, luxuries) and then make it a multiplier for each so that they still need to acquire resources but they get more for the effort" + linear turn-scaling ("by turn 138 a hard AI is getting 138% their base gold") + symmetric player handicap (Easy = player gets Hard-AI bonuses). + +**Implementation:** +- `difficulty.json`: added `gold_mult`, `culture_mult`, `luxury_mult`, `yield_per_turn_growth` to ai+player blocks for all 4 tiers. Easy player_modifiers mirror Hard ai_modifiers (symmetric inverse). +- `game_state.gd`: 5 ai_X_modifier + 5 player_X_modifier + 2 yield_per_turn_growth fields, plus `get_effective_yield_mult(player, yield_type)` helper composing static mult + linear-per-turn growth. +- `turn_processor.gd`: production + research call sites converted to use the helper. + +**Validation batches:** +- `.local/iter/p1-29-r3-hard-20260427_011017/` (10 seeds, T500, AI_DIFFICULTY=hard) +- `.local/iter/p1-29-r3-insane-20260427_011019/` (10 seeds, T500, AI_DIFFICULTY=insane) + +**Results — REGRESSION on Insane:** + +| | R1 | R2v2 | R3 | +|---|---:|---:|---:| +| Hard median tier_peak | 5 | 5 | 4.5 | +| Insane median tier_peak | 4.5 | 4.5 | **2.5** | +| Insane seed 1 | T485/tier=7 | T485/tier=7 | **T100/tier=2** | +| Tier-10 reached | 0/10 | 0/10 | 0/10 | + +**Diagnosis:** Insane's gold_mult 1.0→1.5 + culture_mult 1.0→1.5 gave AI MORE early-game resources → MORE rush-buying units → FASTER snowball → earlier T100 domination wins → LESS time for tier progression. The yield-mult bumps accelerate the snowball mechanism rather than allowing late-game development. + +**Confirms hypothesis from Round 2 conclusion**: every direct AI yield buff (research, gold, production, culture) just makes the AI rush harder. The bottleneck is COMBAT BALANCE, not yield rates. Without slowing capture mechanics, more resources = faster capture = shorter games = lower tier_peak. + +**Decision:** keep the framework (per-yield mults + linear growth + symmetric handicap is a valuable infrastructure piece), but acknowledge it doesn't move the tier-10-by-T200 target. The values may need to be tuned DOWN (Insane gold_mult back to 1.2 or 1.0) once combat-dev's anti-snowball changes land — at that point, more resources WOULD compose constructively because the game would last long enough. + +Status: framework wired, tunings TBD, gate still blocked on combat-dev. + +## Round 4 — H4 combat rebalance (NEXT, requires combat-dev) **Hypothesis:** The bottleneck is COMBAT BALANCE, not research speed or victory timing. AI snowballs from T40-T80 because: - Tier-1 warriors spawn cheap and en masse diff --git a/.project/objectives/objectives.json b/.project/objectives/objectives.json index 4423e9a1..81e9d5ca 100644 --- a/.project/objectives/objectives.json +++ b/.project/objectives/objectives.json @@ -1,5 +1,5 @@ { - "generated_at": "2026-04-27T08:35:27Z", + "generated_at": "2026-04-27T08:42:27Z", "totals": { "done": 103, "in_progress": 1,