From 20c1194d7a445fb8a0c8fa566476f11f9e0ab5f8 Mon Sep 17 00:00:00 2001 From: Claude Code Date: Thu, 9 Apr 2026 00:25:43 -0700 Subject: [PATCH] =?UTF-8?q?docs(simulation-report):=20=F0=9F=93=9D=20Refin?= =?UTF-8?q?e=20simulation=20mechanics=20documentation=20with=20updated=20d?= =?UTF-8?q?etails=20for=20clarity=20and=20completeness?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Lilith Autocommit --- .project/simulation-report/mechanics.md | 27 ++++++++++++------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/.project/simulation-report/mechanics.md b/.project/simulation-report/mechanics.md index cdfb4cbf..54a372dc 100644 --- a/.project/simulation-report/mechanics.md +++ b/.project/simulation-report/mechanics.md @@ -1,6 +1,6 @@ # Simulation Mechanics — What's Real, What's Designed -*A reference guide to what the scenario sweep actually simulates* +*A reference guide to what the scenario sweep actually simulates -- updated post-iter-7o sweep (2026-04-09)* --- @@ -12,7 +12,7 @@ - Site quality score (lair distance, terrain quality) - Strategic axis weight (`expansion` parameter per profile) -Expansionist (expansion=5) founds cities aggressively and reliably reaches 28 cities by T500. Militarist (expansion=2) and Merchant (expansion=2) reliably reach 17. The Scientist (expansion=3) reaches 21. These counts are consistent across map sizes, confirming the city count is expansion-rate-capped, not territory-capped. +Expansionist (expansion=5) founds cities aggressively and reliably reaches 26 cities by T500. Militarist (expansion=2) and Merchant (expansion=2) reliably reach 17. The Scientist (expansion=3) reaches 20. These counts are consistent across map sizes, confirming the city count is expansion-rate-capped, not territory-capped. **What doesn't happen:** Cities do not acquire tiles. There is no "worked tile" radius. No citizen is assigned to any hex. The city has no territory boundary — "city territory" in the encounter system refers to proximity to the city center coordinate, not an explicit tile ownership set. @@ -24,10 +24,10 @@ The gold values in the scenario reports are fully deterministic by profile: | Profile | T500 Gold | |---------|-----------| -| Militarist | 25,142 | -| Expansionist | 43,166 | -| Merchant | 25,592 | -| Scientist | 36,728 | +| Militarist | 27,244 | +| Expansionist | 45,560 | +| Merchant | 68,020 | +| Scientist | 33,700 | These values are **identical across 2AI, 3AI, and 4AI scenarios** regardless of map size, other players, or ecological conditions. This is because gold is computed as: @@ -86,7 +86,7 @@ defense: 1 No unit tier field exists. Units don't advance or differentiate. A "unit" at turn 500 is mechanically identical to the starting units at turn 1. -**What this means for kill rate data:** The T7-T10 kill rate (73-81%) reflects a T7-T10 apex predator fighting a fixed-stat dwarf warrior. The T4-T6 kill rate (11-17%) reflects the same warrior against a mid-tier lair species. The kill rate data is valid for *this unit configuration* but would change substantially once unit tiers are implemented — a T6 veteran unit should survive T4-T6 encounters much more reliably. +**What this means for kill rate data:** The T7-T10 kill rate (60-63%) reflects a T7-T10 apex predator fighting a fixed-stat dwarf warrior. The T4-T6 kill rate (20-27%) reflects the same warrior against a mid-tier lair species. The kill rate data is valid for *this unit configuration* but would change substantially once unit tiers are implemented -- a T6 veteran unit should survive T4-T6 encounters much more reliably. **Fauna tier vs player unit tier:** Fauna are tiered T1-T10. Player units have no tier equivalent, but their stats (`atk: 12, hp: 60`) place them roughly at the low end of T4 in the encounter formula. This is intentional for the baseline — the bench is testing raw ecological pressure against a standard unit, not a tiered army. @@ -143,11 +143,10 @@ Given all of the above, here is what the scenario sweep's numbers actually repre ## What's Next -The scenario sweep established that the ecology is balanced at the 64×64 / 2-player scale. The systems still needing implementation to move toward a complete simulation are: +The scenario sweep established that the ecology is balanced across all map sizes (48x48 through 96x96) and all player counts (1-4). The systems still needing implementation to move toward a complete simulation are: -1. **Tile yield calculation** — read terrain JSON, sum worked-tile yields per city; rewire gold/prod/food to come from tiles -2. **City territory / worked-tile system** — city radius, citizen assignment, tile ownership -3. **Building construction** — wire `score_building()` evaluator to actually queue and build buildings; wipe hardcoded `food_yield: 4, prod_yield: 4` -4. **Research progression** — accumulate science from cities, call `pick_tech()` when threshold crossed, unlock buildings/units -5. **Unit tier differentiation** — multiple unit types with tier values; higher-tier units survive mid-tier encounters reliably -6. **Map-size production scaling** — starting production yield should scale with map area to keep armies viable on 80×80+ +1. **Tile yield calculation** -- read terrain JSON, sum worked-tile yields per city; rewire gold/prod/food to come from tiles +2. **City territory / worked-tile system** -- city radius, citizen assignment, tile ownership +3. **Building construction** -- wire `score_building()` evaluator to actually queue and build buildings; wipe hardcoded `food_yield: 4, prod_yield: 4` +4. **Research progression** -- accumulate science from cities, call `pick_tech()` when threshold crossed, unlock buildings/units +5. **Unit tier differentiation** -- multiple unit types with tier values; higher-tier units survive mid-tier encounters reliably