Das echte Spiel umging die Sitzung bisher bei Bereitschaft, Startaufstellung und Rückgängig, ließ Bots den Gast-Sitz planen und den Gast selbst simulieren. Jetzt rechnet nur der Host; Gäste zeigen den Kampf aus Momentaufnahmen. Dazu Protokollversion, Wiedereinstieg über den Anzeigenamen, verbindliches Bereit, Entwurfs-Privatsphäre und Bot-Planung einmal pro Runde. Geprüft: test_lune_net 43/43, net_rounds.py 12/12 (5 Runden, Wiedereinstieg, gleiche Prüfsummen), Regeln 91/91, M2 73/73, verify_m1 38/38, verify_m2 14/14. Offen und eingefroren: OpenGL-Modus, nativer Windows-11-Test, Demo-Neubau. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
92 lines
5.7 KiB
Markdown
92 lines
5.7 KiB
Markdown
# Installation, Start, Steuerung und Export
|
||
|
||
## Start aus dem Quellprojekt (Fedora 44)
|
||
|
||
```bash
|
||
cd saumwacht-godot
|
||
godot --path . # Champions of Luneraria (Hauptszene scenes/luneraria.tscn)
|
||
godot --path . -- --legacy # archivierter Saumwacht-Modus (scenes/main.tscn)
|
||
```
|
||
|
||
Voraussetzung ist Godot 4.7.2. Blender wird nur zum Neuerzeugen von Assets gebraucht, nicht zum Spielen.
|
||
|
||
## Eine Partie
|
||
|
||
1. **Neue Partie** → Bund (Glutpakt oder Wurzelbund) und deine Lane (Top, Mid, Bottom) wählen → **Partie beginnen**. Du spielst in Team Blau (Südwest) mit zwei Bot-Verbündeten gegen drei Bots in Team Rot.
|
||
2. **Planung:** Truppen kaufen (Knöpfe oder 1–5), mit T/M/B einer Lane zuweisen, mit ↑ aufwerten, mit × zurückgeben. Käufe aus derselben Planung werden voll erstattet, ältere mit 75 %. **Startaufstellung** kauft Front, Nahkampf und Fernkampf. **Bereit** (Leertaste) übernimmt alle Befehle verbindlich.
|
||
3. **Kampf:** Er läuft automatisch. Deine Truppen rücken mit der eigenen Monsterwelle über ihre Lane vor. Leertaste oder P pausiert, Tempo 1×/2×/4×.
|
||
4. **Abrechnung:** Getötete Monster und Gebäude bringen Gold, dazu kommt das Rundeneinkommen. Deine Truppen kehren geheilt zurück. Türme und Kerne behalten ihren Schaden.
|
||
5. Die Partie endet erst, wenn ein Ancient fällt. Es gibt kein Rundenlimit.
|
||
|
||
## Steuerung
|
||
|
||
| Eingabe | Wirkung |
|
||
| --- | --- |
|
||
| 1–5 | Truppe kaufen (Planung) |
|
||
| Leertaste | Bereit / im Kampf Pause |
|
||
| P | Pause |
|
||
| WASD, Pfeiltasten, mittlere Maustaste ziehen | Kamera verschieben |
|
||
| Mausrad | Zoom |
|
||
| Tab / Lane-Knöpfe links | Kamera auf die nächste Lane |
|
||
| O | Kartenübersicht |
|
||
| Minimap klicken/ziehen | Kamera springt dorthin |
|
||
| F1 | Optionen und Steuerung |
|
||
| M / F11 | Ton / Vollbild |
|
||
|
||
## Prüfungen
|
||
|
||
```bash
|
||
godot --headless --path . res://tests/luneraria/test_lune_core.tscn # Regeln M1 (91, inkl. Spiegeltest)
|
||
godot --headless --path . res://tests/luneraria/test_lune_m2.tscn # Regeln M2 (73)
|
||
godot --headless --path . res://tests/luneraria/test_lune_net.tscn # Netzwerkprotokoll (43)
|
||
python3 tools/luneraria/net_rounds.py # Host + 2 Gäste, 5 Runden, Wiedereinstieg
|
||
godot --path . --resolution 1280x720 res://tools/luneraria/verify_m1.tscn # echte Bedienung, volle Partie (38)
|
||
godot --path . --resolution 1920x1080 res://tools/luneraria/verify_m2.tscn # Helden, Items, Grotte, Boss (15)
|
||
godot --headless --path . res://tools/luneraria/sim_match.tscn -- --seeds=1,2,3 --limit=80
|
||
godot --headless --path . res://tools/luneraria/balance_run.tscn -- --compositions=20 --limit=60 --out=res://docs/luneraria/logs/m3/balance.json
|
||
godot --headless --path . res://tools/luneraria/balance_run.tscn -- --matchups --limit=60 --out=res://docs/luneraria/logs/m3/matchups.json
|
||
python3 tools/luneraria/analyze_balance.py docs/luneraria/logs/m3/balance.json
|
||
godot --headless --path . res://tools/luneraria/stress_run.tscn # Wellen bis 10^6, Langlauf
|
||
godot --path . res://tools/luneraria/people_lineup.tscn -- --out=res://docs/luneraria/screenshots
|
||
godot --path . --resolution 1920x1080 res://tools/luneraria/lune_benchmark.tscn
|
||
godot --path . --resolution 1920x1080 res://tools/luneraria/lune_review.tscn # Aufnahmen
|
||
# Legacy (Saumwacht) unverändert:
|
||
godot --headless --path . res://tests/test_runner.tscn
|
||
godot --headless --path . -- --smoke-test
|
||
godot --headless --path . -- --faction-test
|
||
godot --headless --path . -- --expedition-test
|
||
```
|
||
|
||
`verify_m1` und `verify_m2` brauchen ein Fenster (echte Maus-/Tastaturereignisse), nicht `--headless`.
|
||
|
||
## Assets neu erzeugen
|
||
|
||
```bash
|
||
ALSOFT_DRIVERS=null blender -b --python-exit-code 1 --python assets-source/luneraria/build_tower.py
|
||
ALSOFT_DRIVERS=null blender -b --python-exit-code 1 --python assets-source/luneraria/build_grotto.py
|
||
ALSOFT_DRIVERS=null blender -b --python-exit-code 1 --python assets-source/luneraria/build_map_props.py
|
||
ALSOFT_DRIVERS=null blender -b --python-exit-code 1 --python assets-source/luneraria/build_peoples.py
|
||
python3 tools/luneraria/build_asset_matrix.py
|
||
godot --headless --editor --import --path .
|
||
```
|
||
|
||
## Export
|
||
|
||
```bash
|
||
python3 tools/luneraria/build_luneraria_demo.py --check-only
|
||
python3 tools/luneraria/build_luneraria_demo.py
|
||
```
|
||
|
||
Erzeugt `../dist/luneraria/ChampionsOfLuneraria-Linux-x64-<ver>.zip` und `…-Windows-x64-<ver>.zip` (Produktname Champions of Luneraria). Alte Saumwacht-Releases unter `../dist/Saumwacht-*.zip` bleiben unverändert. `tools/build_demo.py` baut weiterhin Saumwacht 0.15.0.
|
||
|
||
**Netzwerk (experimentell, pausiert):** Im Setup *Hosten* oder *Beitreten* mit Anzeigename, Adresse und Port (Standard 24571). Der Host ist autoritativ und rechnet den Kampf; Gäste sehen ihn über Momentaufnahmen. Freie Plätze sind Bots, bis jemand beitritt. Tempo, Pause und Revanche bestimmt der Host. „Bereit“ ist verbindlich. Ein Disconnect wird von einem Bot übernommen und ist kein Kernverlust; wer sich mit demselben Anzeigenamen wieder verbindet, bekommt seinen Platz zurück. Getestet sind Protokollchecks und ein lokaler Loopback über fünf Runden mit Wiedereinstieg – keine verifizierte Internetpartie auf sechs Rechnern, kein OpenGL- und kein Windows-11-Test. Kein Matchmaking, keine Hostmigration.
|
||
|
||
```bash
|
||
godot --headless --path . res://tools/luneraria/net_pair.tscn -- --role=host --rounds=4 &
|
||
godot --headless --path . res://tools/luneraria/net_pair.tscn -- --role=client --name=Gast --rounds=4
|
||
# mit Fenster und Gast-Aufnahmen: ohne --headless, Host mit --steps=0, Gast mit --shots=<Ordner>
|
||
```
|
||
|
||
## Benutzereinstellungen
|
||
|
||
Der neue Projektname legt einen neuen Benutzerordner an (`~/.local/share/godot/app_userdata/Champions of Luneraria`). Beim ersten Start übernimmt `Preferences` einmalig die `preferences.cfg` aus „Saumwacht · Glutpakt“. Die alte Datei bleibt unverändert; fehlt sie, gelten die Standardwerte.
|