saumwacht-godot/docs/luneraria/G1-KARTE.md
Martin Stickelbroeck 8b17563814 G1: Drei-Lane-Layout mit Höhenfeld, Grotte, Aufmarschbereichen und MOBA-Kamera
Top windet sich über das Hochland, Mid quert die Kluft über die Mittelplattform,
Bottom führt durch das Tiefland über die Deltabrücke; Top und Bottom sind exakt
gleich lang, alles bleibt spiegelsymmetrisch. LuneTerrain liefert ein exakt
gespiegeltes Höhenfeld, auf dem Figuren stehen. Bossgrotte als Terrasse auf der
Achse zwischen Top und Mid, Aufmarschbereiche je Lane, perspektivische Kamera
mit Sprungtasten (F2–F4, B, G, H, O, R, Q/E). Bestandsassets wiederverwendet,
neue Formen als Blockout für G2/G4.

Geprüft: verify_g1 443/443, Regeln 91/91, M2 73/73, verify_m1 38/38,
verify_m2 14/14, Netz 43/43, Loopback 12/12, Balance 40 Partien (Seitentausch
20/20), Legacy 209/463. Vorher/Nachher-Aufnahmen und Messungen in G1-KARTE.md.

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

16 KiB
Raw Blame History

G1 · Map-Blockout und spielerisches Drei-Lane-Layout

Stand: 29. September 2026 · Branch luneraria/g1 (von luneraria/m4, Commit c155338). Grundlage: Grafikauftrag vom 28. September 2026, Konzeptbild assets/ChatGPT-Bild 27. Sept. 2026, 19_46_52-2.png als visuelle Richtung (keine Vorlage zum Kopieren).

Kartenplan (Draufsicht, nur Dokumentation)

Kartenplan: orthografische Draufsicht ohne HUD, nur zur Dokumentation. Alle Abnahmebilder unten stammen aus der echten Spielkamera.

Vorab: M4 gesichert und eingefroren

  • M4-Stand dokumentiert (STATUS, QA-MATRIX, ARCHITEKTUR, ANLEITUNG) und als c155338 auf luneraria/m4 committet.
  • Vor dem Commit erneut ausgeführt: test_lune_net 43/43, net_rounds.py 12/12.
  • Offen und eingefroren: OpenGL-Kompatibilitätsmodus, nativer Windows-11-Test, Neubau der Demo-Pakete, Partie über mehrere Rechner.
  • Während G1 keine Netzwerk-Featurearbeit. Einzige Änderung am Netzwerk-Testtreiber: Gast A trennt jetzt bei der ersten Momentaufnahme des Kampfes der Trennrunde statt erst nach sechs (kurze Kämpfe lieferten zu wenige; siehe Tests).

Neues Kartenlayout

Die Karte bleibt ein Quadrat von 72 × 72 m mit Blau im Südwesten und Rot im Nordosten. Rot ist weiterhin das exakte Spiegelbild von Blau an der Achse x = z. Jede Lane wird aus ihrer blauen Hälfte und deren Spiegelung gebaut; Türme, Aufmarschpunkte und Grotteneingänge sind dadurch funktional gleich. Neu ist, dass die Lanes als geglättete Kurven (Catmull-Rom, alle 2 m abgetastet) entstehen und sich Top und Bottom in der Form unterscheiden.

Lane Länge Identität Querung der Kluft
Top 96,82 m (M3: 94,5) windet sich über das nordwestliche Hochland (bis 3,3 m), alte Wachtwege, Ruinentor, Mauerreste, Aussichtsturm an der Ecke keine
Mid 61,16 m (M3: 59,4) direkteste, breitere Route (Belag 7,8 m statt 6), leicht gewellt, runde Mittelplattform mit Runenkreis und vier Runensteinen, Blick die Kluft hinauf zur Grotte über die Mittelplattform (8 m Wasser)
Bottom 96,82 m (exakt wie Top) Tiefland im Südosten (bis −0,16 m), Talbogen, verwachsene Mauerstümpfe, Schilf am Ufer über die Deltabrücke (16 m Wasser)

Die Länge von Bottom wird beim Laden per Bisektion auf die Länge von Top gelöst, damit beide Lane-Rollen gleich lange Wege haben.

Kluft (Fluss): Sie entspringt am Fuß der Grottenterrasse, läuft genau auf der Symmetrieachse unter der Mittelplattform hindurch und mündet im Südosten in ein Delta mit See, das Bottom auf der Brücke quert und das durch das Randgebirge abfließt. Top berührt kein Wasser.

Basen: Plateau (Radius 10,6 m, 0,6 m hoch), Platz mit Teamring, Ringmauer mit drei Toren an den Lane-Ausgängen und Torsäulen mit Teamkristall. Die zwei Basistürme stehen 6 m vor dem Ancient, 40° beiderseits der Mid-Richtung.

Türme: je Team 2 Türme pro Lane plus 2 Basistürme, also 16 Türme und 2 Ancients auf der Karte, alle auf ebenen Sockeln in Höhe der Lane daneben. Die Position folgt wie bisher dem Anteil an der Lanelänge (innen 17 %, außen 35 %) mit 3,4 m Seitenabstand.

Bossgrotte: auf der Symmetrieachse zwischen Top und Mid, 19,1 m neben Mid. Terrasse (Radius 7,8 m, 1,7 m hoch) vor der Hochlandkante mit Runenkreis, elf Säulen mit Grottenkristallen um die Rückseite, dem M2-Felsbogen als Höhlenmund (ohne dessen alte Bodenscheibe und Findlinge) und Klippen dahinter. Je Team führt eine Treppe zum Eingang, dazwischen fällt die Quelle als kleiner Wasserfall in die Kluft. Die Abstände von Eingängen und Bosspunkt zum Grottenmittelpunkt sind seit M2 unverändert; die Grottenkämpfe sind also nur verschoben, nicht verändert. Bei gesperrter Grotte werden Licht und Runen gedimmt, bei Anspruch leuchten sie in Teamfarbe (Zustände im Detail: G2).

Aufmarschbereiche: je Team und Lane eine Fläche vor dem eigenen Basistor (Lanefortschritt 0–7,6 m, 4,8 m breit), mit Reihenlinien im Abstand von 1,5 m (vorne Front, dahinter Nahkampf, Flächenschaden, Fernkampf, Unterstützung, wie in LuneMatch._spawn_armies) und einem Pfeil in Marschrichtung. In der Planung sieht man die drei eigenen Flächen; Lanes mit eigenen Einheiten sind hervorgehoben. Die Grotteneingänge zeigen einen Ring, wenn die Grotte offen ist. Im Kampf ist alles ausgeblendet.

Höhenfeld (LuneTerrain): Hochland im Nordwesten hinter einer Abbruchkante, Tal in der Mitte, Tiefland im Südosten, Basisplateaus, Grottenterrasse, Randgebirge als abgerundetes Quadrat mit unregelmäßigem Fuß, feines Raster (1 m bis ±60 m) plus grober Außenring (4 m bis ±132 m). Jeder Term hängt nur von der Achsenkoordinate, dem Abstand zur Achse oder von gespiegelten Kartenelementen ab; das Gelände ist exakt spiegelsymmetrisch (Abweichung 0,0). Figuren stehen auf der „Laufhöhe“ (Lanebeläge, Plattform, Brücke, Terrasse), nie im Flussbett.

Kamera

  • Perspektivische MOBA-Kamera (34° Blickwinkel) statt der Orthokamera. Die Neigung wird beim Herauszoomen steiler: −48° nah, −70° in der Übersicht. zoom bedeutet weiterhin die sichtbare Bodenhöhe am Fokus, alle bisherigen Kamerarahmen behalten ihre Bedeutung.
  • Der Fokus folgt der Geländehöhe; der Schattenbereich passt sich der Kameradistanz an.
  • Tasten: F2 / F3 / F4 Top / Mid / Bottom (F1 bleibt Optionen), Tab nächste Lane, B eigene Basis, G Bossgrotte, H eigener Held (Vorschau in der Planung, lebende Einheit im Kampf), O ganze Karte, R Rücksetzen (Drehung, Zoom, eigene Lane), Q / E Drehen in 45°-Schritten; WASD, Pfeiltasten, mittlere Maustaste und Mausrad wie bisher.
  • Die Minimap zeigt den tatsächlichen Bodenausschnitt der Kamera (Trapez) und die Kluft mit Delta.

Assets

Wiederverwendet, unverändert: Laneturm (tower.glb, Blender-Generator aus M1), Ancients (Saumkern-Modelle core_team0/1), Kartenrequisiten aus map_props.glb (drei Kiefern, drei Eichen, drei Felsen, zwei Büsche, Bordsteine, Brücke, Randklippe, Banner), Kluft-Oberflächenshader (sanctuary.gdshader) mit dem Kalkstein-Textursatz, Flussshader, Beleuchtung, alle Figuren und Animationen.

Wiederverwendet, verändert eingesetzt:

  • M2-Grottenmodell (grotto.glb): nur Felsbogen, Höhlendunkel und Kristalle, Bodenscheibe und Findlinge ausgeblendet, Maßstab 1,05.
  • Brücke: um 34 % gestreckt als Deltabrücke.
  • Randklippe: gestaucht als Klippen hinter der Grotte.
  • Büsche: gestreckt als Schilf.

Neu (Blockout, kein neues Blender-Asset):

  • Höhenfeld mit Zonenfarben und eigenem Geländeshader (lune_terrain.gdshader).
  • Lanebeläge mit Böschung.
  • Mittelplattform, Runensteine und Runenkreis.
  • Basisplätze, Ringmauern, Torsäulen und Torkristalle.
  • Grottenterrasse, Säulen, Treppen und Wasserfall.
  • Ruinentor, Mauerreste und Aussichtsturm.
  • Aufmarschflächen (lune_pad.gdshader).

Diese Primitive ersetzen G2 (Ancients, Türme, Grotte) und G4 (Umgebung) durch Blender-Assets. Neue Blender-Assets entstanden in G1 bewusst nicht.

Vorher / nachher (1920 × 1080, Spielkamera)

Gleiche Partie (Seed 4, Wurzelbund auf Mid), gleiche benannte Kamerarahmen, aufgenommen mit tools/luneraria/g_views.tscn.

Ansicht Vorher (M4) Nachher (G1)
1 · ganze Karte vorher nachher
2 · Top Lane (Kampf) vorher nachher
3 · Mid Lane (Kampf) vorher nachher
4 · Bottom Lane (Kampf) vorher nachher
5 · eigene Basis vorher nachher
6 · Gegnerbasis vorher nachher
7 · Bossgrotte vorher nachher
8 · Kampf mit vielen Einheiten vorher nachher
9 · HUD (Planung) vorher nachher
10 · Held ausgewählt vorher nachher
11 · Zoom nah vorher nachher
12 · Kamera in Bewegung vorher nachher
13 · Grottenkampf (aus verify_m2) vorher nachher

Die Ansichten 8 und 11 nutzen eine Aufnahme-Vorgabe (Runde 13, sechs volle Armeen, Gold nur für die Aufnahme).

Gameplay-Befunde durch das neue Layout

  • Regeln unverändert: Alle Regeltests bestehen ohne geänderte Erwartungswerte, auch der bitgenaue Spiegeltest über 12 Runden.
  • Wege etwas länger: Top und Bottom +2,5 %, Mid +3 %. Türme stehen dadurch absolut minimal weiter auseinander. Die Partielänge ist unverändert: 9–13 Wellen, Median 11 (M3: 9–14, Median 11).
  • Neu, aber selten – Kampfphasen am Zeitlimit: 4 von 442 Kampfphasen erreichen das 180-s-Fenster (M3: 0). Betroffen sind zwei fernkampflastige Zusammensetzungen, jeweils in Runde 12 und auf beiden Seiten gleich. Ein Zeitlimit beendet nur die Kampfphase, nie die Partie. Der Median der längsten Kampfphase je Partie sank von 113 auf 109 s. Beobachten, noch kein Handlungsbedarf.
  • Balance-Verschiebungen im Rahmen:
    • Profil „teamhilfe“ fällt von 46 auf 38 %, „ausgewogen“ steigt von 58 auf 62 %, „druck“ von 53 auf 59 %.
    • Bünde 53/47 (M3 55/45).
    • Bossentsendungen 12 statt 8 bei 40 Partien.
    • Seitentausch weiterhin 20/20 konsistent: Die Karte bevorzugt kein Team.
  • Äußerer Mid-Turm nah an der Plattform: Er steht 9,8 m vom Kartenmittelpunkt. Die Plattform ist damit gleichzeitig Kampfplatz und Vorfeld des Turms. Das ist gewollt, sollte aber bei G2 (Turmsilhouette) im Blick bleiben.
  • Grotte nah an der Top-Ecke: Die Arena liegt 3,0 m außerhalb des Top-Lanekorridors. Kämpfe an der Top-Ecke und in der Grotte sind aus derselben Kamera sichtbar. Das unterstützt die gewünschte Blickbeziehung, verlangt in G2 aber, dass Grotteneffekte die Top-Figuren nicht überdecken.
  • Figuren am Ufer: Wer im Kampf eine Lane verlässt und ans Ufer läuft, wird auf der Wasseroberfläche dargestellt, nicht im Flussbett. Das ist rein optisch; die Simulation ist zweidimensional.

Leistung

Gleiche Messmethode für beide Stände (tools/luneraria/lune_benchmark.tscn). Fedora 44, Ryzen 5 5600X, RTX 5060 Ti, Forward+, 1920 × 1080, VSync aus, Tempo 2×, Runde 13 mit sechs vollen Armeen (120 bewegliche Einheiten zu Beginn). CPU = Hauptthread vom ersten _process bis zum fertig gezeichneten Bild.

Messung Vorher (M4) Nachher (G1)
Lane-Ansicht: Bildzeit Mittel / p95 6,16 / 8,58 ms 6,95 / 9,66 ms
Lane-Ansicht: CPU / GPU 6,04 / 3,17 ms 6,82 / 3,29 ms
Lane-Ansicht: Draw Calls / Objekte 3 609 / 7 060 3 340 / 7 438
Übersicht: Bildzeit Mittel / p95 7,30 / 9,31 ms (Zoom 46, nur Teil der Karte) 6,97 / 9,28 ms (Zoom 92, ganze Karte)
Übersicht: CPU / GPU 7,17 / 4,11 ms 6,84 / 3,52 ms
Übersicht: Draw Calls 5 448 3 605
Szenenaufbau (inkl. Höhenfeld) 180 ms 293 ms
Simulationsschritt 2,54 ms 2,71 ms
VRAM / Texturen / statischer RAM 780 / 425 / 126 MB 782 / 425 / 128 MB

Optimiert statt entfernt:

  • Schattenreichweite an die Kameradistanz gekoppelt (70–220 m). Das senkte die zusätzliche GPU-Zeit der Lane-Ansicht von +0,56 auf +0,12 ms.
  • Kein Schattenwurf für den fernen Gebirgsring.
  • Alle Wiederholteile als MultiMesh.
  • Das Höhenfeld wird nur für die Blau-Hälfte berechnet und gespiegelt; es wird je Prozess einmal erzeugt und bei einer Revanche wiederverwendet.
  • Lane-Abfragen per binärer Suche.

Das Bild bleibt CPU-gebunden, vor allem durch die rund 120 gerenderten Skelettfiguren. Logs: logs/g1/perf-vorher-1920x1080.json, logs/g1/perf-nachher-1920x1080.json.

Tests

Prüfung Ergebnis
G1-Abnahme verify_g1 (echte Anwendung, Tasten, Mausrad) 443/443
Regeln test_lune_core (inkl. Spiegeltest) 91/91
Regeln M2 (Helden, Items, Talente, Champions, Grotte, Boss, Bots) 73/73
Netzwerkprotokoll test_lune_net (Regression) 43/43
Mehr-Runden-Loopback net_rounds.py (Regression) 12/12 (nach Anpassung des Trennzeitpunkts im Testtreiber, siehe oben)
Echte Anwendung M1 38/38 bei 1920 × 1080. Bei 1280 × 720: 5 von 7 Läufen 38/38; zwei Läufe scheiterten an je einem Klick (einmal im Menü vor dem Partiestart, einmal im Shop), danach vier Läufe in Folge bestanden. Der M4-Stand bestand 3/3. Da der Menü-Fehlklick vor jedem G1-Code auftrat, gehen wir von einer zeitweiligen Eingabestörung aus; nicht abschließend geklärt.
Echte Anwendung M2 14/14 (Partie endete vor der Bossentsendung, bekannte Variante)
Balance 40 Partien (wie M3) Seitentausch 20/20, alle regulär nach 9–13 Wellen, 0 Testlimit
Legacy Saumwacht 209 · 463 unverändert

verify_g1 prüft unter anderem:

  • Lanes und Wasser: Jede Lane ist überall begehbar; Wasser unter einer Lane gibt es nur auf der Plattform und der Deltabrücke; Top bleibt trocken und erreicht das Hochland; Bottom liegt im Tiefland; Mid quert auf der Plattform.
  • Gebäude: Alle 16 Türme und beide Ancients liegen im Spielfeld, stehen trocken, eben und mit Abstand zueinander; die Basistürme stehen vor ihrem Ancient.
  • Grotte: Sie liegt auf der Achse, blockiert Mid nicht und hält alle Lanekorridore frei; Eingänge und Bosspunkt liegen auf der Terrasse, die Quelle entspringt an ihrem Fuß.
  • Aufmarschflächen: Sie liegen trocken, innen und auf der eigenen Seite.
  • Gelände: Es ist exakt gespiegelt.
  • Kamera: Alle Sprungtasten treffen ihr Ziel; die Übersicht zeigt alle Gebäude und die Grotte; Drehen, Rücksetzen, Zoomgrenzen und die Neigung je Zoom funktionieren; der Minimap-Umriss ist korrekt; ein weicher Sprung kommt in 1,2 s an.
  • Planung und Kampf: In der Planung sind nur die eigenen drei Flächen sichtbar, hervorgehoben dort, wo eigene Einheiten stehen. Im Kampf sind sie ausgeblendet. Alle Figuren stehen auf dem Gelände (Fehler < 0,001 m), und F3 zeigt im Kampf die eigene Mid-Armee.

Vier Kategorien

Implementiert:

  • Drei-Lane-Layout mit Lane-Identitäten, Höhenfeld, Kluft, Basen, 16 Türmen (12 Lane- und 4 Basistürme) und 2 Ancients, Bossgrotte (Blockout), Aufmarschbereiche.
  • Perspektivische Spielkamera mit Sprungtasten.
  • Minimap-Anpassung, Vergleichs- und Messwerkzeuge.

Automatisiert geprüft: siehe Tabelle „Tests“.

Visuell geprüft: alle 13 Vergleichsansichten und der Kartenplan in der Spielkamera bei 1920 × 1080, dazu Lane-Kampf, hohe Einheitenzahl, Nahzoom, bewegte Kamera und Grottenkampf.

Ungetestet:

  • OpenGL-Kompatibilitätsmodus mit dem neuen Gelände.
  • Windows 11.
  • Schwächere GPUs.
  • Menschliche Spieltests des neuen Layouts.
  • Übertragungsverhalten des Netzspiels auf der neuen Karte über echte Netze (nur Loopback).

Offen und nächste Schritte

  • G2 Ancients, Türme, Bossgrotte:
    • monumentale Ancients mit Zustandsstufen;
    • modulares Turmsystem mit Angriffsbereich, Treffer- und Zerstörungszuständen;
    • Grotte als echtes Blender-Asset mit den Zuständen neutral, verfügbar, umkämpft und Abklingzeit;
    • Teamidentität über Banner, Runen und Architektur.
  • G3 HUD: das vollständige neue Ingame-HUD. G1 hat hier nur Tastenhinweise und die Minimap angepasst.
  • G4 Umgebung: Klippen- und Ruinen-Assets statt Primitiven, 3–5 neue Baumarten, Uferzonen, neuer Wassershader.
  • G5: Licht und Materialien.
  • G6: Einheitendarstellung und Völker.
  • Beobachten: Kampfphasen am Zeitlimit bei fernkampflastigen Teams.