Files
Brogether/docs/setup.md
2026-05-23 01:03:36 +02:00

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.3 und ModLoader 6.3.0.
  • GDRETools wurde nach .tools/gdretools geladen.
  • Godot Mod Loader v6.3.0 wurde nach .tools/godot-mod-loader geladen.
  • 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-/ausblenden
  • F6: oeffentliche Dev-Steam-Lobby erstellen
  • F7: Brogether-Lobby suchen und beitreten
  • F9: Lobby verlassen
  • F10: Ping-Paket an den anderen Spieler senden
  • F11: 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 ready
  • created lobby
  • joined lobby
  • packet from ... handshake
  • packet from ... ping
  • packet 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:

  1. Hook in die Run-Erstellung. Erledigt: extensions/main_ext.gd meldet Run-Start.
  2. Host/Client-Rollenmodell. Grundlegend vorhanden ueber Steam-Lobby-Owner.
  3. Minimalen Player-Snapshot-Sync. Grundlegend vorhanden: Position, Leben, Dead-State alle 250 ms.
  4. 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 ready
  • players spawned
  • periodische host_snapshot/client_snapshot Pakete, 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.