# Saumwacht · Balance-Bericht **Stand:** 12. September 2026 · Godot 4.7.2, Linux, headless · Diagnose des aktuellen Phase-2-Stands ## Methode `tools/balance_sim.gd` spielt zwei KI-Duelle mit `SimpleAI`, `EconomyManager` und `BattleController`. Die Simulation verwendet feste Startzustände und Schritte von 1/60 s. Beide Seiten erhalten die zuletzt abgeschlossene gegnerische Formation; ihre aktuellen Aufträge bleiben verborgen. Der Lauf dauerte 11,5 s. Der Diagnoseablauf folgt den hier relevanten Regeln von `WaveManager`: `natural_count` zählt ausschließlich natürliche Angreifer. Sobald ein Kern zerstört ist, endet das Match vor einer weiteren Abrechnung. Auch wenn im selben Schritt der letzte Angreifer verschwindet, hat das Matchende Vorrang. Aus dem Projektverzeichnis: ```bash XDG_DATA_HOME=/tmp/saumwacht-data XDG_CONFIG_HOME=/tmp/saumwacht-config XDG_CACHE_HOME=/tmp/saumwacht-cache godot --headless --path . res://tools/balance_sim.tscn ``` Die Tabellen zeigen Lecks einschließlich Söldnern. „Abschussprämien“ sind die im Kampf erfassten Prämien; sie werden nur bei **Abgerechnet = Ja** ausgezahlt. „Goldbestand“ ist der tatsächliche Vorrat am Ende der jeweiligen Tabellenzeile. Kernschaden summiert die ausgelösten Schadensereignisse und kann beim letzten Treffer über die verbleibenden Kern-HP hinausgehen; Kern-HP werden bei 0 begrenzt. ## Standard gegen Standard | Welle | Dauer s | Lecks 0/1 | Kernschaden 0/1 | Abschussprämien 0/1 | Goldbestand 0/1 | Wächter 0/1 | Abgerechnet | | ---: | ---: | ---: | ---: | ---: | ---: | ---: | :---: | | 1 | 13,3 | 0/0 | 0/0 | 24/24 | 139/139 | 3/3 | Ja | | 2 | 14,3 | 0/0 | 0/0 | 30/30 | 112/112 | 4/4 | Ja | | 3 | 27,3 | 0/0 | 0/0 | 48/48 | 157/157 | 4/4 | Ja | | 4 | 32,7 | 0/0 | 0/0 | 47/47 | 142/142 | 5/5 | Ja | | 5 | 20,2 | 0/0 | 0/0 | 55/55 | 156/156 | 5/5 | Ja | | 6 | 28,1 | 0/0 | 0/0 | 66/66 | 190/190 | 5/5 | Ja | | 7 | 49,6 | 1/1 | 11/11 | 60/60 | 189/189 | 6/6 | Ja | | 8 | 29,3 | 12/12 | 569/569 | 30/30 | 187/187 | 8/8 | Ja | | 9 | 36,5 | 14/14 | 1098/1098 | 20/20 | 189/189 | 8/8 | Ja | | 10 | 33,5 | 15/15 | 993/993 | 0/0 | 180/180 | 8/8 | Ja | | 11 | 33,1 | 8/8 | 369/369 | 52/52 | 40/40 | 8/8 | Nein | **Ergebnis:** Unentschieden in Welle 11, beide Kerne bei 0 HP. Insgesamt 50 Lecks je Front; mittlere Kampfdauer 28,9 s bis zum jeweiligen Wellen- oder Matchende. In diesem Lauf hielten beide Seiten Wellen 1–6 vollständig. In Welle 7 entstand der erste Kernschaden; diese Welle dauerte mit 49,6 s am längsten. Ab Welle 8 nahmen Lecks und Kernschaden deutlich zu. Diese Beobachtungen markieren Situationen für spätere Formationstests und Balanceversuche. Der Lauf isoliert weder den Einfluss der Wirtschaft noch den von Aufwertungen, Zielwahl oder Sends. Die tabellierten Werte beider Fronten stimmen in dieser Spiegelpartie überein. Dies ist ein Befund für diese Ausführung und die aktuellen Eingaben, keine plattformübergreifende Zusicherung bitidentischer Ergebnisse. ## Lernmodus gegen Standard | Welle | Dauer s | Lecks 0/1 | Kernschaden 0/1 | Abschussprämien 0/1 | Goldbestand 0/1 | Wächter 0/1 | Abgerechnet | | ---: | ---: | ---: | ---: | ---: | ---: | ---: | :---: | | 1 | 13,3 | 0/0 | 0/0 | 24/24 | 139/139 | 3/3 | Ja | | 2 | 23,3 | 0/0 | 0/0 | 30/30 | 177/112 | 3/4 | Ja | | 3 | 29,5 | 7/0 | 314/0 | 12/48 | 185/156 | 3/4 | Ja | | 4 | 21,8 | 11/0 | 360/0 | 6/44 | 170/137 | 3/5 | Ja | | 5 | 35,5 | 2/0 | 314/0 | 18/61 | 193/166 | 4/7 | Ja | | 6 | 31,8 | 10/0 | 472/0 | 17/60 | 158/192 | 6/7 | Ja | | 7 | 41,7 | 7/5 | 298/217 | 24/44 | 148/173 | 6/8 | Ja | | 8 | 31,5 | 14/11 | 757/507 | 17/27 | 144/170 | 6/8 | Ja | | 9 | 29,7 | 7/0 | 498/0 | 0/13 | 9/10 | 7/9 | Nein | **Ergebnis:** Standard gewinnt in Welle 9 mit 2.276 Kern-HP. Der Lernmodus endet bei 0 HP. Insgesamt 58/16 Lecks; mittlere Kampfdauer 28,7 s. Der Lernmodus erlitt in dieser Partie ab Welle 3 Lecks, Standard erstmals in Welle 7. Die letzte Tabellenzeile zeigt den Moment des Matchendes; die andere Front muss dann nicht vollständig geklärt sein. Insbesondere bedeutet die 0 bei Standard-Lecks in Welle 9 nicht, dass diese Front die ganze Welle gehalten hätte. Aus diesem einzelnen Duell lässt sich weder eine Erfolgsquote der KI-Stufen noch eine passende Schwierigkeit für menschliche Spieler ableiten. ## Geprüfter Umfang und Grenzen Der Lauf endete mit Exit-Code 0 und meldete keine Verletzung der überprüften Invarianten: Gold/Funken nicht negativ, Funkenobergrenze 400, maximal 8 Arbeiter einschließlich Bestellungen, gültige eindeutige Zellbelegung im 6 × 8 Baufeld, maximal 8 Sends und Einhaltung von Sendbudget und vorhandenen Funken. Beide Partien erreichten ein Matchende innerhalb von 20 Wellen; kein beobachteter Kampf überschritt 90 s. Diese Prüfungen decken die während der zwei Partien besuchten Zustände ab. Sie ersetzen keine gezielten Tests für Undo, Schadensmatrix, Fähigkeiten, Timeout oder alle Siegpfade. Wellen nach dem jeweiligen Matchende wurden nicht gespielt. Die Mechanik wird hier diagnostiziert; es wurden keine Balancewerte verändert. Für die Balancearbeit in Phase 5 werden mehrere Formationen, andere Kauf- und Sendpläne sowie menschliche Spieltests benötigt. Vor allem Ausgaben, Armeewert, Arbeiterinvestitionen und kumuliertes Einkommen müssten zusätzlich erfasst werden, um wirtschaftliches Schneeballen zu beurteilen. Der verbleibende Goldvorrat allein beantwortet diese Frage nicht.