# Brogether Brogether ist ein experimentelles Brotato-Mod-Projekt mit dem Ziel, echten Online-Multiplayer fuer 2 Spieler vorzubereiten. Brotato selbst kann lokal im Coop gespielt werden und ueber Steam Remote Play geteilt werden; Brogether erforscht stattdessen eine native Steam-Lobby- und P2P-Basis. Der aktuelle Stand ist bewusst ein technischer Prototyp. Es ist noch keine fertige Multiplayer-Mod, aber die wichtigsten Grundlagen sind vorbereitet: Mod-Laden, Steam-Lobby-Erstellung, Debug-Logging, lokale Pakettests und erste Hooks in den Brotato-Run. ## Was aktuell funktioniert - Die Mod wird von Brotatos Godot Mod Loader geladen. - Steam wird ueber den im Spiel vorhandenen Steam-Singleton angesprochen. - Eine oeffentliche Dev-Steam-Lobby kann erstellt werden. - Basis-Pakete fuer Handshake, Ping und Pong sind implementiert. - Ein lokaler Loopback-Test simuliert Paketverkehr ohne zweiten Steam-Client. - Brotatos Run-Szene wird per Script-Extension beobachtet. - Run-Start, Spieler-Spawn und einfache Player-Snapshots werden geloggt bzw. fuer P2P-Versand vorbereitet. ## Was noch nicht fertig ist - Ein echter zweiter Steam-Client wurde noch nicht getestet. - Remote-Spieler werden noch nicht voll spielbar synchronisiert. - Shop-, Item-, Gegner-, Wave- und RNG-Synchronisation fehlen noch. - Die Snapshot-Anwendung auf einen zweiten lokalen Player ist nur experimentell vorbereitet. ## Projektstruktur ```text src/mods-unpacked/Brogether-Brogether/ manifest.json Mod-Metadaten fuer Godot Mod Loader mod_main.gd Steam-Lobby, P2P-Pakete, Debug-Overlay, Logging extensions/main_ext.gd Hook in Brotatos Run-Szene scripts/ package.ps1 Baut das Mod-ZIP install-local.ps1 Installiert das ZIP fuer lokale Brotato-Tests docs/ setup.md Setup- und Testnotizen brotato-multiplayer-modding-research.md ``` Nicht eingecheckt werden `.tools/`, `recovered/` und `dist/`. Diese Ordner enthalten lokale Tools, recovered Brotato-Dateien und gebaute ZIPs. ## Lokaler Test Brotato laedt in der Steam-Version nur abonnierte Workshop-Ordner. Das Install-Skript legt das gebaute Brogether-ZIP deshalb fuer lokale Tests neben eine bereits abonnierte Brotato-Workshop-Mod. ```powershell .\scripts\install-local.ps1 ``` Danach Brotato komplett neu starten. ## Debug-Tasten ```text F5 Debug-Panel ein-/ausblenden F6 Steam-Lobby erstellen F7 Lobby suchen / joinen F9 Lobby verlassen F10 Ping senden F11 Lokalen Loopback-Test starten ``` Zusätzlich zeigt Brogether ein kleines Debug-Panel oben rechts mit Buttons fuer Host, Join, Leave, Ping und Loopback. Das Panel ist fuer die naechsten Zwei-Client-Tests gedacht und ersetzt die meisten Hotkey-Aktionen. Brogether schreibt ein eigenes Log nach: ```text C:\Users\tommi\AppData\Roaming\Brotato\brogether.log ``` ## Naechster sinnvoller Test Sobald ein zweiter Steam-Client verfuegbar ist: 1. Beide Clients mit derselben Brogether-Version starten. 2. Host drueckt `F6`. 3. Client drueckt `F7`. 4. Mit `F10` Ping/Pong testen. 5. Einen Run starten und pruefen, ob `run_started`, `players_spawned` und Snapshot-Pakete auf beiden Seiten im Log erscheinen. Wenn das stabil laeuft, ist der naechste Entwicklungsschritt die echte Remote-Spielersteuerung auf Basis der Snapshot- und Input-Pakete.