saumwacht-godot/docs/luneraria/STATUS.md
Martin Stickelbroeck 1b540f2a55 G3 (Zwischenstand): neues Ingame-HUD; Projekt wechselt nach Unity
Nicht abgenommen: Nach dem ersten Spieltest wurde entschieden, Champions of
Luneraria nach Unity 6 zu portieren. Dieser Stand ist die Referenz für das
HUD im Unity-Projekt (../luneraria-unity).

- HUD neu aus Komponenten mit eigenem Theme, Porträts aus den echten Modellen
  (einmal gerendert, zwischengespeichert), Lane-Übersicht mit deterministischer
  Bedrohung aus öffentlichem Zustand, Bossgrotte, nächste Welle, Ereignisse,
  Minimap mit zusammengefassten Armeen, Held/Items/Talente, Einheitendetails,
  Angriffschampions, Bereit-Sperre, UI-Größe, Team-Formen statt nur Farben
- Privatsphäre über LuneHudModel: fremdes Gold und fremde Entwürfe erscheinen nie
- Keine Regeländerung: Regeln 91/91, M2 73/73, Netz 43/43; verify_g3 715/715;
  verify_m1 38/38 und verify_m2 14/14 mit angepassten UI-Treibern
- Spieltest bis Welle 8 über die echte Oberfläche, Befunde in G3-HUD.md
- HELDEN-KONZEPT.md: vom Projektinhaber vorgegebene Helden (nicht umgesetzt)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 19:59:55 +02:00

17 KiB
Raw Blame History

STATUS · Champions of Luneraria

Stand: 29. September 2026 · Branches luneraria/m1 (M0/M1), luneraria/m2, luneraria/m3, luneraria/m4, luneraria/g1, luneraria/g2, luneraria/g3 (Zwischenstand) · Luneraria-Demo 0.17.0-g2 (macOS, Windows x64/ARM64, Linux).

Engine-Wechsel (29. September 2026): Der Projektinhaber hat entschieden, Champions of Luneraria nach Unity 6 zu portieren, um eine höhere Grafikqualität zu erreichen. Das Unity-Projekt liegt in ../luneraria-unity. Dieses Godot-Projekt bleibt als Referenz für Regeln, Tests, Assets und HUD-Design erhalten; neue Arbeit findet im Unity-Projekt statt.

Arbeitsrechner seit G2: Mac (Apple M5, macOS 27) mit Godot 4.7.2 und Blender 5.2.2 LTS; bis G1 Fedora 44 (RTX 5060 Ti). Werkzeugpfade und Plattformhinweise: ANLEITUNG.md.

Meilenstein Zustand
M0 · Migration vorbereiten abgeschlossen
M1 · Spielbarer Drei-Lane-Kern abgeschlossen
M2 · Mechanikdurchlauf abgeschlossen
M3 · Qualität und Balance abgeschlossen (siehe unten)
M4 · Netzwerk und Pakete pausiert (Host/Join, Mehr-Runden-Loopback, Wiedereinstieg; offen: Windows auf x64-Hardware, Netz über mehrere Rechner)
G1 · Map-Blockout und Drei-Lane-Layout abgeschlossen (G1-KARTE.md)
G2 · Ancients, Türme und Bossgrotte abgeschlossen (G2-STRATEGISCHE-BAUWERKE.md, G2-ASSETS.md)
G3 · Ingame-HUD Zwischenstand, nicht abgenommen (G3-HUD.md); abgebrochen zugunsten des Unity-Ports
G4–G6 · Umgebung, Licht, Einheiten in Godot nicht mehr geplant; werden nach dem Port in Unity fortgesetzt

M1 · abgeschlossen

Implementiert

  • Autoritative Partie mit sechs Spielerrollen (ein Mensch, fünf Bots), drei spiegelsymmetrischen Lanes, 16 Türmen und zwei Ancients.
  • Gebäudesperren für jede Schadensquelle.
  • Vorrückende Armeen mit eigenen, unbegrenzt wachsenden Monsterwellen.
  • Planung mit atomarer Übernahme, Besitz-IDs, Einmal-Belohnung mit verlustfreier Restverteilung, Rückkehr und Heilung der Truppen, persistenter Gebäudeschaden.
  • Partieende nur durch Kernfall; bei gleichzeitigem Kernfall Unentschieden.
  • Bots über dieselbe Befehlsschnittstelle.
  • 3D-Karte aus Bestandsassets plus neuem Turm (Blender), Einheiten mit den vorhandenen Modellen und Animationen.
  • HUD mit Planung, Laneübersicht, Minimap, Ergebnis; Titelmenü auf Champions of Luneraria umgestellt.
  • Übernahme der alten Benutzereinstellungen. Legacy-Modus bleibt unter --legacy und den alten QA-Schaltern erreichbar.

Automatisiert geprüft

  • Regeln 91/91, darunter der exakte Spiegeltest über 12 Runden.
  • Echte Anwendung 38/38, mit einer vollständigen Partie bis zum Ancient-Fall.
  • Acht Bot-Seeds enden regulär nach 8–15 Wellen.
  • Legacy 209 · 33 · 463 · 206 · 1.665 · 68 unverändert.

Visuell geprüft: Menü, Planung (720p/1080p), Kampf Mid/Top, Übersicht, Belagerung eines Ancients, Ergebnis (screenshots/).

Leistung (RTX 5060 Ti, Ryzen 5 5600X, Forward+, VSync aus, 2×): 114 bewegliche Einheiten und 18 Gebäude. 1080p: 7,6 ms/Bild (p95 10,5 ms), GPU 3,1 ms, ~3.170 Draw Calls, Simulationsschritt 2,4 ms (vor der Optimierung 15,8 ms). Es gibt keine allgemeine FPS-Zusage.

Ungetestet: Windows 11, Kompatibilitätsmodus für Luneraria, menschliche Spieltests.

M2 · abgeschlossen

Implementiert

  • Drei Helden (vorläufige Rollen der vorhandenen Skelettmodelle Ringborke, Quellgeflecht, Funkenlanze) mit Erfahrung aus Gefechtsnähe und Rundenteilnahme, Stufen, je zwei Talentstufen mit echten Aufgabenwechseln und drei Itemplätzen für sechs Items.
  • Drei Angriffschampions (Schutz, Druck auf Unterstützer, Belagerung) mit Buchung n → n+1 und öffentlicher Ankündigung.
  • Bossgrotte mit ruhendem Boss bei zwei Expeditionen, Scheitern, Eroberung, genau einer Entsendung für das siegreiche Team gegen den gegnerischen Ancient, hohem Kopfgeld für die Verteidiger und Sperre ab Sieg + 4.
  • Wahl der Ziel-Lane durch den beitragenden Spieler; Grottenaufträge gelten für genau eine Runde.
  • HUD mit Reitern Truppen / Held / Verstärkung, Heldenporträt aus dem echten Modell, Grottenstatus, Ankündigungen und Minimap-Grotte.
  • Neues Grotten-Asset (Blender). Bots mit Helden, Items, Talenten, Champions und Bossjagd.

Automatisiert geprüft

  • Regeln M2 73/73 und M1 91/91 (mit Spiegeltest).
  • Echte Anwendung M2 15/15 und M1 38/38.
  • 12 Bot-Seeds enden regulär nach 7–10 Wellen.
  • Szenariovergleich der Bossstrategie (2 Seeds × 5 Varianten).

Visuell geprüft: Held mit Items im HUD, Held im Feld, Grottenkampf, Ankündigung, Bossentsendung (screenshots/m2-*).

Ungetestet: menschliche Spieltests der neuen Systeme, Windows 11.

M3 · abgeschlossen

Implementiert

  • Bot-Priorisierung: Items und Angriffschampions werden vor der Armee geplant (Reserve), damit Helden Ausrüstung erhalten und Champions überhaupt gebucht werden. Regression bots_m2 gefixt.
  • Deterministische Lane-Hilfe der Bots statt geteiltem Zufall — erhält die exakte Spiegelsymmetrie.
  • Bossbalance: Grottenboss 3.600 HP, entsandter Boss 6.800 HP / 88 Schaden, Belagerungsfaktor 1,8. Bossjäger senden 5 Truppen + Held und bewerten Expeditionen per öffentlicher Lanchester-Schätzung.
  • Profilbalance: verteidigung erhält Champion und Teamhilfe; ausgewogen startet den Held eine Runde später; teamhilfe hilft seltener.
  • 3D-Kartenvisuals: map_props.glb (Blender-Generator) mit Kiefern, Eichen, Felsen, Büschen, Brücken über die Kluft, Bordsteinen, Klamprahmen und Team-Bannern an den Ancients. Alte Compare-Props abgelöst.
  • Sieben Volksrepräsentanten (p_mensch … p_biest) mit gewichtetem Skelett, 9 Clips, LP_*-Materialien, Audit und Sichtprüfung. Entwicklungsplan in VOELKER.md. Noch nicht spielbar im Match.
  • Balancewerkzeuge: balance_run (Zusammensetzungen, Seitentausch, reine Duelle), analyze_balance.py, stress_run, people_lineup.

Automatisiert geprüft

  • Regeln: Core 91/91 (inkl. Spiegel) und M2 73/73 nach den Bot-Änderungen.
  • Echte Anwendung: M1 38/38 und M2 15/15 (nach Fix der Item-Ausrüstung).
  • Balance 40 Partien: Seitentausch 20/20, Profile 24–64 %, Bünde 55/45, alle regulär nach 9–14 Wellen.
  • Profil-Duelle 30 Partien: Seitentausch 15/15.
  • Stress 17/17: Wellen bis 10⁶, Langlauf 200 Runden als „Testlimit erreicht“.
  • Legacy unverändert.

Visuell geprüft: Kartenübersicht mit Props und Brücken, Kampf Top/Mid, Planung mit Helden-Items (Funkenlanze Stufe 3, Glutklinge), sieben Völker in Ruhe/Kontakt/Laufen/Fähigkeit/Tod und Nahaufnahme (screenshots/peoples-*).

Bekannte Befunde

  • Reine 3-gleichen Profil-Duelle ergeben eine lineare Kette (ausgewogen > verteidigung > teamhilfe > fernkampf > druck > bossjagd), keinen Zyklus. In gemischten Teams sind alle Profile im Band 24–64 %.
  • Bossjagd als reines Teamprofil 0/10, in Mischteams 24 %. Die Risikoabschätzung ist besser geworden, die Jagd bleibt teuer.

Bekannt

  • Ein exakt gespiegeltes Match bleibt unentschieden, wird also nicht beendet (Testlimit). Das ist der erwartbare Grenzfall identischen Spiels; Asymmetrie kommt aus Helden, Champions und Boss.
  • Die Monsterwellen sind nur über Teamring und Lichtfarbe dem Team zugeordnet.
  • Beim Beenden meldet Godot eine noch belegte Ressource (Hintergrundladen der Menübühne); ohne Folgen im Spiel.
  • Die sieben Volksrepräsentanten sind noch nicht spielbar (Daten und Modelle liegen vor, Plan in VOELKER.md).

Blockiert

  • Windows auf x64-Hardware mit echtem Vulkan/D3D12: keine solche Hardware. Seit G2 laufen beide Windows-Pakete in Windows 11 ARM (Parallels) mit OpenGL-Fallback.
  • Notarisierung des macOS-Pakets: kein Apple-Entwicklerkonto; die App ist ad-hoc signiert.

M4 · pausiert

Auf Entscheidung des Auftraggebers ruht M4 seit dem 28. September 2026 zugunsten der Grafik- und Kartenphasen G1–G6. Während dieser Phasen gibt es keine Netzwerk-Featurearbeit; die Netzwerktests laufen nur als Regression mit.

Implementiert

  • LuneSession (autoritativ): Der Host besitzt LuneMatch und rechnet jeden Kampf. Clients senden nur Absichten (Kauf, Aufwertung, Zuweisung, Rückgängig, Bereit) und zeigen den Kampf aus Host-Momentaufnahmen (20/s, interpoliert). Ein Client rechnet keinen einzigen Kampfschritt.
  • Das echte Spiel (LuneGame) läuft vollständig über die Sitzung: Bereitschaft, Startaufstellung und Rückgängig gehen an den Host; Bots planen nur freie Sitze und höchstens einmal pro Runde; Tempo und Pause bestimmt der Host.
  • „Bereit“ ist verbindlich: Danach nimmt der Host für diesen Sitz keine Planungsbefehle mehr an.
  • Privatsphäre: Jeder Sitz erhält nur den eigenen Planungsentwurf, von allen anderen den übernommenen Stand.
  • Verbindungsaufbau mit Protokollprüfung (PROTOCOL 4). Sitzplätze an Peer-IDs, ein Peer ein Sitz.
  • Disconnect → Bot-Übernahme, nie Kernverlust, keine Hostmigration. Wiedereinstieg: Wer sich mit demselben Anzeigenamen erneut verbindet, erhält seinen alten Sitz zurück, auch mitten im Kampf (vollständiger Abgleich inkl. laufender Einheiten). Neue Gäste nehmen reservierte Sitze nur als letzte Möglichkeit.
  • Übernahme eines Bot-Sitzes in der Planung: Der noch nicht übernommene Bot-Entwurf verfällt, das Gold gehört dem Menschen.
  • Revanche startet der Host; Gäste starten automatisch neu. Verbindungsverlust führt den Gast mit Meldung ins Menü.
  • Host/Join im Setup-Menü (Direktverbindung, Standardport 24571), freie Plätze als Bots.
  • Exporte Luneraria-Linux und Luneraria-Windows, entpackbare Demos 0.16.0-m4 unter ../dist/luneraria/ (Stand vor dem Sitzungsumbau; nicht neu gebaut).

Automatisiert geprüft

  • Protokoll test_lune_net 43/43: fremder Sitz, fremde UID, veralteter Befehl, Doppelkauf, Disconnect ohne Kernschaden, Protokollversion, Wiedereinstieg auf denselben Sitz, Reservierung gegen neue Gäste, Übernahme mit verfallendem Bot-Entwurf, Bot plant einmal pro Runde, Bereit ist verbindlich, nur eigener Entwurf im Zustand.
  • Mehr-Runden-Loopback mit drei Prozessen (python3 tools/luneraria/net_rounds.py) 12/12: Host und Gast spielen fünf Runden mit dem echten LuneGame; nach jeder Abrechnung ist die Prüfsumme des öffentlichen Zustands gleich; der Gast rechnet 0 Kampfschritte und erhält Momentaufnahmen; Gast A trennt im Kampf der Runde 2, der Bot übernimmt, Gast B kehrt mit demselben Namen auf Slot 1 zurück (logs/m4/net-rounds.json).
  • Regressionen nach dem Umbau: Regeln 91/91, M2 73/73, echte Anwendung M1 38/38 und M2 14/14 (Partie endete vor einer Bossentsendung).

Visuell geprüft: Host und Gast in zwei Fenstern mit Grafik, Kampf in Echtzeit. Gastsicht in Planung und Kampf von Runde 1 und 2 (screenshots/m4/). Runde 1: 872, Runde 2: 730 empfangene Momentaufnahmen, Prüfsummen gleich.

Offen (eingefroren)

  • Kompatibilitätsmodus (OpenGL) für Luneraria. G2: in Windows 11 ARM (Parallels) automatisch aktiv und lauffähig; eine gezielte Sichtprüfung auf Desktop-Hardware steht aus.
  • Nativer Windows-11-Test. G2: beide Windows-Pakete liefen in Windows 11 ARM in einer VM; x64-Hardware mit echtem Treiber fehlt weiter.
  • Neubau der Demo-Pakete mit der umgebauten Sitzung. G2: erledigt mit 0.17.0-g2; Netzwerkfunktionen darin unverändert und nur als Regression geprüft.
  • Partie mit sechs Menschen auf mehreren Rechnern bzw. über das Internet (bisher nur lokaler Loopback).
  • Wiedereinstieg ist nur an den Anzeigenamen gebunden (keine Konten); Übertragungsrate bei vielen Gästen über das Internet ist nicht gemessen.
  • Öffentliches Matchmaking, Accounts, Ranglisten: außerhalb des Umfangs.

G1 · abgeschlossen

Details, Vorher/Nachher-Bilder und Messwerte: G1-KARTE.md.

Implementiert

  • Neues Drei-Lane-Layout aus geglätteten, gespiegelten Lanes:
    • Top über das Hochland im Nordwesten;
    • Mid als breite, direkte Route über die Mittelplattform mit Runensteinen;
    • Bottom durch das Tiefland über die Deltabrücke.
  • Top und Bottom exakt gleich lang (96,82 m), Mid 61,16 m.
  • Höhenfeld LuneTerrain: Hochland, Tal, Tiefland, Kluft auf der Symmetrieachse, Basisplateaus, Grottenterrasse, Randgebirge; exakt gespiegelt. Figuren stehen auf dem Gelände.
  • Basen mit Plateau, Ringmauer und drei Lane-Toren. 16 Türme (12 Lane-, 4 Basistürme) und 2 Ancients auf ebenen Sockeln.
  • Bossgrotte (Blockout) zwischen Top und Mid auf der Achse: Terrasse, Höhlenmund, Säulen, zwei Teamtreppen, Quelle der Kluft. Sie blockiert Mid nicht.
  • Aufmarschbereiche je Team und Lane mit Reihenlinien, in der Planung sichtbar und hervorgehoben, wo eigene Einheiten stehen.
  • Perspektivische MOBA-Kamera mit zoomabhängiger Neigung und Sprungtasten F2–F4, B, G, H, O, R, Q/E. Minimap mit Kamera-Umriss und Kluft.
  • Werkzeuge: g_views (Vergleichsaufnahmen), verify_g1 (Abnahme), erweiterter Benchmark (Lane-Ansicht und Übersicht).

Automatisiert geprüft

  • verify_g1 443/443. Regeln 91/91 (inkl. Spiegeltest) und M2 73/73, jeweils ohne geänderte Erwartungswerte.
  • Echte Anwendung: M1 38/38 (1080p; bei 720p zwei zeitweilige Klickfehler in 7 Läufen), M2 14/14.
  • Netzwerk-Regression 43/43 und Loopback 12/12.
  • Balance 40 Partien: Seitentausch 20/20, alle regulär nach 9–13 Wellen.
  • Legacy 209 · 463.

Visuell geprüft: 13 Vergleichsansichten vorher/nachher aus der Spielkamera (1920 × 1080) und der Kartenplan.

Befunde: 4 von 442 Kampfphasen erreichen das Zeitlimit (M3: 0; fernkampflastige Teams, Runde 12). Wege 2,5–3 % länger, Partielänge unverändert (Median 11 Wellen). Leistung: Lane-Ansicht 6,95 ms statt 6,16 ms pro Bild, die ganze Karte in der Übersicht mit 6,97 ms.

Ungetestet: OpenGL-Modus, Windows 11, schwächere GPUs, menschliche Spieltests des Layouts.

G2 · abgeschlossen

Details, Bilder, Videos und Messwerte: G2-STRATEGISCHE-BAUWERKE.md. Assetprüfung: G2-ASSETS.md.

Implementiert

  • Mondherz-Ancients (Saumkern-Kristall als Herz, Sichelklingen, Ringe, Krone, Wappen, Fragmente, Dais, Banner, Energieadern zu Basistürmen und Toren):
    • Stufen stabil, instabil und kritisch; danach ein 2,8 s langer Zusammenbruch und eine bleibende Ruine;
    • der Sieg wartet nie auf die Grafik.
  • Turmfamilie aus einem Generator: Grenzwacht (Tower 1), Bastion (Tower 2), Kernwacht (Basisturm in der Formensprache des Ancients).
    • Schaden leicht und schwer, Einsturz und Ruine.
    • Sichtbarer Angriff: Zielerfassung, Aufladen, Bolzen, Einschlag. Der Schaden bleibt in der Regel.
  • Bossgrotte Mondschlund: Tor mit Treppe in die Tiefe, Altar mit Mondquelle, Säulen, Felsen, Mondwasser. Fünf Zustände: verfügbar, Kampf, nicht verfügbar (entsandt), Cooldown, bald verfügbar. Die Grotte hält beim Bau automatisch Abstand zur Top-Lane.
  • Superboss Schlundkrone: neues Modell mit 24 Knochen und 11 Clips, darunter Brüllen beim Erwachen und Sieg. Adern in Teamfarbe; dasselbe Modell als Grotten- und Lane-Boss.
  • Materialfamilie LN_*: Stein, Metall, Kristall, Rune, Stoff, Mondwasser, Kreaturenhaut. Pro Gebäude nur Instanzparameter; wiederverwendbar für G4/G5.
  • Occlusion-Fade für Ancient, Basistürme und Grottentor (schlanke Türme nur für Helden, Champions und Boss); Schatten dithern nie.
  • Werkzeuge: verify_g2, run_g2_tests.sh, Abnahmebilder, Videoaufnahme mit MP4-Kodierung über Blender, Kostenaufteilung, Boss-Clipbogen, Kamera-Probe, erweiterter Benchmark (GPU-Last unter macOS über ioreg).
  • Plattformen:
    • macOS-Paket (Universal, ad-hoc signiert) und Windows-ARM64-Paket;
    • Plattform-Kurztest --lune-smoke;
    • eigene Luneraria-Version im Menü.

Automatisiert geprüft

  • verify_g2 245/245 (Assets, Ansichten, Zustände, Turmzielwahl, Turmreihenfolge, Basis-Sperre, Ancient-Ende, Grotte, Boss auf allen Lanes, Ruinen, keine Doppelereignisse, Botpartien, Occlusion, Maßstab).
  • Regeln 91/91 und 73/73, Stress 17/17, verify_g1 443/443, verify_m1 38/38, verify_m2 14/14, Netz 43/43 und 12/12, Legacy 209 und 463.
  • Balance 40 Partien: Ergebnis Wert für Wert identisch mit G1.

Visuell geprüft: 21 Ansichten nachher/vorher (1920 × 1080) aus der Spielkamera, zwei Videos (Turmkampf, Bossbegegnung), Plattformbilder macOS und Windows 11.

Leistung (Mac M5, 1080p): Die volle Kampfansicht braucht 10,0 statt 9,5 ms (+5 %). Ursache sind die mehrteiligen Turmmodelle (Draw Calls), nicht die Shader. Die Lichter bleiben ohne Schatten.

Ungetestet

  • Windows auf x64-Hardware (nur Windows 11 ARM in Parallels mit OpenGL-Fallback);
  • Linux-Paket (nur exportiert);
  • schwächere GPUs;
  • menschliche Spieltests der neuen Lesbarkeit.

Nächster Schritt

G3 · HUD: das neue Ingame-HUD. Gebäude- und Grottenzustände (bald verfügbar, Cooldown, Claim) auch im HUD und auf der Minimap spiegeln. Lebensbalken der Gebäude ins HUD-Design überführen. Ankündigungen mit den neuen Effekten verbinden.

M4 ruht weiter. Beim Wiederaufnehmen zuerst Windows auf x64-Hardware prüfen (der OpenGL-Fallback ist in der VM bereits gelaufen) und die Netzpartie über mehrere Rechner.