- Heartbeat an die Website, Abmelden beim Beenden (--private, --public-address, --description, --master) - Spiel-Tickets pruefen (Signatur der Website), Name aus dem Konto, --no-auth fuer LAN - IPv4 und IPv6, Protokoll 2 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
58 lines
2.6 KiB
Markdown
58 lines
2.6 KiB
Markdown
# BSO Server
|
||
|
||
Dedizierter Server für **BSO – Bus Simulator Online** (Multiplayer-Mod für Bus-Simulator 2012).
|
||
|
||
- Mod: [BSO-Mod](https://git.mbm.wtf/MrMaho/BSO-Mod)
|
||
- Launcher: [BSO-Launcher](https://git.mbm.wtf/MrMaho/BSO-Launcher)
|
||
- Website, Konten und Releases: [BSO-Website](https://git.mbm.wtf/MrMaho/BSO-Website)
|
||
|
||
Nimmt Spieler an (Hello → Welcome), merkt sich den letzten Zustand jedes Spielers und reicht ihn an alle anderen
|
||
weiter. Eine einzige Schleife fragt alle Verbindungen ab – ohne Sperren. Protokoll wie bei MSCO:
|
||
`[int Länge][byte Typ][Daten]` über TCP.
|
||
|
||
`Shared\*.cs` (Protokoll, `PacketReader`, `Connection`) sind **dieselben Dateien wie in BSO-Mod** – bei Änderungen in
|
||
beiden Repos gleich halten und bei inkompatiblen Änderungen `Protocol.Version` erhöhen.
|
||
|
||
## Starten
|
||
|
||
Voraussetzung: .NET 10 Runtime.
|
||
|
||
```powershell
|
||
BSO.Server.exe --bot # Port 7777, mit Testbot
|
||
BSO.Server.exe --port 7777 --name "Mein Server" --max 8
|
||
BSO.Server.exe --probe host[:port] # Test: verbindet sich wie die Mod, zeigt was ankommt
|
||
```
|
||
|
||
Für Spieler von außen Port **7777/TCP** im Router/Firewall freigeben.
|
||
|
||
| Option | |
|
||
|---|---|
|
||
| `--name`, `--description` | Anzeige im Server-Browser |
|
||
| `--max` | Maximale Spielerzahl (Standard 8) |
|
||
| `--private` | Nicht in der Serverliste – Beitritt nur per Adresse |
|
||
| `--public-address host` | Adresse für die Serverliste (hinter NAT/Proxy oder wenn die Website im selben Netz läuft) |
|
||
| `--master url` | andere Website (Standard `https://bso.mbm.wtf`, Tests: `http://localhost:5080`) |
|
||
| `--no-auth` | Spieler brauchen kein BSO-Konto (LAN, Tests) |
|
||
| `--bot` | Testbot |
|
||
|
||
**Serverliste:** Der Server meldet sich jede Minute bei der Website, beim `stop` ab. Gelistet wird er erst, wenn die
|
||
Website ihn von außen erreicht (sie fragt ihn wie die Mod ab) – das Log sagt, ob es geklappt hat.
|
||
|
||
**BSO-Konto:** Spieler brauchen ein Spiel-Ticket aus dem Launcher (signiert von der Website, 24 h gültig). Der Server
|
||
prüft die Signatur mit dem öffentlichen Schlüssel der Website (`ticket-key.xml` wird zwischengespeichert), der Name
|
||
im Spiel kommt aus dem Konto. Ein Konto kann nur einmal gleichzeitig auf einem Server sein.
|
||
|
||
| Konsole | |
|
||
|---|---|
|
||
| `status` | Spieler mit Position, Modus und Tempo |
|
||
| `bot` | Testbot an/aus – fährt als „Bus“ 30 km/h Kreise (20 m) um den ersten Spieler |
|
||
| `kick <id> [grund]` | Spieler entfernen |
|
||
| `stop` | Server beenden |
|
||
|
||
## Bauen
|
||
|
||
```powershell
|
||
dotnet publish -c Release -o publish
|
||
.\release.ps1 -Product server -Version 0.2.0 -File BSO-Server.zip -Changelog "..."
|
||
```
|