Vollständiger, engineunabhängiger Regelkern (Luneraria.Core, ohne UnityEngine): Partie mit sechs Plätzen und zwei Teams, private Planung mit atomarer Übernahme, Gold, Käufe, Aufwertungen, Formation, drei Lanes mit zwei Laneturmen und zwei Basistürmen je Team, Ancients, unbegrenzte Wellen, Helden mit Stufen, Items und Talenten, Angriffschampions, Bossgrotte mit Anspruch, Entsendung, Kopfgeld und dreirundiger Sperre, Bots und Siegbedingung (nur Ancient-Fall). Serverautoritative Befehlsschnittstelle. - Deterministisch: fester Takt, geordnete Maps, fortlaufende IDs, kein Zufall, keine Uhr, keine Threads - Tabellen einmal aus Godot erzeugt (tools/port/gen_content.py) - Golden-Referenzen aus Godot (tools/godot-golden): 19 Szenarien, 120 Snapshots, 51.221 Werte, Abweichung 0 (Toleranzen dokumentiert) - Tests: content 75, core 91, m2 73, golden 157, determinism 6 = 402/402 - Leistung (M5): Simulationsschritt 0,259 ms statt 1,587 ms in GDScript - Referenzfehler R1 im Bot-Gedächtnis bewusst übernommen und dokumentiert - Geplante Helden (Lucy, Ghaliga, Siegfried, Feena) im Datenmodell, inaktiv - Doku unter docs/port (U1-RULES, PORT-STATUS, PORT-QA, U2 bis U5) Unity-Editor-Lauf offen: Die Unity-Lizenz ist noch nicht aktiviert; gebaut und getestet mit dem .NET 8 SDK auf Unitys Sprachstand (C# 9, .NET Standard 2.1). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
51 lines
2.3 KiB
Markdown
51 lines
2.3 KiB
Markdown
# U2 · Unity-Spielwelt
|
||
|
||
Stand: 30. September 2026 · **nicht begonnen**.
|
||
|
||
Voraussetzungen: U1 grün (erfüllt außerhalb von Unity) und aktive Unity-Lizenz (fehlt).
|
||
|
||
## Ziel
|
||
|
||
Die bestehende Partie läuft sichtbar in Unity (URP). Das ist noch keine grafische Neugestaltung.
|
||
|
||
Zuerst kommen:
|
||
- die G1-Drei-Lane-Karte,
|
||
- die G2-Türme (Grenzwacht, Bastion, Kernwacht),
|
||
- die G2-Ancients,
|
||
- die Bossgrotte und die Schlundkrone,
|
||
- repräsentative vorhandene Einheiten.
|
||
|
||
## Vorgaben
|
||
|
||
- **Adapter:** Unity treibt `LuneMatch` im festen Takt (0,05 s) über einen Akkumulator, unabhängig von der Bildrate. Ansichten lesen nur; sie schreiben nie in die Regeln.
|
||
- **Gemeinsames Materialsystem** (URP, Shader Graph oder HLSL): Stein, Metall, Holz, Vegetation, Kristall, Runen, Wasser. Die G2-Shader aus Godot (stone, metal, crystal, rune, cloth, vein, water_glow, hide) dienen als fachliche Vorlage. Automatische Materialkonvertierungen werden nicht ungeprüft übernommen.
|
||
- **Assets:** Quelle sind die Blender-Dateien und Generatoren im Referenz-Repository. Ein zentraler, reproduzierbarer Blender-Export erzeugt FBX für Unity; GLB nur, wo keine bearbeitbare Quelle existiert.
|
||
|
||
## Bestand an Quellen (Godot-Referenz)
|
||
|
||
| Gruppe | GLB | Blender-Quelle |
|
||
| --- | ---: | --- |
|
||
| Truppen, Monster, Sendungen (`assets/models`) | 59 | `assets-source/phase4/blend` (59 `.blend`) |
|
||
| Figuren mit Skelett (`assets/characters`) | 6 | `assets-source/phase10`–`phase19` (je ein `.blend` plus Generator) |
|
||
| G2-Bauwerke, Grotte, Schlundkrone (`assets/luneraria/g2`) | 6 | `assets-source/luneraria/g2` (`.blend` plus Generatoren) |
|
||
| Völker (`assets/luneraria/peoples`) | 7 | `assets-source/luneraria/peoples` |
|
||
| Umgebung, Vergleich, übrige | 11 | teilweise; wird im Exportinventar geklärt |
|
||
|
||
## Prüfpunkte der Pipeline
|
||
|
||
- Maßstab (1 Einheit = 1 m) und Achsen (Godot Y-oben/−Z-vorn gegenüber Unity Y-oben/+Z-vorn).
|
||
- Root Bone und Bone-Namen.
|
||
- Clip-Namen: idle, walk, attack_a, attack_b, hit, ability, death, roar, victory.
|
||
- Animation Events.
|
||
- Materialslots.
|
||
- Normalen und Tangenten.
|
||
- Blend Shapes, sofern vorhanden.
|
||
|
||
## Abnahme
|
||
|
||
- Die Partie läuft sichtbar.
|
||
- Die Kamera entspricht der Godot-Kamera.
|
||
- Screenshots neben den Godot-G2-Bildern mit vergleichbarer Kamera.
|
||
- Leistung gemessen, einschließlich Mono-Simulationszeit.
|
||
- Bekannte Unterschiede dokumentiert.
|
||
- Commit auf `luneraria/u2`.
|