4.4 KiB
Brogether Setup
Stand: 2026-05-23
Aktueller Zustand
- Brotato Steam wurde lokal gefunden unter
C:\Program Files (x86)\Steam\steamapps\common\Brotato. - Die recovered Scripts melden Brotato
1.1.15.3und ModLoader6.3.0. - GDRETools wurde nach
.tools/gdretoolsgeladen. - Godot Mod Loader v6.3.0 wurde nach
.tools/godot-mod-loadergeladen. - Brotato- und DLC-Scripts wurden nach
recovered/recovered. - Das erste Mod-Skeleton liegt unter
src/mods-unpacked/Brogether-Brogether.
Lokalen Test-Build installieren
.\scripts\install-local.ps1
Das erzeugt dist/Brogether-Brogether-0.1.0.zip und kopiert es fuer lokale Tests in einen bereits abonnierten Brotato-Workshop-Ordner:
C:\Program Files (x86)\Steam\steamapps\workshop\content\1942280\<workshop-id>
Brotato laedt in der Steam-Version nur Workshop-Ordner, deren ID Steam als abonniert meldet. Darum wird das lokale ZIP fuer den ersten Test neben eine vorhandene abonnierte Workshop-Mod gelegt. Spaeter ersetzen wir das durch einen eigenen privaten/unlisted Brogether-Workshop-Eintrag.
Danach Brotato ueber Steam starten. Die Mod sollte im Mod-Menue auftauchen.
Brogether selbst bleibt danach unsichtbar, bis es geoeffnet wird. Im Hauptmenue fuegt die Mod einen BROGETHER-Button hinzu. Alternativ oeffnet F5 dasselbe Modal. Das Modal verhaelt sich bewusst wie Brotatos F8-Feedback-Fenster: es pausiert, legt sich ueber das Spiel und kann mit Escape, F5 oder Close geschlossen werden.
Die UI hat jetzt einen ersten Lobby-Browser. Dort kann man Lobbys suchen, eine Lobby mit optionalem Passwort erstellen und einer ausgewaehlten Lobby beitreten. Nach Host/Join wechselt Brogether in einen Wartebereich mit Steam-Namen und statischen Initialen-Avataren fuer die Lobby-Spieler.
Debug-Hotkeys im Spiel
F5: Brogether-Modal ein-/ausblendenF6: oeffentliche Dev-Steam-Lobby erstellenF7: Brogether-Lobby suchen und beitretenF9: Lobby verlassenF10: Ping-Paket an den anderen Spieler sendenF11: lokalen Loopback-Test ohne zweiten Client ausfuehren
Die Ausgabe landet im Godot/Brotato-Log. Das erste Ziel ist, auf zwei Steam-Clients folgende Meldungen zu sehen:
Steam readycreated lobbyjoined lobbypacket from ... handshakepacket from ... pingpacket from ... pong
Ohne zweiten Steam-Client kann F11 die Paketlogik lokal simulieren. Das ersetzt keinen echten Steam-P2P-Test, prueft aber, ob Handshake-, Ping- und Pong-Verarbeitung in Brogether funktionieren.
Zusaetzlich schreibt Brogether ein eigenes Debug-Log nach:
C:\Users\tommi\AppData\Roaming\Brotato\brogether.log
Naechster technischer Schritt
Wenn der P2P-Handshake zwischen zwei Steam-Clients funktioniert, erweitern wir die Mod um:
- Hook in die Run-Erstellung. Erledigt:
extensions/main_ext.gdmeldet Run-Start. - Host/Client-Rollenmodell. Grundlegend vorhanden ueber Steam-Lobby-Owner.
- Minimalen Player-Snapshot-Sync. Grundlegend vorhanden: Position, Leben, Dead-State alle 250 ms.
- Erst danach Gegner-, Wave- und Shop-Sync.
Aktueller Multiplayer-Stand
Brogether hat jetzt eine Script-Extension fuer res://main.gd. Beim Start einer Wave/Run schreibt sie:
run scene readyplayers spawned- periodische
host_snapshot/client_snapshotPakete, wenn eine Lobby mit Peer existiert run scene exiting
Die Snapshots enthalten derzeit nur das sichere Minimum: Spielerindex, Position, Leben, Max-Leben und Dead-State. Das ist noch kein spielbarer Remote-Player, aber die Transport- und Hook-Struktur ist damit vorbereitet.
Es gibt intern eine experimentelle Funktion zum Vorbereiten lokaler 2-Spieler-Coop-Slots. Sie ist bewusst nicht mehr an einen Hotkey gebunden, weil sie Brotatos lokale Coop-UI aktiviert und im normalen Menue stoeren kann. Wenn ein 2-Spieler-Run existiert, versucht Brogether eingehende Remote-Snapshots auf den zweiten lokalen Player anzuwenden.
Editor-Hinweis
Fuer den ersten In-Game-Test ist noch kein Godot-Editor noetig: die Mod wird als ZIP gebaut und direkt von Brotato geladen.
Fuer spaetere Hook-Arbeit ist ein GodotSteam-Editor sinnvoll. Die aktuellen GodotSteam-3.x-Releases liefern auf GitHub/Codeberg vor allem Templates; wenn wir den Editor brauchen, sollten wir gezielt eine zu Brotatos recovered Engine-Version passende GodotSteam-Binary verwenden oder selbst bauen. Vanilla-Godot ist fuer das recovered Brotato-Projekt problematisch, weil der Steam-Singleton fehlt.