Kein eigener Server-starten-Knopf mehr: playLobby schaltet beim Ersteller den Lobby-Server ein und startet das Spiel, die anderen koennen spielen, sobald er laeuft. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3.5 KiB
BSO Launcher
Launcher für BSO – Bus Simulator Online (Multiplayer-Mod für Bus-Simulator 2012), aufgebaut wie der MSCO Launcher:
WinForms-Fenster mit WebView2, die Oberfläche (ui\) ist in der .exe eingebettet.
- Mod: BSO-Mod
- Lobby-Server (ohne Portfreigabe): BSO-Relay
- Website, Konten, Freunde, Lobbys, Releases: BSO-Website
Features
- Installation wie Discord: Die heruntergeladene
BSO-Launcher.exeinstalliert sich selbst – ohne Admin-Rechte nach%LocalAppData%\Programs\BSO Launcher, mit Verknüpfungen auf dem Desktop und im Startmenü und einem Eintrag unter Einstellungen → Apps.--portablestartet ohne Installation. - BSO-Konto: Registrieren und Anmelden bei der BSO-Website. Die Anmeldung bleibt 30 Tage (Token DPAPI-verschlüsselt). Der Kontoname ist der Name im Spiel.
- Auto-Update: neueste Mod-Version vor jedem Start (abschaltbar), Selbst-Update des Launchers mit einem Klick. Downloads sind fortsetzbar, SHA-256-geprüft und müssen mit dem BSO-Release-Schlüssel signiert sein.
- Prüft alles: Spielordner (alle Steam-Bibliotheken), BSO-Version, .NET 10 Runtime (braucht die Mod).
- Freunde & Lobby: Freunde per Benutzername hinzufügen (online-Anzeige), Lobby erstellen, einladen - SPIELEN des Erstellers startet den Lobby-Server. Der Server läuft im BSO-Relay – niemand hostet, niemand braucht eine Portfreigabe.
- SPIELEN: holt ein Spiel-Ticket (in der Lobby: für deren Server) und die Relay-Adresse, schreibt beides in
BSO.json, startet Bus-Simulator 2012 über Steam und verbindet automatisch. - Mod herunterladen holt jederzeit die neueste Mod.
- Neuigkeiten (Changelogs), Einstellungen, Deinstallieren.
Bauen und veröffentlichen
dotnet publish -c Release -o publish # eine .exe, ohne vorinstalliertes .NET
.\release.ps1 -Product launcher -Version 0.1.0 -File publish\BSO-Launcher.exe -Changelog "..."
Gegen die lokale Test-Website (-dev)
BSO-Launcher.exe -dev # nimmt http://localhost:5080 statt https://bso.mbm.wtf
-devbleibt beim Selbst-Installieren und beim Selbst-Update erhalten; die installierte Kopie startet man genauso:"%LocalAppData%\Programs\BSO Launcher\BSO-Launcher.exe" -dev.- Eigene Anmeldung (
settings.dev.json) – Test- und echtes Konto kommen sich nicht in die Quere. - Gelbes DEV-Schild in der Titelleiste, im Fenstertitel und unter dem Anmelden-Formular steht die Adresse.
- Beliebiger anderer Server: Umgebungsvariable
BSO_LAUNCHER_API(geht vor-dev).
Lokale Website starten: im BSO-Website-Repo dotnet run --urls http://localhost:5080.
Release-Schlüssel
new-release-key.ps1 legt einmalig den Schlüssel an (RSA 3072, privater Teil DPAPI-verschlüsselt unter
%APPDATA%\BSO\release-key.dpapi) und trägt den öffentlichen Teil in Services\ReleaseSignature.cs ein.
release.ps1 (in jedem BSO-Repo) signiert damit BSO-RELEASE|produkt|version|sha256 und lädt hoch – braucht
BSO_RELEASE_TOKEN (= RELEASE_TOKEN der Website) und optional BSO_MASTER_URL.
Den Schlüssel sichern: Mit einem neuen Schlüssel erkennen bereits verteilte Launcher keine Updates mehr.
Daten
| Was | Wo |
|---|---|
| Einstellungen, Anmeldung | %LocalAppData%\BSO Launcher\settings.json |
| Protokoll | %LocalAppData%\BSO Launcher\launcher.log |
| Mod | <Spielordner>\Bin_High_Win64\dinput8.dll und BSO\ |