Skip to content

feat(economy): add five finite Aetherium fields - #80

Merged
cubetribe merged 2 commits into
mainfrom
codex/feat/16-7-scarcity
Aug 10, 2026
Merged

feat(economy): add five finite Aetherium fields#80
cubetribe merged 2 commits into
mainfrom
codex/feat/16-7-scarcity

Conversation

@cubetribe

@cubetribe cubetribe commented Aug 9, 2026

Copy link
Copy Markdown
Collaborator

Was

Sprint 16.7 / C1 ersetzt die zwei praktisch endlosen Startfelder durch fünf endliche, symmetrische Aetheriumfelder:

ID Rolle Zelle Reserve
1 Start Slot 0 (7,7) 9.000 AE
2 Start Slot 1 (117,117) 9.000 AE
3 Expansion Slot 0 (24,40) 9.000 AE
4 Expansion Slot 1 (100,84) 9.000 AE
5 Zentrum (62,62) 15.000 AE

Die Paarpositionen folgen verbindlich (x,y) → (124-x,124-y). Feld 2, gegnerischer Builder und Opening-Geometrie sind entsprechend auf (117,117) beziehungsweise (111,117) korrigiert.

Synchronisierte Quellen

  • MatchBootstrap: globale Feldregistrierung vor den Slot-Entitäten; öffentliches AllFieldCells in kanonischer Reihenfolge.
  • Determinism10000Scenario: identische Tabelle/Reihenfolge und gespiegelte Opening-Geometrie.
  • .NET- und Unity-CanonicalMatchSetupTests: identische Referenztabelle; Anzahl, Position und Reserve aller fünf Felder gepinnt.
  • GlutrinneBlockoutView: fünf Marker und fünf Scatter-Ausschlusszonen aus demselben einmal gelesenen Array.
  • BootstrapSceneGenerator und MAP_Glutrinne.asset: dieselben fünf Resource-Nodes statt der veralteten Zwei-Feld-Quelle.
  • DemoRunbook, ScopeLedger, Wiki-Index und README: aktueller D-102-Stand ohne behauptete Spiel-/Gate-Abnahme.

D-102 / Kompatibilität

HarvestRateAE bleibt bewusst unverändert bei 2 AE/Tick. Für einen anderen Wert fehlt eine belastbare gespielte Zielkurve; D-102 trennt deshalb die belegte Knappheitskorrektur von der späteren Balance-Kalibrierung.

Kein State-, Snapshot-, Replay-, Wire- oder Definitionsschema ändert sich. Ein eigener RulesHash-Bump ist nicht nötig: Position, Reserve und Reihenfolge liegen im gehashten Economy-Initialzustand. Alte Zwei-Feld-Replays beziehungsweise -Peers erhalten gegenüber diesem Setup einen InitialStateHash-Mismatch vor Tick 1.

Basis und Scope

Nachweis

  • ./.dotnet/dotnet test tools/Nova.SimRunner.Tests/Nova.SimRunner.Tests.csproj -c Release --no-restore: 684/684 grün auf dem vollständigen Mergebaum.
  • Build darin: 0 Fehler, 0 Warnungen.
  • python3 .github/scripts/check_docs.py: grün (179 Markdown-Dateien, 5 Quality-JSONs).
  • git diff --check, Konfliktmarker- und Altstand-Suche: grün.
  • Zwei unabhängige read-only Reviews: Determinismus-/Fingerprint-Vertrag, Konstruktorintegration, Spiegelparität, Generator/Asset und aktuelle Doku ohne verbleibenden P1–P3-Befund.
  • Frische GitHub-Checks für bf2b519: vollständig grün (Baseline Guard, Doku, Contributor Gate, Integrität, Relay-Smoke und Tests).

Menschliche/Unity-Sicht

Nicht gespielt. Grund: In derselben Integrationssitzung kam Unity 6000.5.4f1 wegen eines wiederholten lokalen Licensing-Handshakes (Unsupported protocol version 1.18.1) nicht bis zur Testausführung; auf diesem Head entstand deshalb weder ein aktuelles EditMode-Ergebnis-XML noch eine belastbare manuelle Spielrunde.

Ersatznachweise: vollständige 684er-SimRunner-Suite, gespiegelte kanonische Setup-Tests, gehashte Initialzustandsparität, sauberer Build, Dokuprüfung, statischer Abgleich aller sechs Laufzeit-/Datenquellen, unabhängige Reviews und frische GitHub-CI.

Restrisiko: Die fünf Kristallmarker, Scatter-Ausschlusszonen und das regenerierte MAP_Glutrinne-Asset wurden auf diesem Head nicht im laufenden Unity-Spiel visuell beobachtet. Die Ernteraten-Kalibrierung ist ausdrücklich weiterhin offen; 2 AE/Tick ist keine gespielte Balancefreigabe.

Changelog und Release-Impact

Ein Eintrag unter [Unreleased]: 16.7/C1: Fünf endliche Aetheriumfelder schaffen Knappheit (D-102).

Release-Impact: minor.

Governance

Owner-PR nach D-105: Selbstmerge erst nach strikt grüner CI und unabhängiger read-only Prüfung des aktuellen Heads.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant