Translate public UI and docs to English
This commit is contained in:
@@ -1,48 +1,48 @@
|
||||
# Brogether Setup
|
||||
|
||||
Stand: 2026-05-23
|
||||
Status: 2026-05-23
|
||||
|
||||
## Aktueller Zustand
|
||||
## Current State
|
||||
|
||||
- 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`.
|
||||
- Brotato Steam was found locally at `C:\Program Files (x86)\Steam\steamapps\common\Brotato`.
|
||||
- Recovered scripts report Brotato `1.1.15.3` and ModLoader `6.3.0`.
|
||||
- GDRETools was downloaded to `.tools/gdretools`.
|
||||
- Godot Mod Loader v6.3.0 was downloaded to `.tools/godot-mod-loader`.
|
||||
- Brotato and DLC scripts were recovered to `recovered/`.
|
||||
- The mod source lives in `src/mods-unpacked/Brogether-Brogether`.
|
||||
|
||||
## Lokalen Test-Build installieren
|
||||
## Install A Local Test Build
|
||||
|
||||
```powershell
|
||||
.\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:
|
||||
This creates `dist/Brogether-Brogether-0.1.0.zip` and copies it into an already subscribed Brotato Workshop folder for local testing:
|
||||
|
||||
```text
|
||||
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.
|
||||
Brotato's Steam build only loads Workshop folders that Steam considers subscribed. That is why the local ZIP is placed next to an existing subscribed Workshop mod for the first tests. Later, this should be replaced by Brogether's own private or unlisted Workshop item.
|
||||
|
||||
Danach Brotato ueber Steam starten. Die Mod sollte im Mod-Menue auftauchen.
|
||||
Start Brotato through Steam afterwards. The mod should appear in the mod menu.
|
||||
|
||||
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.
|
||||
Brogether stays hidden until opened. The mod adds a `BROGETHER` button to the main menu. Alternatively, `F5` opens the same modal. The modal intentionally behaves like Brotato's F8 feedback window: it pauses the game, overlays the screen, and can be closed with `Escape`, `F5`, or `Close`.
|
||||
|
||||
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.
|
||||
The UI currently has a first lobby browser. You can search for lobbies, create a lobby with an optional password, and join a selected lobby. After hosting or joining, Brogether switches to a waiting room with Steam names and static initials avatars for lobby players.
|
||||
|
||||
Ohne zweiten Client kann im Wartebereich `Add Fake` gedrueckt werden. Dadurch erscheint ein lokaler Test-Peer. Mit `Ready` und `Fake Ready` lassen sich beide Ready-Zustaende pruefen. Einen eigenen Brogether-Startbutton gibt es erst, wenn die echte Run-Synchronisation dran ist; bis dahin nutzt man Brotatos normalen Startablauf.
|
||||
Without a second client, press `Add Fake` in the waiting room. This adds a local test peer. Use `Ready` and `Fake Ready` to test both ready states. A dedicated Brogether start button will only come back once real run synchronization is implemented; until then, use Brotato's normal start flow.
|
||||
|
||||
## Debug-Hotkeys im Spiel
|
||||
## Debug Hotkeys
|
||||
|
||||
- `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
|
||||
- `F5`: toggle Brogether modal
|
||||
- `F6`: create public development Steam lobby
|
||||
- `F7`: search and join Brogether lobby
|
||||
- `F9`: leave lobby
|
||||
- `F10`: send ping packet to the other player
|
||||
- `F11`: run local loopback test without a second client
|
||||
|
||||
Die Ausgabe landet im Godot/Brotato-Log. Das erste Ziel ist, auf zwei Steam-Clients folgende Meldungen zu sehen:
|
||||
Output goes to the Godot/Brotato log. The first two-client goal is to see these messages:
|
||||
|
||||
- `Steam ready`
|
||||
- `created lobby`
|
||||
@@ -51,38 +51,38 @@ Die Ausgabe landet im Godot/Brotato-Log. Das erste Ziel ist, auf zwei Steam-Clie
|
||||
- `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.
|
||||
Without a second Steam client, `F11` simulates packet flow locally. It does not replace a real Steam P2P test, but it checks whether handshake, ping, and pong handling work inside Brogether.
|
||||
|
||||
Zusaetzlich schreibt Brogether ein eigenes Debug-Log nach:
|
||||
Brogether also writes its own debug log:
|
||||
|
||||
```text
|
||||
C:\Users\tommi\AppData\Roaming\Brotato\brogether.log
|
||||
```
|
||||
|
||||
## Naechster technischer Schritt
|
||||
## Next Technical Step
|
||||
|
||||
Wenn der P2P-Handshake zwischen zwei Steam-Clients funktioniert, erweitern wir die Mod um:
|
||||
Once the P2P handshake works between two Steam clients, extend the mod with:
|
||||
|
||||
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.
|
||||
1. Hook into run creation. Done: `extensions/main_ext.gd` reports run start.
|
||||
2. Host/client role model. Basic version exists through Steam lobby owner.
|
||||
3. Minimal player snapshot sync. Basic version exists: position, health, dead state every 250 ms.
|
||||
4. Enemy, wave, and shop sync after that.
|
||||
|
||||
## Aktueller Multiplayer-Stand
|
||||
## Current Multiplayer State
|
||||
|
||||
Brogether hat jetzt eine Script-Extension fuer `res://main.gd`. Beim Start einer Wave/Run schreibt sie:
|
||||
Brogether has a script extension for `res://main.gd`. At the start of a wave/run, it logs:
|
||||
|
||||
- `run scene ready`
|
||||
- `players spawned`
|
||||
- periodische `host_snapshot`/`client_snapshot` Pakete, wenn eine Lobby mit Peer existiert
|
||||
- periodic `host_snapshot` / `client_snapshot` packets if a lobby with a peer exists
|
||||
- `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.
|
||||
Snapshots currently contain only the safe minimum: player index, position, health, max health, and dead state. This is not a playable remote player yet, but the transport and hook structure is prepared.
|
||||
|
||||
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.
|
||||
There is an internal experimental function to prepare local 2-player co-op slots. It is intentionally not bound to a hotkey anymore because it activates Brotato's local co-op UI and can disturb normal menus. If a 2-player run exists, Brogether tries to apply incoming remote snapshots to the second local player.
|
||||
|
||||
## Editor-Hinweis
|
||||
## Editor Note
|
||||
|
||||
Fuer den ersten In-Game-Test ist noch kein Godot-Editor noetig: die Mod wird als ZIP gebaut und direkt von Brotato geladen.
|
||||
No Godot editor is required for the first in-game test: the mod is built as a ZIP and loaded directly by Brotato.
|
||||
|
||||
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.
|
||||
For later hook work, a GodotSteam editor can be useful. Current GodotSteam 3.x releases mostly provide templates; if an editor is needed, use or build a GodotSteam binary that matches Brotato's recovered engine version. Vanilla Godot is problematic for the recovered Brotato project because the `Steam` singleton is missing.
|
||||
|
||||
Reference in New Issue
Block a user