Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 446fad7b55 |
@@ -3,3 +3,6 @@
|
||||
|
||||
# Godot
|
||||
/game/.godot/
|
||||
|
||||
# Packages built by paket.bat
|
||||
/dist/
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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:
|
||||
|
||||
|
||||
@@ -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"
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
@@ -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.
|
||||
Reference in New Issue
Block a user