Files
Brogether/docs/brotato-multiplayer-modding-research.md
2026-05-23 00:52:54 +02:00

4.4 KiB

Brotato Multiplayer Mod Research

Stand: 2026-05-22

Kurzfazit

Brotato-Mods laufen ueber den Godot Mod Loader und werden als ZIPs ueber Steam Workshop verteilt. Fuer eine echte Online-Multiplayer-Mod ist das Workshop-Paket nur der Verteilungskanal; die eigentliche Schwierigkeit ist die Netzwerksynchronisation des Spiels.

Es gibt bereits eine Workshop-Mod namens "Brotatogether - Networked Multiplayer with Steam Lobbies". Sie nutzt Steam-basierte Lobbies, ist aber laut Workshop-Kommentaren und Beschreibung vor allem bei 3-4 Spielern und aktuellen DLC-/Patch-Staenden fehleranfaellig. Das ist trotzdem die wichtigste Referenz, weil sie beweist, dass Steam-Lobbies aus einer Brotato-Mod heraus grundsaetzlich machbar sind.

Was man braucht

  • Brotato auf Steam, weil die Steam-Version Workshop und ModLoader enthaelt.
  • GodotSteam passend zur Brotato-Godot-Version. Der aktuelle Brotato-Modding-Guide verweist auf GodotSteam fuer Godot 3.6; aeltere Notizen nennen Godot 3.5. Die genaue Version sollte beim Decompile ueber GDRETools/Export-Log verifiziert werden.
  • GDRETools, um das Brotato-Projekt lokal fuer Modding/Analyse zu recovern.
  • Godot-Kenntnisse, insbesondere GDScript, Szenenbaum, Autoloads/Singletons und Resource-Dateien.
  • Godot Mod Loader Wissen: mods-unpacked, manifest.json, mod_main.gd, Script Extensions, Hooks, Abhaengigkeiten.
  • Steam-/GodotSteam-Netzwerkkenntnisse: Steam Matchmaking/Lobbies plus P2P/Networking Messages oder Sockets.
  • Mindestens zwei Steam-Accounts/Installationen oder Testmaschinen fuer echte Netzwerk-Tests.

Mod-Struktur

Entwicklung:

res://
└── mods-unpacked
    └── Brogether-Brogether
        ├── manifest.json
        ├── mod_main.gd
        ├── extensions/
        └── translations/

Workshop/Distribution:

Brogether-Brogether-0.1.0.zip/
├── .import/
└── mods-unpacked/
    └── Brogether-Brogether/
        ├── manifest.json
        ├── mod_main.gd
        └── extensions/

Multiplayer-Architektur

Empfohlener erster Ansatz: Host-authoritative P2P ueber Steam.

  • Ein Spieler erstellt eine Steam Lobby.
  • Andere Spieler joinen ueber Steam Lobby/Friends.
  • Der Host ist die einzige Wahrheit fuer Run-State, Gegner, Drops, Shop-Entscheidungen und RNG.
  • Clients senden Inputs/Entscheidungen an den Host.
  • Host sendet regelmaessige Snapshots oder Events zurueck.

Warum nicht sofort voll deterministisch/lockstep: Brotato hat viele zufalls- und framegetriebene Systeme. Ein kompletter Lockstep-Port waere wahrscheinlich spröde, solange wir nicht exakt wissen, welche Systeme deterministisch laufen.

MVP-Vorschlag

  1. Mod-Skeleton laedt in Brotato und zeigt einen versteckten Multiplayer-Dialog ueber Hauptmenue-Button oder Hotkey.
  2. Steam-Lobby erstellen/joinen.
  3. Text-/Ping-Nachrichten zwischen zwei Clients senden.
  4. Run-Start zwischen zwei Clients synchronisieren.
  5. Nur Spielerposition/Input synchronisieren, Gegner und Spielwelt bleiben host-controlled.
  6. Shop-Phase synchronisieren.
  7. Erst danach 3-4 Spieler, Reconnects, Crash Recovery und DLC-Kompatibilitaet.

Hauptrisiken

  • Brotato ist nicht fuer echten Online-Multiplayer gebaut; viele Systeme muessen per Hook/Extension kontrolliert werden.
  • Steam Workshop erlaubt die Verteilung, gibt aber keine Multiplayer-API. Netzwerk laeuft ueber GodotSteam/Steamworks.
  • Updates/DLC koennen Script-Extensions brechen.
  • Save- und Cloud-Daten koennen bei instabilen Mods leiden; Tests sollten mit Backup-Saves laufen.
  • 3-4 Spieler sind deutlich schwerer als 2 Spieler, weil Bandbreite, Shop-Sync, Disconnects und Edge Cases stark wachsen.

Wichtige Quellen