88 lines
4.4 KiB
Markdown
88 lines
4.4 KiB
Markdown
# 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:
|
|
|
|
```text
|
|
res://
|
|
└── mods-unpacked
|
|
└── Brogether-Brogether
|
|
├── manifest.json
|
|
├── mod_main.gd
|
|
├── extensions/
|
|
└── translations/
|
|
```
|
|
|
|
Workshop/Distribution:
|
|
|
|
```text
|
|
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
|
|
|
|
- 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
|