Compare commits

1 Commits

Author SHA1 Message Date
Steven Wroblewski 446fad7b55 Paket für andere Rechner
paket.bat baut aus dem ausgecheckten Stand ein ZIP, das auf jedem
Windows 10 oder 11 mit 64 Bit ohne Git, Rust und Godot läuft: das
exportierte Spiel, die Brücke mit statisch gelinkter C-Laufzeit und eine
Anleitung für Mitspieler. Die Exportvoreinstellung lässt Tests und
Werkzeuge weg und nimmt die Texte mit; dist/ bleibt außerhalb des
Archivs. CLAUDE.md und der Fragebogen von M1d beschreiben das Paket.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 20:09:48 +02:00
7 changed files with 142 additions and 1 deletions
+3
View File
@@ -3,3 +3,6 @@
# Godot
/game/.godot/
# Packages built by paket.bat
/dist/
+11
View File
@@ -14,6 +14,7 @@ Das verbindliche Konzept steht in [docs/KONZEPT.md](docs/KONZEPT.md). Lies es, b
| `docs/KONZEPT.md` | Spielkonzept und Entscheidungen |
| `docs/superpowers/plans/` | Umsetzungspläne |
| `docs/playtests/` | Fragebögen für Playtests |
| `paket/` | Anleitung, die dem Paket für andere Rechner beiliegt |
Faustregel: Was im Speicherstand steht oder alle Spieler betrifft, gehört in den Kern. Die Hülle darf Gleitkommazahlen nutzen, weil sie nichts an der gemeinsamen Welt ändert; sie schickt nur Befehle.
@@ -110,6 +111,16 @@ Argumente hinter `play.bat` gehen an das Spiel:
`play-zweites-fenster.bat` startet ein zweites Fenster mit dem Profil `zweites-fenster`. Die Datei reicht weitere Argumente ebenfalls an das Spiel weiter, etwa `--name=Zweiter`.
## Paket für andere Rechner
`paket.bat` baut aus dem ausgecheckten Stand ein Paket, das auf jedem Windows 10 oder 11 mit 64 Bit ohne Git, Rust und Godot läuft: `dist\Grovewright-<Commit>-windows.zip` mit `Grovewright.exe`, `Grovewright.pck`, der Brücke und der Anleitung `paket\LIESMICH.txt`. Ungesicherte Änderungen landen mit im Paket, der Name nennt aber nur den Commit.
- Für das Paket baut Cargo die Brücke als Release mit statisch gelinkter C-Laufzeit nach `target\x86_64-pc-windows-msvc\release`, damit Mitspieler kein Visual C++ Redistributable brauchen. `game/grovewright.gdextension` zeigt für Release-Exporte dorthin.
- Die Exportvoreinstellung „Windows“ steht in `game/export_presets.cfg`. Sie lässt `tests/` und `tools/` weg und nimmt `i18n/*.csv` ausdrücklich mit, weil das Spiel seine Texte zur Laufzeit liest.
- Der Export braucht die Exportvorlagen der installierten Godot-Version unter `%APPDATA%\Godot\export_templates\4.7.2.stable`, etwa über „Editor > Exportvorlagen verwalten“ im Godot-Editor.
- Pakete und Starts mit `play.bat` spielen zusammen, solange Regel-Kennung und `PROTOCOL_VERSION` gleich sind; sonst lehnt der Host den Beitritt ab. Am sichersten nutzen alle denselben Commit.
- Ein ausgepacktes Paket lässt sich mit einem eigenen `APPDATA` prüfen, etwa `Grovewright.exe --headless --quit-after 600 -- --solo`. So schreibt es nicht in die echten Spielerdateien, und Fehler stehen in `<APPDATA>\Godot\app_userdata\Grovewright\logs\godot.log`.
## Sprache
- Code, Bezeichner und Kommentare im Code: Englisch.
+1
View File
@@ -18,6 +18,7 @@ M1d zeichnet das Spielfeld als Pixelgrafik aus Code, im Stil klassischer Farmspi
Mit 1, 2 und 3 oder den Knöpfen unten wechselst du den Stil, mit Esc oder „Zurück“ geht es ins Menü.
3. Im Spiel wechselt F2 den Stil. Lauf herum, schlag Stein und sieh dir Fels, Figur, Zielmarke und Splitter an. Das Spiel merkt sich den zuletzt gewählten Stil.
4. Zu zweit wie in M1c: Die Namen über den Figuren sind jetzt scharf, und dein eigener Schlag zeigt seine Splitter sofort, auch als Gast. Risse und das Brechen des Felses kommen weiter erst mit der Antwort des Hosts. Splitter fliegen bei jedem Schlag auf Fels, auch auf harten Fels, den erst eine Kupferspitzhacke bricht, und auf Grundgestein, das nie bricht.
5. Mitspieler brauchen weder Git noch Rust noch Godot: Doppelklick auf `paket.bat` im Hauptordner baut `dist\Grovewright-<Commit>-windows.zip`. Die ZIP-Datei enthält das Spiel und eine Anleitung (`LIESMICH.txt`). Du selbst kannst weiter mit `play.bat` spielen, solange du auf demselben Stand bist wie das Paket.
So sehen die drei Proben aus:
+22
View File
@@ -0,0 +1,22 @@
[preset.0]
name="Windows"
platform="Windows Desktop"
runnable=true
dedicated_server=false
custom_features=""
export_filter="all_resources"
include_filter="i18n/*.csv"
exclude_filter="tests/*, tools/*"
export_path="../dist/Grovewright/Grovewright.exe"
encryption_include_filters=""
encryption_exclude_filters=""
encrypt_pck=false
encrypt_directory=false
[preset.0.options]
binary_format/embed_pck=false
application/modify_resources=true
application/product_name="Grovewright"
application/file_description="Grovewright"
+1 -1
View File
@@ -5,4 +5,4 @@ reloadable = true
[libraries]
windows.debug.x86_64 = "res://../target/debug/grovewright_bridge.dll"
windows.release.x86_64 = "res://../target/release/grovewright_bridge.dll"
windows.release.x86_64 = "res://../target/x86_64-pc-windows-msvc/release/grovewright_bridge.dll"
+42
View File
@@ -0,0 +1,42 @@
@echo off
rem Builds a package of the checked-out commit that runs on any 64-bit
rem Windows 10 or 11 PC without Git, Rust or Godot:
rem dist\Grovewright-<commit>-windows.zip. See CLAUDE.md.
setlocal
cd /d "%~dp0"
rem The bridge links the C runtime statically, so players need no Visual C++
rem Redistributable. With an explicit target the flag reaches only the bridge,
rem not the build scripts and macros. game\grovewright.gdextension points
rem release exports at that target's folder.
set "RUSTFLAGS=-C target-feature=+crt-static"
cargo build -p grovewright-bridge --release --target x86_64-pc-windows-msvc || goto failed
set "RUSTFLAGS="
rem The first import of a fresh checkout crashes while Godot shuts down; see
rem play.bat.
godot --headless --path game --import
if %errorlevel% neq 0 godot --headless --path game --import || goto failed
if exist dist\Grovewright rmdir /s /q dist\Grovewright
mkdir dist\Grovewright || goto failed
rem The export path is relative to the project folder game.
godot --headless --path game --export-release Windows ../dist/Grovewright/Grovewright.exe || goto failed
for %%f in (Grovewright.exe Grovewright.pck grovewright_bridge.dll) do if not exist dist\Grovewright\%%f goto failed
copy /y paket\LIESMICH.txt dist\Grovewright >nul || goto failed
for /f %%c in ('git rev-parse --short HEAD') do set "COMMIT=%%c"
set "ZIP=dist\Grovewright-%COMMIT%-windows.zip"
if exist "%ZIP%" del "%ZIP%"
rem The tar of Windows writes zip files; the tar of Git for Windows does not.
"%SystemRoot%\System32\tar.exe" -a -c -f "%ZIP%" -C dist Grovewright || goto failed
echo.
echo Paket fertig: %ZIP%
pause
goto :eof
:failed
echo.
echo Das Paket konnte nicht gebaut werden. Die Meldungen oben nennen den Grund.
pause
exit /b 1
+62
View File
@@ -0,0 +1,62 @@
Grovewright
===========
Ein Aufbauspiel für ein bis vier Spieler, in dem die Fabrik lebt. Dies ist
eine frühe Probeversion.
Starten
-------
1. Entpacke die ZIP-Datei in einen Ordner, zum Beispiel auf den Desktop.
2. Doppelklick auf Grovewright.exe.
Meldet Windows „Der Computer wurde durch Windows geschützt“, klick auf
„Weitere Informationen“ und dann auf „Trotzdem ausführen“. Das Spiel ist
nicht signiert, deshalb fragt Windows nach.
3. Trag im Menü deinen Namen ein.
Du brauchst Windows 10 oder 11 mit 64 Bit. Git, Rust und Godot brauchst du
nicht.
Zusammen spielen
----------------
Alle brauchen dieselbe Version des Spiels. Sie steht im Namen der ZIP-Datei.
Passen die Versionen nicht zusammen, lehnt der Host den Beitritt mit einer
Meldung ab.
- Host: Klick auf „Welt öffnen“. Beim ersten Mal fragt Windows, ob
Grovewright im Netzwerk erreichbar sein darf. Erlaube es für private und
für öffentliche Netzwerke, denn Windows stuft viele Heimnetze als
öffentlich ein. Nur der Host braucht diese Freigabe.
- Gast: Trag die Adresse des Hosts ein und klick auf „Beitreten“.
- Im selben Heimnetz ist das die IPv4-Adresse des Host-Rechners, etwa
192.168.178.20. Der Host findet sie mit dem Befehl ipconfig.
- Übers Internet geht es am einfachsten mit einem virtuellen Netz wie
Tailscale oder ZeroTier. Dann gilt die Adresse des Hosts aus diesem Netz.
- Ohne virtuelles Netz braucht der Host eine Portfreigabe für UDP-Port
24680 in seinem Router, und der Gast trägt die öffentliche IP-Adresse des
Hosts ein. Bei Anschlüssen ohne eigene öffentliche IPv4-Adresse, etwa mit
DS-Lite, geht das nicht.
Steuerung
---------
WASD laufen
Linke Maustaste Stein schlagen
F2 Grafikstil wechseln
F5 speichern (nur der Host)
F9 laden (nur nach „Allein spielen“)
Esc Pause (nur ohne Gäste)
Spielstand und Fehler
---------------------
Spielstand, Spielerschlüssel und Aufzeichnungen liegen unter
%APPDATA%\Godot\app_userdata\Grovewright. Am Spielerschlüssel erkennt dich
eine Welt wieder. Lösch ihn nicht, wenn du dort weiterspielen willst.
Läuft etwas schief, schick die Datei logs\godot.log aus diesem Ordner mit.