0.5.0: Lobby ueber das BSO-Relay (ohne Portfreigabe)

- Server relay:<Lobby> verbindet per WebSocket ueber eine lokale Bruecke (RelayClient)
- Ticket mit Lobby, Anzeige 'Lobby von ...'
- Nach Szenenwechsel Mitspieler-Modelle erst nach 3 s neu anlegen

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-28 19:30:20 +01:00
co-authored by Claude Opus 5.5
parent 1dca505e3c
commit 8a1329f5fa
9 changed files with 170 additions and 21 deletions
+9 -7
View File
@@ -4,12 +4,12 @@ Multiplayer-Mod für **Bus-Simulator 2012** (European Bus Simulator 2012, TML-St
eigenständiger Loader im Spielordner, die Mod selbst in C# (.NET 10).
- Mod: dieses Repository
- Dedizierter Server: [BSO-Server](https://git.mbm.wtf/MrMaho/BSO-Server)
- Lobby-Server (ohne Portfreigabe): [BSO-Relay](https://git.mbm.wtf/MrMaho/BSO-Relay)
- Launcher (installiert und aktualisiert die Mod): [BSO-Launcher](https://git.mbm.wtf/MrMaho/BSO-Launcher)
- Website, Konten und Releases: [BSO-Website](https://git.mbm.wtf/MrMaho/BSO-Website)
- Website, Konten, Freunde, Lobbys, Releases: [BSO-Website](https://git.mbm.wtf/MrMaho/BSO-Website)
**Stand:** Spieler verbinden sich per IP mit einem Server und sehen die anderen als Liste (Name, zu Fuß/Bus,
Entfernung, Tempo). Als Nächstes kommen sichtbare Busse der Mitspieler in der Welt.
**Stand:** Freunde spielen zusammen in einer Lobby – der Server läuft im BSO-Relay, die Mod verbindet sich per WebSocket,
niemand braucht eine Portfreigabe. Mitspieler erscheinen als Bus bzw. Spielfigur mit Namensschild in der Welt.
## Wie es funktioniert
@@ -24,7 +24,8 @@ Entfernung, Tempo). Als Nächstes kommen sichtbare Busse der Mitspieler in der W
| `Config.cs` | `BSO.json` (Name, Server, AutoConnect) | – |
| `PositionHud.cs` | Anzeige im Spiel | `Overlays.cs` |
| `BorderlessWindow.cs` | Vollbild im Fenster (F11) | – |
| `Shared\*.cs` | Protokoll, `PacketReader`, `Connection`/`FrameParser` – **gleiche Dateien wie in BSO-Server** | `NetSession.cs` |
| `RemotePlayers.cs`, `Models.cs` | Mitspieler als Bus/Spielfigur in der Welt, Namensschild | `RemotePlayer.cs` |
| `Shared\*.cs` | Protokoll, `Connection`, `Ticket`, `RelayClient` (WebSocket-Brücke) – **gleiche Dateien wie in BSO-Relay** | `NetSession.cs` |
- **Bild-Takt:** Das Spiel fragt die Tastatur mehrmals pro Bild über DirectInput ab. Der Loader hängt sich dort ein
und ruft `Bootstrap.OnFrame` im Hauptthread auf. Gerechnet wird, wenn die Engine-Uhr weiterläuft; Text wird bei
@@ -82,5 +83,6 @@ Protokoll: `Bin_High_Win64\BSO\BSO_Loader.txt`
1. ~~Mod lädt, Busposition anzeigen~~
2. ~~Netzwerk: Server + Positionen austauschen, Mitspieler als Text~~
3. Mitspieler-Busse in der Welt (`VisGame_cl::CreateEntity`), Namensschild mit `VisMessage_cl::DrawMessage3D`
4. Chat, Konsole, Steam-P2P, Serverliste
3. ~~Mitspieler-Busse in der Welt, Namensschild~~
4. ~~Konten, Freunde, Lobby ohne Portfreigabe (BSO-Relay)~~
5. Direkt ins Spiel laden, Chat, Türen/Lichter