saumwacht-godot/docs/luneraria/BALANCE.md
Martin Stickelbroeck faf0fbdef0 M3: Balance, Kartenprops, sieben Volksrepräsentanten und Abnahme
Bots planen Items/Champions vor der Armee und helfen deterministisch,
damit Spiegelmatches fair bleiben. Boss und Profile neu abgestimmt;
Balance-, Stress- und Volks-Werkzeuge sowie Kartenprops ergänzt.
2026-09-28 00:41:05 +02:00

10 KiB
Raw Blame History

Balancekonfiguration und Auswertung

Alle Werte stehen in scripts/luneraria/core/lune_balance.gd. Die aktive Standardinstanz ist data/luneraria/balance_default.tres, die derzeit alle Klassenwerte übernimmt.

Startwerte (M1) und Begründung

Wert Stand Begründung
Startgold 220 Wie im Saumwacht-Einstieg; reicht für die Startaufstellung (180/185) plus Rest.
Grundeinkommen 70 + 4 je Runde, Obergrenze +80 Etwa eine Truppe pro Runde; der Zuwachs hält mit den Wellen mit, ohne endlos zu steigen.
Versorgungsgrenze 12 Truppen je Spieler Begrenzt aktive Einheiten; später investiert man in Aufwertungen statt in Masse.
Verkauf 75 % (in derselben Planung 100 %) Aus Saumwacht übernommen; die Rücknahme im selben Planungsschritt ist ein Bedienkomfort.
Wellen 3 Monster je Lane und Team, +1 alle 3 Runden, max. 7 Pro Runde höchstens 42 Monster auf der Karte.
Wellenstärke HP ×(1 + 0,11·r + 0,0015·r²), Schaden ×(1 + 0,07·r + 0,0015·r²) Stetig und quadratisch leicht zunehmend, ohne Obergrenze; bei r = 10⁶ endlich (Test).
Monsterkopfgeld Katalogwert ×2 ×(1 + 0,04·r) Monster sind die Hauptgoldquelle; wächst langsamer als die Stärke.
Türme außen 6.000 / innen 7.500 / Basis 9.000 HP, 90 / 120 Schaden, Reichweite 8,6 m Eine Welle allein kommt nicht durch. Die Reichweite liegt über der größten Einheitenreichweite (6,5 m + Gebäuderadius), sonst wären Türme ungestraft auszuschießen.
Ancient 12.000 HP Braucht eine voll durchbrochene Basis und mehrere Runden Druck.
Gebäudekopfgeld 150 / 210 / 270 Belohnt Durchbrüche gleichmäßig im Team.
Kampffenster 180 s In 91 Bot-Kampfphasen (8 Seeds) dauerte die längste 130 s, im Mittel 68 s; keine erreichte das Fenster. Es greift nur bei festgefahrenen Kämpfen.
Marschtempo Katalogtempo ×1,6 Eine Lane (~95 m) ist in ~30 s durchquerbar, damit Angriffe die Basis innerhalb eines Kampfes erreichen.

Auswertung M1 (reine Bot-Partien, 1 Mensch = Bot)

sim-8-seeds.json: acht Seeds mit gemischten Bünden und fünf Bot-Profilen (ausgewogen, verteidigung, druck, fernkampf, teamhilfe). Die Ergebnisse stehen in STATUS.md.

  • Alle acht Partien enden regulär durch einen Ancient-Fall, nach 8–15 Wellen (Blau 5, Rot 3). 83 Kampfphasen enden, weil alle beweglichen Einheiten gefallen sind, 8 durch einen Kernfall, keine durch das Zeitfenster.
  • Exakter Spiegel (sechsmal derselbe Bund, dasselbe deterministische Profil): Die Partie bleibt über 60 Runden Bit für Bit symmetrisch. Sie wird aber nicht entschieden, weil sich gleich starke Armeen und Wellen gegenseitig aufheben. Das ist der erwartbare Grenzfall identischen Spiels. Kein Timer oder Gebäudeverfall erzwingt ein Ende. Heldenwachstum, Angriffschampions und Boss (M2) liefern die beabsichtigten Asymmetrien.
  • Kleine Botstichproben belegen keine ausgewogene Spielerfahrung. Die Bünde und Profile sind noch nicht getrennt ausgewertet (M3).

M2 · Helden, Items, Champions, Boss

Werte in scripts/luneraria/core/lune_content.gd, Begründungen im Regelwerk §4.

Wert Stand Begründung
Heldenpreis 260 Mehr als das Startgold: Ein Held kommt frühestens in Runde 2 und ersetzt keine frühe Armee.
Heldenwerte Ringborke 2.200 HP / 34, Quellgeflecht 1.300 / 28, Funkenlanze 950 / 46 Aus den Truppenwerten der Aufwertungsstufe mit etwa 1,4-fachem Leben abgeleitet.
Stufen 10; +9 % Leben, +7 % Schaden je Stufe In 12 Bot-Partien erreichen Helden bis Partieende Stufe 3–6, Talentstufe 2 also erst spät.
Items 180–260 Ein Item kostet etwa eine aufgewertete Truppe.
Champions 150/150/180, Leben ×2,2, Schaden ×1,6 der Söldnerwerte, Kopfgeld 70 + 6·r Einmalige Welle etwa zum Preis von zwei Truppen.
Grottenboss 4.200 HP × Wellenstärke, 55 Schaden Nur mit großer Expedition schaffbar (Szenarien unten).
Entsandter Boss 5.200 HP × Wellenstärke, 70 Schaden, Kopfgeld 520 + 60·r Das Kopfgeld liegt deutlich über einem Turm (150–270) und über einem Monster (~10–30).

Bot-Serie (12 Seeds, sim-12-seeds.json)

  • Alle 12 Partien enden regulär nach 7–10 Wellen (Blau 7, Rot 5), keine Kampfphase im Zeitfenster; die längste dauerte 128 s.
  • Bossversuche: 36 gescheitert, 11 erobert, 7 entsandt (die übrigen Partien endeten vorher).
  • Befund: Der Bossjäger-Bot versucht es in jeder Partie ab Runde 5, scheitert bis Runde 7 und siegt in Runde 8. Das Muster ist zu gleichförmig; der Bot schätzt seine Stärke nicht ein (M3).
  • Siegquote des Teams mit dem jeweiligen Profil: fernkampf 11/12, druck 9/12, teamhilfe 7/12, verteidigung 5/12, bossjagd 3/12, ausgewogen 1/12. Vorsicht: Jede Partie enthält jedes Profil genau einmal, und die Paare fernkampf/ausgewogen, druck/bossjagd und verteidigung/teamhilfe stehen immer in verschiedenen Teams. Die Zahlen sind daher nicht unabhängig; eine saubere Auswertung mit variierter Teamzusammensetzung folgt in M3.

Bossstrategie im direkten Vergleich (boss_scenarios.gd)

Identischer Stand nach Runde 7, danach vier Runden mit gewöhnlichen Bots ohne Bossjagd. Wert = eingesetzter Armeewert (Blau / Rot). ΔHP und ΔGold jeweils Blau / Rot über die vier Runden.

Seed Szenario Wert Grotte Mid-Türme Blau verloren Bossrunde Gebäudeschaden Rot durch Boss Kopfgeld für Rot ΔHP Gebäude ΔGold Sieger
3 kein_versuch 0 none 0 — 0 — -1.436 / -50.521 284 / -235 Blau
3 gescheitert 210 failed 0 — 0 — -1.754 / -50.257 284 / -235 Blau
3 erfolgreich 1000 won 2 9 33.219 1060 -15.023 / -35.384 543 / 794 Blau
3 umkaempft 1000 / 995 failed 0 — 0 — -1.435 / -51.276 494 / -185 Blau
3 ueberinvestition 2495 won 2 9 25.392 1060 -68.295 / -25.392 -250 / 437 Rot
7 kein_versuch 0 none 0 — 0 — -9.222 / -5.573 174 / 139 offen
7 gescheitert 180 failed 0 — 0 — -9.548 / -4.660 174 / 139 offen
7 erfolgreich 930 won 2 9 22.793 1060 -67.737 / -22.793 -302 / 319 Rot
7 umkaempft 930 / 865 failed 0 — 0 — -9.855 / -4.660 174 / 139 offen
7 ueberinvestition 2580 won 2 9 20.685 1060 -67.737 / -20.685 -320 / 277 Rot

Deutung:

  • Eine gescheiterte kleine Expedition kostet wenig.
  • In der umkämpften Grotte reiben sich beide Expeditionen auf; kein Team erhält den Anspruch.
  • Eine erfolgreiche Eroberung zieht die Mid-Lane so weit ab, dass Blau dort beide Türme verliert. Der Boss richtet danach 20.000–33.000 HP Gebäudeschaden an, stirbt und bringt Rot 1.060 Gold.
  • Überinvestition kippt die Partie in beiden Seeds zu Rot, und auch die normale Eroberung verliert bei Seed 7.
  • Die Bossstrategie ist damit riskant und nicht dominant. Nach diesen Stichproben wiegt der Boss die geschwächte Lane eher zu wenig auf: ein Balancepunkt für M3 (z. B. mehr Bosswirkung oder schwächerer Grottenboss). Es gibt weder eine kostenlose Sofortrückkehr noch eine Doppelbelohnung (Tests); das Goldrisiko steht im Kopfgeld offen angekündigt.

M3 · Qualität und Balance

Geänderte Werte und Bot-Regeln

Thema Vorher Nachher Begründung
Keilbrecher Belagerungsfaktor ×2,5 ×1,8 Belagerungs-Champion dominierte Gebäude zu stark.
Grottenboss HP 4.200 3.600 Expeditionen scheiterten zu oft vor Runde 8.
Entsandter Boss 5.200 HP / 70 Schaden 6.800 HP / 88 Schaden Die Belohnung wiegt die geschwächte Lane nun besser auf.
Bot Item-/Championkauf nach der Armee vor der Armee (Reserve 110 bzw. 40 Gold) Die Roster-Schleife verzehrte die gesamte Reserve; Helden blieben ohne Items, Champions wurden nie gebucht (test_lune_m2 bots_m2).
Bot Lane-Hilfe geteilter Zufall (rng) deterministisch (Runde + Laneindex) % Periode Der geteilte Zufall brach die Spiegelsymmetrie (test_lune_core mirror_fairness).
Bossjagd-Schwelle Lanchester 2,0 1,35 (+1,25 je Fehlversuch) Frühere Versuche erst ab Runde 8; Ziel: sinnvolle Risikoabschätzung.
Expeditionstärke 6 Truppen + Held 5 Truppen + Held Weniger Lane-Abzug bei der Jagd.
Ausgewogen-Held ab Runde 3 ab Runde 4 Reines „ausgewogen“ schlug in Spiegel-Duellen alle Spezialprofile.
Verteidigung kein Champion, 40 % Front Champion Schutz, 15 % Lane-Hilfe Reines Verteidigen gewann zu selten (14 %).

Bot-Serie (20 Zusammensetzungen × Seitentausch, balance-step4.json)

  • 40 Partien, alle regulär durch Ancient-Fall nach 9–14 Wellen (Median 11). Kein Testlimit, kein Zeitfenster-Kampf.
  • Seitentausch 20/20: dieselbe Zusammensetzung gewinnt beide Male. Keine Seitenbevorzugung.
  • Profile (Siege/Einsätze): verteidigung 64 %, ausgewogen 58 %, fernkampf 54 %, druck 53 %, teamhilfe 46 %, bossjagd 24 %.
  • Bünde: Glutpakt 55 % / Wurzelbund 45 %.
  • Boss: 20 Erfolge, 8 Entsendungen. Heldenstufe am Ende (Median) 4.

Reine Profil-Duelle (matchups-step4.json)

15 Paare × 2 Seiten = 30 Partien. Seitentausch 15/15 konsistent.

Profil Siege Duellkette
ausgewogen 10/10 schlägt alle Spezialprofile
verteidigung 8/10 verliert nur gegen ausgewogen
teamhilfe 6/10 schlägt druck, fernkampf, bossjagd
fernkampf 4/10 schlägt druck, bossjagd
druck 2/10 schlägt bossjagd
bossjagd 0/10 verliert gegen jedes Spezialprofil

Befund: In reinen 3-gleichen Spiegeln ergibt sich eine lineare Kette, kein Zyklus. In gemischten Sechser-Aufstellungen (die eigentliche Partie) liegen alle Profile im Band 24–64 %. Kleine Botstichproben beweisen keine ausgewogene Spielerfahrung; menschliche Spieltests bleiben offen. Bossjagd ist als reines Teamprofil schwach, in Mischteams aber spielbar (24 %).

Belastungstests (stress.json)

  • 17/17 Prüfungen, keine Fehler.
  • Wellenindizes 10², 10³, 10⁴, 10⁶ enden regulär über Kernfall; Monster-HP endlich (bei 10⁶ ≈ 7,2·10¹¹), kein NaN, kein Arrayfehler, mobile Einheiten gedeckelt (120).
  • Langlauf 200 Runden: „Testlimit erreicht / Partie nicht abgeschlossen“ (korrekt, kein Unentschieden). Objektzahl stabil (1706 → 1853), Speicher 52 → 53 MB. Rundenzeit 1,05 s → 2,01 s (wachsende Wellenmenge, kein Leck).