feat(@projects): implement per-yield scaling and symmetric difficulty system

Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
This commit is contained in:
Natalie 2026-04-27 01:46:36 -07:00
parent b1febc5884
commit d6f041c171
2 changed files with 32 additions and 2 deletions

View file

@ -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

View file

@ -1,5 +1,5 @@
{
"generated_at": "2026-04-27T08:35:27Z",
"generated_at": "2026-04-27T08:42:27Z",
"totals": {
"done": 103,
"in_progress": 1,