Unveränderter Ausgangsstand inklusive Masterprompt und Konzeptbildern unter assets/. .godot/ und docs/screenshots/ bleiben laut .gitignore unversioniert; letztere sind unter ../backups gesichert. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
100 lines
5.3 KiB
Markdown
100 lines
5.3 KiB
Markdown
# 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.
|