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
- Mod-Skeleton laedt in Brotato und zeigt einen Multiplayer-Button oder Debug-Hotkeys.
- Steam-Lobby erstellen/joinen.
- Text-/Ping-Nachrichten zwischen zwei Clients senden.
- Run-Start zwischen zwei Clients synchronisieren.
- Nur Spielerposition/Input synchronisieren, Gegner und Spielwelt bleiben host-controlled.
- Shop-Phase synchronisieren.
- 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
- Brotato Wiki, Modding: https://brotato.wiki.spellsandguns.com/Modding
- Steam Community, Brotato Modding Guide: https://steamcommunity.com/sharedfiles/filedetails/?id=2931079751
- Godot Mod Loader Wiki: https://wiki.godotmodding.com/
- Godot Mod Loader, Mod Structure: https://wiki.godotmodding.com/guides/modding/mod_structure/
- Godot Mod Loader, Mod Files: https://wiki.godotmodding.com/guides/modding/mod_files/
- Godot Mod Loader, Workshop Uploader: https://wiki.godotmodding.com/guides/modding/tools/workshop_uploader/
- Steamworks Networking Docs: https://partner.steamgames.com/doc/features/multiplayer/networking
- Brotatogether GitHub: https://github.com/boardengineer/Brotatogether
- Brotatogether Workshop: https://steamcommunity.com/workshop/filedetails/?id=2985539742