Betäubungs-Ring über dem Kopf (Gäste über Bit 18 der Rahmen-Flags), Nebel-Gitter LuneFogOverlay mit Shader Luneraria/FogOverlay aus LuneFog.Vision (10 Hz, weiche Kante), laufende Glyphe je Team als vier Zusatzwerte nach den Gebäude-Lebenspunkten. Reine Darstellung. Kern 627/627 (s4 8), EditMode 35/35, PlayMode 20/20, Verify 718/0, Selbsttest 30/30, Golden 0, Fingerabdruck unverändert. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
340 lines
28 KiB
Markdown
340 lines
28 KiB
Markdown
# Port-QA
|
||
|
||
Je Meilenstein: Tests, Bild, Leistung, bekannte Unterschiede, Commit.
|
||
|
||
## U1 · C#-Simulation
|
||
|
||
| Punkt | Ergebnis |
|
||
| --- | --- |
|
||
| Tests | `content` 75/75, `core` 91/91, `m2` 73/73, `golden` 157/157, `determinism` 6/6 = **402/402**; dreimal in getrennten Prozessen; Protokoll `logs/u1/core-tests.json` |
|
||
| Golden-Parität | 19 Szenarien, 120 Snapshots, 51.221 Werte; größte Abweichung 0 in allen Kategorien (Toleranzen siehe U1-RULES.md) |
|
||
| Bild | `screenshots/u1/replay-start_three_lanes-t10.png`, `replay-boss_cycle-marching.png`, `replay-grotto_contested-t15.png`: Godot-Positionen (Punkte) und C#-Positionen (Ringe) decken sich (31/31, 35/35, 15/15) |
|
||
| Leistung (Mac M5) | Simulationsschritt bei 120 Einheiten: Godot 1,587 ms, C#/.NET 8 0,259 ms; Bot-Partien pro Runde: 648 ms zu 36 ms (`logs/u1/sim-bench-*.json`) |
|
||
| Bekannte Unterschiede | technische Repräsentation (Klassen statt Dictionaries, stabile Sortierung, 32-Bit-int, kein ungenutzter Zufallsgenerator); Referenzfehler R1 bewusst übernommen |
|
||
| Offen | erledigt in U1.5: Lauf im Unity-Editor, Mono-Leistung. Weiter offen: Kerntests auf Windows 11 und Fedora 44 |
|
||
| Commit | Zweig `luneraria/u1` (`4d6ed17`) |
|
||
|
||
Hinweis: Die Projektdateien des .NET-Harness (`tools/dotnet/*/*.csproj`) fehlten im U1-Commit, weil `.gitignore` alle `*.csproj` ausschloss. Sie sind seit U1.5 eingecheckt.
|
||
|
||
## U1.5 · Unity-Integrationsprüfung
|
||
|
||
| Punkt | Ergebnis |
|
||
| --- | --- |
|
||
| Umgebung | Unity 6000.3.20f1 (6.3 LTS), Personal-Lizenz, URP 17.3.0, Editor-Mono 6.13.0, Standalone-Backend Mono, API-Level .NET Standard 2.1 |
|
||
| Tests | Unity Test Runner (EditMode): 402/402 in Release und Debug, dazu 2 Integrationstests; .NET 8 weiter 402/402. Protokolle `logs/u1_5/editmode-results-*.xml`, `core-tests-*.json` |
|
||
| Golden in Unity | 51.221 Werte, Abweichung 0 in allen Kategorien und Bereichen (Gold, HP, Positionen, Türme, Ancients, Wellen, Helden, Boss, Gewinner, …) |
|
||
| Float-Befund | Mono rechnet float32-Zwischenwerte doppelt genau. Das beeinflusste eine Zielentscheidung (`mirror_match` Runde 7: +4,8 s Kampfdauer). Behoben durch explizite Rundung in `Vec2`; .NET-Ergebnisse byteidentisch zu vorher |
|
||
| Bild | keines; U1.5 hat keine sichtbare Szene. Nachweis sind der Schritt-Trace (`tools/port/trace_diff.py`) und die Float-Probe (`logs/u1_5/float-probe-*.json`) |
|
||
| Leistung (Editor-Benchmark) | Schritt mit 120 Einheiten: Editor Release 0,51 ms, Debug 1,00 ms; .NET 8 0,24–0,26 ms; Godot 1,60 ms (`logs/u1_5/sim-bench-*.json`) |
|
||
| Bekannte Unterschiede | R1 bewusst übernommen; F1 (Mono-Float) behoben ([KNOWN-BEHAVIOR-DIFFERENCES.md](KNOWN-BEHAVIOR-DIFFERENCES.md)) |
|
||
| Offen | IL2CPP- und Player-Läufe unter Windows 11 und Fedora 44 (Build-Module fehlen, Installation nach Freigabe) |
|
||
| Commit | Zweig `luneraria/u1.5` |
|
||
|
||
## U2 · Unity-Spielwelt
|
||
|
||
| Punkt | Ergebnis |
|
||
| --- | --- |
|
||
| Tests | Blender-Pipeline 176/176 und Unity-Verifier 128/128 (9 Assets). Test Runner EditMode 11/11: Kern 402 Prüfungen, 2 Integrationstests, 4 Bildratentests. PlayMode 2/2: Szene bei echten Bildraten, Vertical Function Test |
|
||
| Parität | Bot-Partie Seed 2 (9 Runden) und Seed 9 ab Runde 21 in der sichtbaren Szene mit demselben Fingerabdruck wie der reine Kern; ebenso bei 30, 60, 120 fps, unbegrenzt, mit Rucklern und bei 8× Tempo |
|
||
| Bild | `screenshots/u2a/` (Assets), `u2b/` (Karte mit Godot-Kameraeinstellungen; Vergleich mit `g2/nachher`), `u2d/` (14 Schlüsselmomente der Partien) |
|
||
| Leistung | macOS-Player (M5, 1080p, VSync aus) mit 116 Einheiten: 161–199 fps; Hauptthread 1,3 ms, Render-Thread 1,3 ms, Simulation unter 0,1 ms. Ausreißer beim Present (p95 18–26 ms) offen für U5 |
|
||
| Bekannte Unterschiede | keine Verhaltensunterschiede. Darstellung vereinfacht: Platzhaltermodelle für Einheiten, Materialien, Effekte, Debug-Anzeige statt HUD ([U2-WORLD.md](U2-WORLD.md)) |
|
||
| Offen | Windows-/Linux-Player (Build-Module); Leistungsspitzen (Batch-Import inzwischen erledigt, siehe unten) |
|
||
| Commits | `luneraria/u2`: U2A `49cb4af`, U2B `8a72cb1`, U2C `3871b3e`, U2D `323cc3a` |
|
||
|
||
### Batch-Import aller Modelle (nach U2D)
|
||
|
||
| Punkt | Ergebnis |
|
||
| --- | --- |
|
||
| Tests | Blender-Pipeline 1.616/1.616 und Unity-Verifier 1.247/1.247 (86 Modelle); zwei Exportläufe byteidentisch. Test Runner EditMode 11/11, PlayMode 2/2 mit allen Modellen |
|
||
| Parität | Vertical Function Test mit allen Modellen: Seed 2 `DCE95C96556F3A1A` (12.690 Schritte), Seed 9 ab Runde 21 `7B8E43AEFC0D60C5` (4.195 Schritte), beide gleich dem Kern; Szene bei 30, 60, 120 fps und unbegrenzt gleich |
|
||
| Bild | `screenshots/u2a-batch/<Gruppe>.png` (Kontaktbögen aller Modelle), `screenshots/u2a-batch/01-…` bis `14-…` (Partie mit allen Modellen) |
|
||
| Leistung | macOS-Player mit allen Modellen, 116 Einheiten: 158–160 fps (Mid-Lane 205–207). Hauptthread 2,5 ms, Render-Thread 3,2 ms, etwa doppelt so viel wie mit dem Platzhalter. Present-Ausreißer kürzer (p95 18 statt 24 ms). Player 228 MB |
|
||
| Befund | Projekt liegt in iCloud Drive; Konfliktkopien im Build-Cache machten den Player unbrauchbar. `LunePlayerBuild` fängt das ab ([U2-WORLD.md](U2-WORLD.md)) |
|
||
| Bekannte Unterschiede | keine Verhaltensunterschiede; starre Figuren ohne Godots prozedurale Gliederbewegung |
|
||
| Offen | Draw Calls messen (U5); Windows-/Linux-Player (Build-Module) |
|
||
| Commit | `luneraria/u2`: Batch-Import `3ca38a8` (Modelle direkt in Git) |
|
||
|
||
## U3 · G3-HUD portieren
|
||
|
||
| Punkt | Ergebnis |
|
||
| --- | --- |
|
||
| Tests | EditMode 23/23 (Kern 402 Prüfungen, Sichtmodell, Bildraten-Logik). PlayMode 13/13: Verify A–I **718 Prüfungen, 0 Fehler** (Port von `verify_g3` 715/715 plus Teil I), Szene bei echten Bildraten, Vertical Function Test, Capture, UI-Toolkit-Probe. Bildwerkzeuge und Spieltest sind `Explicit`. Protokolle `logs/u3/`, Summen `tools/out/hud-verify-*.txt` |
|
||
| Parität | Bot-Partie Seed 2 `DCE95C96556F3A1A` (12.690 Schritte), Seed 9 ab Runde 21 `7B8E43AEFC0D60C5` (4.195 Schritte), beide unverändert gleich dem Kern |
|
||
| Bild | `screenshots/u3/motive-1920x1080/` (14 G3-Motive), dieselben als JPEG in `motive-1280x720/`, `motive-2560x1080/`, `motive-2560x1440/` (Nachtrag), `pruefung/` (Teile B–F), `aufloesungen/` (1152×720 … 2560×1440), `spieltest/` (Wellen 1–8) |
|
||
| Leistung | macOS-Player mit HUD, 116 Einheiten: 169 fps (Übersicht) und 218 fps (Mid nah). HUD-Skripte **0,090 bzw. 0,078 ms je Bild**; Simulation 0,09/0,04 ms, Ansichten 0,31/0,33 ms. Ausreißer beim Present (p95 10–13 ms) im Rahmen der U2D-Streuung. Rohdaten `logs/u3/player-benchmark-macos.json` |
|
||
| Bekannte Unterschiede | Godots deklarierte Schriftgewichte werden in der Referenz nie angewendet (String-Schlüssel „wght“); Port zeigt wie G3 Regular 400. Kein Hauptmenü, kein Grottenlicht. Details [U3-UI.md](U3-UI.md) und [KNOWN-BEHAVIOR-DIFFERENCES.md](KNOWN-BEHAVIOR-DIFFERENCES.md) |
|
||
| Nachtrag (7. Oktober 2026) | Spieltest über die echte Oberfläche: Wellen 1–8 gespielt, Ende in der Planung von Welle 9 (`logs/u3/playtest-log.txt`). Tooltip-Wertzeilen ohne Umbruch wie Godots `GridContainer`. Die im U3D-Commit genannten Motivsätze in drei weiteren Auflösungen nachgeholt (vom U3-Stand `e2aadcb`). Befund für U4: Startbildschirm nicht in der Szene eingebunden (behoben im U4-Nachtrag) |
|
||
| Offen | Hauptmenü und Netzwerk (U4); Schriftgewichte, Grottenlicht und weitere Darstellung (U5); Windows-/Linux-Player (Build-Module) |
|
||
| Commits | `luneraria/u3`: U3A `4dee9b1`, U3B/U3C `2b86c0d`, U3D `66867f3`; Nachtrag `luneraria/u3-nachtrag` = `527f7c5` (auf U5.2) |
|
||
|
||
## U4 · Netzwerk
|
||
|
||
| Punkt | Ergebnis |
|
||
| --- | --- |
|
||
| Tests | Protokoll `NetSuite` **43/43** (Port von `test_lune_net.gd`), Mehr-Runden-Loopback `NetRoundsSuite` **12/12** (Port von `net_rounds.py`, In-Prozess mit `LuneLoopback`), `LuneWireTests` Round-trip. EditMode 29/29, PlayMode 13/13, Kerntests .NET 457/457 (402 + 43 + 12) |
|
||
| Parität | Bot-Partien unverändert `DCE95C96556F3A1A`, `7B8E43AEFC0D60C5`; Mindestumfang M4 erfüllt (Ready, private Planung, Bot-Übernahme, Wiedereinstieg, Snapshots, Revanche, Disconnect, sechs Plätze) |
|
||
| Bild | Startbildschirm `LuneMainMenu` (Offline/Hosten/Beitreten), sichtbar erst seit dem Nachtrag: `screenshots/u4/startbildschirm/` (macOS-Player: Startbildschirm, Planung, Kampf, Verlassen-Dialog, zurück im Startbildschirm, zweite Partie); Partiefenster unverändert U3 |
|
||
| Leistung | keine eigenen Netz-Messungen; Rahmen 20/s wie in der Referenz (`LuneNet.FrameInterval` 0,05 s), 13 Floats je Einheit |
|
||
| Bekannte Unterschiede | TCP statt ENet (Rahmen auf demselben Socket, Verwerfen über Serial); Zwei-Prozess-Loopback als In-Prozess-Test; vereinfachtes Hauptmenü; „Menü“ fragt vor der Rückkehr (Godot kehrt sofort zurück) |
|
||
| Nachtrag (7. Oktober 2026) | Startbildschirm in der Szene: `LuneWorldBuilder` legt `LuneNetPlay` an, das Menü hat eine eigene Fläche über dem HUD, „Menü“ → „Zum Menü“ führt zum Startbildschirm zurück. Tests und Benchmark ohne Startbildschirm (`LuneMatchDriver.DirectStart`, `-luneBenchmark`). EditMode 29/29, PlayMode 14/14 mit neuem `StartScreenTests` (26/26), Verify 718/0, Fingerabdrücke unverändert. macOS-Player-Selbsttest `-luneSmoke` 26/26 (`logs/u4/smoke-macos.json`, Bilder `screenshots/u4/startbildschirm/`). Bestätigungslauf am 8. Oktober auf dem Endstand bei offenem Mac: EditMode 29/29, PlayMode 14/14 in einem Zug. Leistung A/B gegen U5.2 (`1b31f9b`), je drei Läufe abwechselnd: Übersicht 111,0–113,9 zu 112,5–114,5 fps, Mid nah 145,2–148,9 zu 146,7–150,0 fps, HUD 0,09–0,11 ms. Die Mittelwerte liegen 0,3 bzw. 1,1 % auseinander, innerhalb der Streuung; kein messbarer Unterschied (`logs/u4/benchmark-ab/`). Details [U4-NETWORK.md](U4-NETWORK.md#nachtrag-startbildschirm-in-der-szene-7-oktober-2026) |
|
||
| Offen | Windows-/Linux-Player (Build-Module); Internetpartie über mehrere Rechner; optional unzuverlässiger Rahmenkanal |
|
||
| Commits | `luneraria/u4` `769e622`; Nachtrag `luneraria/u4-nachtrag` = `d590fde` (auf U5.2), Bestätigung und Benchmark im Commit danach; in `luneraria/u5.3` zusammengeführt (`c62a1f4`), Szene dort neu gebaut, EditMode 29/29, PlayMode 14/14, Player-Selbsttest 26/26 (`logs/u4/smoke-macos-u5.3.json`) |
|
||
|
||
## U5 · Visuelle Neuausrichtung (Vertical Slice)
|
||
|
||
| Punkt | Ergebnis |
|
||
| --- | --- |
|
||
| Tests | EditMode 29/29, PlayMode 13/13, Kerntests .NET 457/457. Keine Regeländerung; Fingerabdrücke der Bot-Partien unverändert |
|
||
| Parität | Golden 51.221 Werte unverändert, 0 Abweichungen; Darstellung liest nur |
|
||
| Bild | `screenshots/u5/mid-lane-*.png` (Übersicht, Türme, Ancient, Grotte, Weitwinkel); Vergleich mit `../saumwacht-godot/docs/luneraria/screenshots/g3/vorher-1920x1080/` und `zwischenstand-1920x1080/` |
|
||
| Leistung | macOS-Player mit PBR+Nebel+VFX, 116 Einheiten: 132 fps (Übersicht), 182 fps (Mid nah). HUD 0,088 bzw. 0,077 ms je Bild. Gegenüber U3 −20…−25 % |
|
||
| Kartenqualität | entschieden und umgesetzt: **Weg 2 (Stufen)** — Zielqualität im Lankorridor (22 m), Randstufe (Farbe + Steinschicht) in Bergen und Kluft. Nachweis `screenshots/u5/edge-mountains.png`, `lane-and-edge.png`; Leistung `logs/u5/player-benchmark-stufen.json` (133 / 180 fps) |
|
||
| Bekannte Unterschiede | Stufen statt flächiger Zielqualität (harte Grenze je Knoten); Figuren ohne Künstler-Sculpts; keine Decals/Partikel; LOD/Draw Calls offen |
|
||
| Offen | restliche Zonen und Einheitenmodelle auf Zielqualität; Künstler-Sculpts; LOD und Atlanten |
|
||
| Commits | `luneraria/u5` `2c1686b` (Slice), `luneraria/u5.2` `7fa038a` (Stufen) |
|
||
|
||
## U5.3 · Gebäude, Boss, Ringborke und Bildbefund
|
||
|
||
| Punkt | Ergebnis |
|
||
| --- | --- |
|
||
| Tests | EditMode 29/29, PlayMode 13/13 (Verify A–I 718/0), Kerntests .NET 457/457 |
|
||
| Parität | Fingerabdrücke der Bot-Partien unverändert (`DCE95C96556F3A1A`, `7B8E43AEFC0D60C5`); Darstellung liest nur |
|
||
| Bild | `screenshots/u5.3/` (JPEG): alle drei Lanes, Rand und Weitwinkel; die 14 Kampfmomente des Vertical Function Test mit Einheiten, Held und Boss; die 14 G3-Motive mit HUD. Messung mit `tools/port/png_stats.py` |
|
||
| Befund | U5 war halb so hell und ohne Grün (Mid-Lane Helligkeit 0,27, Grün 0 %): doppelte Einfärbung durch die PBR-Albedos, Normal- und ORM-Karten als sRGB, 10:1-Streifen aus dem Backen, ein bleichender Treffer-Flash, Nebel 0,0085. Alle behoben; Mid-Lane jetzt 0,41–0,44 Helligkeit, 31–39 % Grün (U3: 0,45 / 27 %) |
|
||
| Leistung | A/B mit einem U5.2-Player unter gleicher Last: 91,4 gegen 93,8 fps (Karte), 124,9 gegen 125,3 fps (Mid nah), also kein messbarer Unterschied. Rohdaten `logs/u5.3/player-benchmark-u52-run*.json`, `-u53-run*.json` |
|
||
| Bekannte Unterschiede | keine im Verhalten; Einheitenmodelle weiter mit importierten Materialien, Sättigung unter Godot G3 (Look-Entscheidung) |
|
||
| Commits | `luneraria/u5.3` = `07fa457` |
|
||
|
||
## U5.4 · Figuren
|
||
|
||
| Punkt | Ergebnis |
|
||
| --- | --- |
|
||
| Tests | EditMode 29/29, PlayMode 14/14 (Verify A–I 718/0), Player-Selbsttest 30/30 (4 neue zur SSAO-Option) |
|
||
| Parität | Fingerabdrücke der Bot-Partien unverändert (`DCE95C96556F3A1A`, `7B8E43AEFC0D60C5`); Darstellung liest nur |
|
||
| Bild | `screenshots/u5.4/` (JPEG): Übersichtsbilder eingekleidet wie im Spiel, Lanes, 14 Kampfmomente, 14 G3-Motive mit HUD, Optionen mit SSAO-Schalter |
|
||
| Inhalt | Surface-Materialien für alle 146 Figurenmaterialien (Metalle metallisch, Randlicht 0,35, Oberflächenstruktur nur in den HUD-Porträts); Ringborkes 4k-Satz am Schnittholz (Korrektur aus U5.3); SSAO standardmäßig an, abschaltbar; Steinkarte nur für Gelände, Stein, Pflaster und Erde |
|
||
| Leistung | A/B gegen U5.3 im selben Lauf: Mid nah 177,7 → 148,5 fps (−16 %), Karte 127,8 → 111,5 fps (−13 %); ohne SSAO −3,5 / −4,5 %. Rohdaten `logs/u5.4/player-benchmark-*.json` |
|
||
| Bekannte Unterschiede | keine im Verhalten. Geometrie der Figuren unverändert (Probelauf mit Fasen ohne sichtbaren Gewinn); neue Formen bräuchten Sculpts oder lizenzierte Modelle |
|
||
| Commits | `luneraria/u5.4` = `4883d95` |
|
||
|
||
## U5.5 · Figurenpilot Kohlenbeißer (Meshy)
|
||
|
||
| Punkt | Ergebnis |
|
||
| --- | --- |
|
||
| Tests | EditMode 29/29, PlayMode 14/14 (6 Werkzeuge `Explicit`), Verify A–I 718/0, Player-Selbsttest 30/30, Kerntests .NET 457/457, FigureViewsTests 1/1 |
|
||
| Parität | Fingerabdrücke der Bot-Partien unverändert (`DCE95C96556F3A1A`, `7B8E43AEFC0D60C5`), `same_as_core` in beiden Vertical-Function-Läufen; Darstellung und Ersatzmodell lesen nur |
|
||
| Bild | `screenshots/u5.5/` und `u5.5-gpu/`: Figur allein (vorher/nachher), vier Spielmomente mit Phase-4 und Meshy (`spiel-vorher/`, `spiel-nachher/`), 14 Kampfmomente, `Characters.jpg`, `Units.jpg`, 14 G3-Motive |
|
||
| Inhalt | Meshy-Pipeline (`tools/meshy/`), Kohlenbeißer `g01` ersetzt das Phase-4-Modell (`"replaces"`), UV-Material mit Lava-Glut aus Albedo-Alpha, Schattenwurf ohne Normalen-Versatz (UV-Nähte), GPU-Batched-Skinning, Benchmark-Optionen `-luneBenchmarkRound`/`-luneBenchmarkArmy` |
|
||
| Leistung | Figuren-Stress (35× g01): Meshy −21 % Mid / −13 % Karte gegenüber Phase-4 (CPU-Skinning). GPU-Skinning hebt Mid um 7–27 % und entlastet Haupt-/Render-Thread. Standard-Partie ab Runde 21 ohne `g01` im Bild: drei Varianten ≤ 6 %. Rohdaten `logs/u5.5/ab55*-*.json` |
|
||
| Bekannte Unterschiede | keine im Verhalten. Geometrie und Textur der Figur wechseln (Meshy statt Phase-4); Anatomie/Gesicht/Haar aus dem generierten Modell, nicht aus Künstler-Sculpts. Lava-Glut pauschal (keine Emission-Map). Schatten der Figur nur mit Tiefen-Bias |
|
||
| Commits | `c386206` auf `luneraria/u5.5` |
|
||
|
||
## U5.5 · Lane-Fassung (LOD)
|
||
|
||
| Punkt | Ergebnis |
|
||
| --- | --- |
|
||
| Tests | EditMode 29/29, PlayMode 14/14 (Verify A–I 718/0), Player-Selbsttest 30/30, Asset-Prüfung 20/0 |
|
||
| Parität | Fingerabdrücke unverändert (`DCE95C96556F3A1A`, `7B8E43AEFC0D60C5`) |
|
||
| Inhalt | Kohlenbeißer mit Lane-Fassung (4.998 statt 20.714 Dreiecke, LODGroup aus dem Export), Porträts in voller Fassung |
|
||
| Leistung | Stresstest 35 Kohlenbeißer: Mid 109,8 → 120,2 fps (starr 133,3), Karte 93,9 → 103,8 fps (starr 106,4). Rohdaten `logs/u5.5-lod/` |
|
||
| Bild | `screenshots/u5.5-lod/` (Figur, vier Spielmomente, 14 Kampfmomente) |
|
||
| Commits | `f0d1e93` auf `luneraria/u5.5` |
|
||
|
||
## U5.5 · Schlackenklaue (g02)
|
||
|
||
| Punkt | Ergebnis |
|
||
| --- | --- |
|
||
| Tests | EditMode 29/29, PlayMode 14/14 (Verify A–I 718/0), Player-Selbsttest 30/30, Asset-Prüfung 20/0 |
|
||
| Parität | Fingerabdrücke unverändert (`DCE95C96556F3A1A`, `7B8E43AEFC0D60C5`) |
|
||
| Inhalt | Meshy-Figur für `g02` mit Lane-Fassung, 68 Credits; Werkzeuge nehmen aufgewertete Truppen (`LUNE_FIGURE`, `-luneBenchmarkArmy g02`) |
|
||
| Leistung | Stresstest 35 Schlackenklauen: Mid 152,5 → 135,8 fps, Karte 116,7 → 115,6 fps. Rohdaten `logs/u5.5-g02/` |
|
||
| Bild | `screenshots/u5.5-g02/` |
|
||
| Commits | `714d0c6` auf `luneraria/u5.5` |
|
||
|
||
## U5.5 · Schlackenwacht (g03)
|
||
|
||
| Punkt | Ergebnis |
|
||
| --- | --- |
|
||
| Tests | EditMode 29/29, PlayMode 14/14 (Verify A–I 718/0), Player-Selbsttest 30/30, Asset-Prüfung 20/0 |
|
||
| Parität | Fingerabdrücke unverändert (`DCE95C96556F3A1A`, `7B8E43AEFC0D60C5`) |
|
||
| Inhalt | Meshy-Figur für `g03` mit Lane-Fassung, 68 Credits |
|
||
| Leistung | Stresstest 35 Schlackenwachten: Mid 161,9 → 148,5 fps, Karte 124,5 → 124,5 fps. Rohdaten `logs/u5.5-g03/` |
|
||
| Bild | `screenshots/u5.5-g03/` |
|
||
| Commits | `4e2b6bc` auf `luneraria/u5.5` |
|
||
|
||
## U5.5 · Funkenlanze (g05)
|
||
|
||
| Punkt | Ergebnis |
|
||
| --- | --- |
|
||
| Tests | EditMode 29/29, PlayMode 14/14 (Verify A–I 718/0), Player-Selbsttest 30/30, Asset-Prüfung 24/0 |
|
||
| Parität | Fingerabdrücke unverändert (`DCE95C96556F3A1A`, `7B8E43AEFC0D60C5`) |
|
||
| Inhalt | Meshy-Figur für `g05` und die Heldin, Lanze als eigenes Modell an der rechten Hand, 110 Credits; Porträts aus gebackenem Netz (behebt leere Karten bei GPU-Skinning) |
|
||
| Leistung | Stresstest 38 Funkenlanzen gegen die Phase-18-Figur: Mid 128,6 → 147,6 fps, Karte 112,4 → 128,0 fps. Rohdaten `logs/u5.5-g05/` |
|
||
| Bild | `screenshots/u5.5-g05/` |
|
||
| Commits | `eddf49d` auf `luneraria/u5.5` |
|
||
|
||
## U5.5 · Glasballiste (g06)
|
||
|
||
| Punkt | Ergebnis |
|
||
| --- | --- |
|
||
| Tests | EditMode 29/29, PlayMode 14/14 (Verify A–I 718/0), Player-Selbsttest 30/30, Asset-Prüfung 20/0 |
|
||
| Parität | Fingerabdrücke unverändert (`DCE95C96556F3A1A`, `7B8E43AEFC0D60C5`) |
|
||
| Inhalt | Statisches Meshy-Modell mit dem angepassten Phase-19-Skelett und seinen Clips (`build_machine.py`), starre Bindung, 54 Credits |
|
||
| Leistung | Stresstest 36 Glasballisten gegen Phase 19: Mid 150,4 → 151,4 fps, Karte 117,8 → 132,8 fps. Rohdaten `logs/u5.5-g06/` |
|
||
| Bild | `screenshots/u5.5-g06/` |
|
||
| Commits | `aa77d0e` auf `luneraria/u5.5` |
|
||
|
||
## U5.5 · Aschenwerfer (g07)
|
||
|
||
| Punkt | Ergebnis |
|
||
| --- | --- |
|
||
| Tests | EditMode 29/29, PlayMode 14/14 (Verify A–I 718/0), Player-Selbsttest 30/30, Asset-Prüfung 20/0 |
|
||
| Parität | Fingerabdrücke unverändert (`DCE95C96556F3A1A`, `7B8E43AEFC0D60C5`) |
|
||
| Inhalt | Meshy-Figur für `g07` mit Lane-Fassung und Wurfbewegungen, 68 Credits |
|
||
| Leistung | Stresstest 36 Aschenwerfer: Mid 165,0 → 147,1 fps, Karte 124,1 → 126,8 fps. Rohdaten `logs/u5.5-g07/` |
|
||
| Bild | `screenshots/u5.5-g07/` |
|
||
| Commits | `91ea297` auf `luneraria/u5.5` |
|
||
|
||
## U5.5 · Kraterrufer (g08)
|
||
|
||
| Punkt | Ergebnis |
|
||
| --- | --- |
|
||
| Tests | EditMode 29/29, PlayMode 14/14 (Verify A–I 718/0), Player-Selbsttest 30/30, Asset-Prüfung 20/0 |
|
||
| Parität | Fingerabdrücke unverändert (`DCE95C96556F3A1A`, `7B8E43AEFC0D60C5`) |
|
||
| Inhalt | Meshy-Figur für `g08` mit Lane-Fassung, 68 Credits |
|
||
| Leistung | Stresstest 36 Kraterrufer: Mid 171,3 → 155,1 fps, Karte 123,5 → 136,2 fps. Rohdaten `logs/u5.5-g08/` |
|
||
| Bild | `screenshots/u5.5-g08/` |
|
||
| Commits | `eb8a537` auf `luneraria/u5.5` |
|
||
|
||
## U5.5 · Herdhüter (g09)
|
||
|
||
| Punkt | Ergebnis |
|
||
| --- | --- |
|
||
| Tests | EditMode 29/29, PlayMode 14/14 (Verify A–I 718/0), Player-Selbsttest 30/30, Asset-Prüfung 20/0 |
|
||
| Parität | Fingerabdrücke unverändert (`DCE95C96556F3A1A`, `7B8E43AEFC0D60C5`) |
|
||
| Inhalt | Meshy-Figur für `g09` mit Lane-Fassung und Zauberbewegungen, 68 Credits |
|
||
| Leistung | Stresstest 36 Herdhüter: Mid 163,5 → 156,8 fps, Karte 123,4 → 131,3 fps. Rohdaten `logs/u5.5-g09/` |
|
||
| Bild | `screenshots/u5.5-g09/` |
|
||
| Commits | `024937c` auf `luneraria/u5.5` |
|
||
|
||
## U5.5 · Sonnenesse (g10)
|
||
|
||
| Punkt | Ergebnis |
|
||
| --- | --- |
|
||
| Tests | EditMode 29/29, PlayMode 14/14 (Verify A–I 718/0), Player-Selbsttest 30/30, Asset-Prüfung 20/0 |
|
||
| Parität | Fingerabdrücke unverändert (`DCE95C96556F3A1A`, `7B8E43AEFC0D60C5`) |
|
||
| Inhalt | Meshy-Figur für `g10` mit Lane-Fassung, 68 Credits |
|
||
| Leistung | Stresstest 36 Sonnenessen: Mid 137,1 → 152,3 fps, Karte 110,6 → 126,8 fps. Rohdaten `logs/u5.5-g10/` |
|
||
| Bild | `screenshots/u5.5-g10/` |
|
||
| Commits | `02c8839` auf `luneraria/u5.5` |
|
||
|
||
## U5.5 · Basaltbastion (g04)
|
||
|
||
| Punkt | Ergebnis |
|
||
| --- | --- |
|
||
| Tests | EditMode 29/29, PlayMode 14/14 (Verify A–I 718/0), Player-Selbsttest 30/30, Asset-Prüfung 20/0 |
|
||
| Parität | Fingerabdrücke unverändert (`DCE95C96556F3A1A`, `7B8E43AEFC0D60C5`) |
|
||
| Inhalt | Meshy-Figur für `g04` statt der Phase-15-Figur, 68 Credits; damit alle zehn Glutpakt-Truppen umgestellt |
|
||
| Leistung | Stresstest 36 Basaltbastionen gegen Phase 15: Mid 136,9 → 125,5 fps, Karte 120,4 → 126,4 fps. Rohdaten `logs/u5.5-g04/` |
|
||
| Bild | `screenshots/u5.5-g04/` |
|
||
| Commits | `9e253f4` auf `luneraria/u5.5` |
|
||
|
||
## U5.5 · Gesamtprüfung Glutpakt-Heer
|
||
|
||
| Punkt | Ergebnis |
|
||
| --- | --- |
|
||
| Werkzeug | `ArmyViewsTests`: alle zehn Truppen und die Heldin in einer Partie, alt und neu (je 1/1) |
|
||
| Bild | `screenshots/u5.5-heer/vorher/`, `nachher/` |
|
||
| Befund | Größenrangfolge stimmt; Basaltbastion und Glasballiste deutlich größer; Meshy-Heer einheitlicher, in der Lane-Weite schwerer zu unterscheiden; Helligkeit gleich |
|
||
| Commits | `c144a96` auf `luneraria/u5.5` |
|
||
|
||
## U5.5 · Feinschliff
|
||
|
||
| Punkt | Ergebnis |
|
||
| --- | --- |
|
||
| Tests | EditMode 29/29, PlayMode 14/14 (Verify A–I 718/0), Player-Selbsttest 30/30, Asset-Prüfung ohne Fehler |
|
||
| Parität | Fingerabdrücke unverändert (`DCE95C96556F3A1A`, `7B8E43AEFC0D60C5`) |
|
||
| Inhalt | Aufrechte Haltung in Leerlauf und Gang für sechs Figuren (`calm`), Basaltbastion ×0,84, Glasballiste 1,9 m lang; keine Credits |
|
||
| Bild | `screenshots/u5.5-feinschliff/` |
|
||
| Commits | `dd78c8d` auf `luneraria/u5.5` |
|
||
|
||
## U5.5 · Zusammenführung
|
||
|
||
Die Glutpakt-Arbeit entstand als Kette aufeinander aufbauender Zweige (`luneraria/u5.5-pilot`, `-lod`, `-g02`, `-g03`, `-g05`, `-g06`, `-g07`, `-g08`, `-g09`, `-g10`, `-g04`, `-heer`, `-feinschliff`). Jeder Zweig enthält alle vorherigen; zusammengeführt ist sie als Meilensteinzweig `luneraria/u5.5` = `dd78c8d` (Stand `luneraria/u5.5-feinschliff`, ohne Merge-Commit, da linear). Die Einzelzweige wurden danach gelöscht; die Abschnitte oben nennen die Commits.
|
||
|
||
## H1 · Sylvara (erste Heldin des Champions-Konzepts)
|
||
|
||
| Punkt | Ergebnis |
|
||
| --- | --- |
|
||
| Tests | Kern .NET 500/500 (neu `h1` 42), EditMode 30/30, PlayMode 15/15 (neu `SylvaraHud`), Verify A–I 718/0 (eine G3-Prüfung auf vier Helden angepasst), Player-Selbsttest 30/30, Export 23/23 |
|
||
| Parität | Golden 51.221 Werte, 0 Abweichungen; Fingerabdrücke unverändert (`DCE95C96556F3A1A`, `7B8E43AEFC0D60C5`). Sylvara ist eine Ergänzung: kein Referenzszenario und kein Bot der Rotation kauft sie |
|
||
| Inhalt | Heldin mit Mondsprung, Sichelwurf, Mondsicheltanz; Ultimate-Auslöser in der Planung (`ultimate_rule`); Skin-System mit Blutmond (`hero_skin`, für alle sichtbar, ohne Regelwirkung); Meshy-Figur mit zwei Sicheln, Clips `leap`/`ultimate`, 116 Credits |
|
||
| Balance | Probesitz-Quote 50 % wie Ringborke und Funkenlanze (`logs/h1/balance-h1.txt`); Quellgeflecht 100 % ist Referenzbefund |
|
||
| Leistung | sechs Heldinnen auf dem Feld: Karte 136,1 zu 135,9 fps, Mid nah 159,2 zu 161,1 fps (Median) gegen die Funkenlanze-Heldin; kein messbarer Unterschied |
|
||
| Bild | `screenshots/h1/spiel/` (10 Motive 1920×1080), `figur/`, `ablauf/` |
|
||
| Bekannte Unterschiede | gewollte Erweiterung über die Referenz hinaus ([../luneraria/H1-SYLVARA.md](../luneraria/H1-SYLVARA.md)) |
|
||
| Commits | `luneraria/h1-sylvara` |
|
||
|
||
## S1 · Strategie-Regeln (Legion TD 2, Dota 2, League of Legends)
|
||
|
||
| Punkt | Ergebnis |
|
||
| --- | --- |
|
||
| Tests | Kern .NET 531/531 (neu `s1` 31), EditMode 31/31, PlayMode 16/16 (neu `S1Hud`), Verify A–I 718/0, Player-Selbsttest 30/30 |
|
||
| Parität | Referenzregeln unverändert Standard der Tests: Golden 0 Abweichungen, Fingerabdruck `DCE95C96556F3A1A` gleich; `s1` prüft, dass ohne `Extended` nichts wirkt |
|
||
| Inhalt | Söldner-Einkommen, Kasernen, Erschöpfung und Rückkauf, Mondsegen; Bots wählen Sylvara mit erweiterten Regeln; Regelschalter im Startbildschirm (Standard: erweitert) |
|
||
| Balance | 60 Bot-Partien je Regelwerk: Blau/Rot 30/30 zu 29/31, Ø Runden 10,7 zu 12,8, Sieg nach erstem Turm 40 zu 43 (`logs/s1/balance-s1.txt`) |
|
||
| Leistung | Karte 148,5–150,3 fps, Mid nah 170,1–171,7 fps, HUD 0,04–0,05 ms (`logs/s1/`) |
|
||
| Bild | `screenshots/s1/spiel/` |
|
||
| Commits | `luneraria/s1-strategie` (Basis: Merge H1 + U5.5 `2e05cbe`) |
|
||
|
||
## S2 · Glyphe, Rezepte, Ancient-Stufen (Dota 2, League of Legends, Legion TD 2)
|
||
|
||
| Punkt | Ergebnis |
|
||
| --- | --- |
|
||
| Tests | Kern .NET 566/566 (neu `s2` 34), EditMode 32/32, PlayMode 17/17 (neu `S2Hud`), Verify A–I 718/0 (Shop-Prüfung auf die Regeln im Spiel angepasst), Player-Selbsttest 30/30 |
|
||
| Parität | Referenzregeln unverändert: Golden 0 Abweichungen, Fingerabdruck `DCE95C96556F3A1A` gleich |
|
||
| Inhalt | Glyphe (Teamwahl einer Lane, 5 s unverwundbar unter 50 %, 4 Runden Abklingzeit nach Auslösen), vier Item-Rezepte, Ancient-Stufen 1–3 mit Reparatur und Schuss, Grottenjagd der Mid-Bots bei sicherer Lane |
|
||
| Balance | 60 Bot-Partien: Blau/Rot 30/30, Ø 12,1 Runden, erster Turm gewinnt 43/60, Mondsegen 25, Glyphen 128, Ancient-Stufen 50 (`logs/s2/balance-s2.txt`) |
|
||
| Leistung | Karte 148,4–150,1 fps, Mid nah 169,5–172,8 fps, HUD 0,04–0,05 ms (`logs/s2/`) |
|
||
| Bild | `screenshots/s2/spiel/` |
|
||
| Commits | `luneraria/s2-strategie` |
|
||
|
||
## S3 · Bots, Neutrallager, Fog of War
|
||
|
||
| Punkt | Ergebnis |
|
||
| --- | --- |
|
||
| Tests | Kern .NET 597/597 (neu `s3` 31), EditMode 33/33, PlayMode 18/18 (neu `S3Hud`), Verify A–I 718/0, Player-Selbsttest 30/30 |
|
||
| Parität | Referenzregeln unverändert: Golden 0 Abweichungen, Fingerabdruck `DCE95C96556F3A1A` gleich |
|
||
| Inhalt | Bots sparen für frühe Helden; Rotationsfehler der erweiterten Regeln behoben; halbes Champion-Kopfgeld; Neutrallager mit Glutsegen, Mondschild und Beute; Fog of War mit Spähern und Aufklärung in der Planungsvorschau |
|
||
| Balance | 120 gespiegelte Bot-Partien: Blau/Rot 57/63, Ø 9,0 Runden, erster Turm gewinnt 53/120 (Referenz 100/120), Sylvara 48/102 (`logs/s3/`) |
|
||
| Leistung | Karte 144,4–150,0 fps, Mid nah 167,4–172,2 fps, HUD 0,04–0,06 ms (`logs/s3/`) |
|
||
| Bild | `screenshots/s3/spiel/` |
|
||
| Commits | `luneraria/s3-strategie` (S3A `e756a90`) |
|
||
|
||
## H2 · Brunhild
|
||
|
||
| Punkt | Ergebnis |
|
||
| --- | --- |
|
||
| Tests | Kern .NET 619/619 (neu `h2` 22), EditMode 34/34, PlayMode 19/19 (neu `BrunhildHud`), Verify A–I 718/0 (Heldenwahl erwartet fünf Helden), Player-Selbsttest 30/30, Export 23/23 |
|
||
| Parität | Golden 0 Abweichungen, Fingerabdruck `DCE95C96556F3A1A` gleich; Markierung und Betäubung wirken nur durch Brunhild |
|
||
| Inhalt | Heldenjägerin, Speerwurf mit Markierung, Walkürensturz mit Betäubung und Schild, Talente, Auslöser, Skin Eiswalküre, Bot-Profil `walkuere`; Meshy-Figur mit Speer, 113 Credits |
|
||
| Balance | Probe-Vergleich 50 % wie die übrigen Helden (erste Fassung 0 %, `logs/h2/balance-h2-probe.txt`) |
|
||
| Leistung | A/B mit Sylvara: Karte gleich (141,4 / 141,9 fps), Mid nah −4 % (156,1 / 162,5) |
|
||
| Bild | `screenshots/h2/spiel/`, `figur/` |
|
||
| Commits | `luneraria/h2-brunhild` (H2A `cbff678`) |
|
||
|
||
## S4 · Feinschliff (Betäubung, Nebel im Gelände, Glyphe für Gäste)
|
||
|
||
| Punkt | Ergebnis |
|
||
| --- | --- |
|
||
| Tests | Kern .NET 627/627 (neu `s4` 8), EditMode 35/35, PlayMode 20/20 (neu `S4Views`), Verify A–I 718/0, Player-Selbsttest 30/30 |
|
||
| Parität | Golden 0 Abweichungen, Fingerabdruck `DCE95C96556F3A1A` gleich; alles Darstellung |
|
||
| Inhalt | Betäubungs-Ring (auch für Gäste über Bit 18 der Rahmen-Flags), Nebel-Gitter im Gelände (`LuneFogOverlay`, Shader `Luneraria/FogOverlay`), Glyphe im Kampfrahmen für Gäste |
|
||
| Leistung | Karte 148,6–151,5 fps, Mid nah 163,4–167,3 fps (Bot-Partie ohne Nebel); die Nebelkosten sind nicht gemessen |
|
||
| Bild | `screenshots/s4/spiel/` |
|
||
| Commits | `luneraria/s4-feinschliff` |
|
||
|
||
## Ausblick
|
||
|
||
Der Pilot entscheidet über eine Serie weiterer Meshy-Figuren (Kosten je Figur, Lizenz, Stilgleichheit). Offen bleiben außerdem Künstler-Sculpts für Anatomie/Gesicht/Haar, LOD und Material-Atlanten sowie die Build-Module für Windows und Linux.
|