From ba76c0febff2d826d3652e8672e35591df38d27c Mon Sep 17 00:00:00 2001 From: Zwitschi Date: Sat, 31 Oct 2026 13:46:54 +0100 Subject: [PATCH] Add Windows installer (NSIS) and Linux AppImage packaging; embed PCK in all exports - export_presets: embed_pck=true for Linux/Windows/macOS -> single self-contained binaries (all game data in one file); build_releases.sh cleans stale .pck - App icon: assets/textures/icon.png (1024) + multi-size icon.ico generated by tools/generate_textures.py; copied into packaging/windows and packaging/linux - packaging/windows/step-line.nsi: NSIS installer (shortcuts, uninstaller, registry Add/Remove Programs) output step-line-setup-.exe - packaging/linux: step-line.desktop, AppRun, step-line.appdata.xml, build_appimage.sh (appimagetool, APPIMAGE_EXTRACT_AND_RUN) -> step-line--x86_64.AppImage - CI build job now packages NSIS installer + AppImage alongside binaries; publish glob already uploads them - Local end-to-end verification: embedded exports rebuilt, AppImage built and run headless (0 script errors); suite 57/57 - README Downloads table lists installer/AppImage/portable rows; RELEASING documents packaging; TODO/DONE synced --- .gitea/workflows/build.yml | 13 +++++ DONE.md | 16 ++++++ README.md | 11 ++-- TODO.md | 33 ++++++++++++ assets/textures/icon.ico | Bin 0 -> 52115 bytes assets/textures/icon.png | Bin 0 -> 12951 bytes docs/RELEASING.md | 12 ++++- export_presets.cfg | 6 +-- packaging/linux/AppRun | 5 ++ packaging/linux/build_appimage.sh | 45 +++++++++++++++++ packaging/linux/step-line.appdata.xml | 21 ++++++++ packaging/linux/step-line.desktop | 9 ++++ packaging/linux/step-line.png | Bin 0 -> 12951 bytes packaging/windows/step-line.ico | Bin 0 -> 52115 bytes packaging/windows/step-line.nsi | 70 ++++++++++++++++++++++++++ tools/build_releases.sh | 2 + tools/generate_textures.py | 28 ++++++++++- 17 files changed, 261 insertions(+), 10 deletions(-) create mode 100644 assets/textures/icon.ico create mode 100644 assets/textures/icon.png create mode 100644 packaging/linux/AppRun create mode 100644 packaging/linux/build_appimage.sh create mode 100644 packaging/linux/step-line.appdata.xml create mode 100644 packaging/linux/step-line.desktop create mode 100644 packaging/linux/step-line.png create mode 100644 packaging/windows/step-line.ico create mode 100644 packaging/windows/step-line.nsi diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index 4b0586a..bcab9de 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -77,6 +77,19 @@ jobs: chmod +x tools/*.sh ./tools/build_releases.sh + - name: Package Windows installer (NSIS) + run: | + sudo apt-get update && sudo apt-get install -y nsis + VERSION="$(sed -n 's/.*config\/version="\([^"]*\)".*/\1/p' project.godot)" + makensis /DVERSION="$VERSION" \ + /DARTIFACT="build/step-line-windows-$VERSION.exe" \ + /DICON=packaging/windows/step-line.ico \ + packaging/windows/step-line.nsi + + - name: Package Linux AppImage + run: | + bash packaging/linux/build_appimage.sh + - name: Upload installers (workflow_dispatch) if: github.event_name == 'workflow_dispatch' uses: actions/upload-artifact@v4 diff --git a/DONE.md b/DONE.md index da12dcf..f77481e 100644 --- a/DONE.md +++ b/DONE.md @@ -185,6 +185,22 @@ Completed task sections moved from `TODO.md`. Sections are moved only when every Follow-up: anonymous **asset downloads** require sign-in on this host (host setting). - [x] CI packaging follow-up was already live (`.gitea/workflows/build.yml` on tags). +## 📦 Installer packaging (Windows NSIS + Linux AppImage) + +- [x] Export presets: `binary_format/embed_pck=true` on all platforms — every binary is now + self-contained (all game data in one file; `.pck` no longer shipped). +- [x] App icon: `assets/textures/icon.png` (1024) + multi-size `icon.ico`, copied to + `packaging/windows/step-line.ico` and `packaging/linux/step-line.png` via the generator. +- [x] NSIS script `packaging/windows/step-line.nsi` (installs `Step Line.exe`, uninstaller, + shortcuts, registry entry; `makensis /DVERSION=… /DARTIFACT=…`). +- [x] AppImage: `packaging/linux/step-line.desktop`, `AppRun`, appdata.xml, and + `build_appimage.sh` (appimagetool, `APPIMAGE_EXTRACT_AND_RUN=1`). +- [x] Local end-to-end: rebuilt embedded exports and produced `step-line-0.2.0-x86_64.AppImage`, + ran it headless (0 script errors). +- [x] CI: NSIS + AppImage steps added to `.gitea/workflows/build.yml` build job; publish glob + already uploads `build/step-line-**` (covers setup/AppImage names). +- [ ] (open) CI run verification of the NSIS build and installer-content listing. + ## 🎮 Assets & detailed graphics pass (textures, rigs, UI feedback) - [x] Authored texture set via `tools/generate_textures.py` (deterministic PIL): brick facade, diff --git a/README.md b/README.md index a428dc6..af99c0b 100644 --- a/README.md +++ b/README.md @@ -20,16 +20,19 @@ The central design goal is simple: | Platform | Package | | --- | --- | -| **Windows** | [`step-line-windows.exe`](https://git.allucanget.biz/zwitschi/security-game/releases) · 64-bit, no install needed | -| **Linux** | [`step-line-linux.x86_64`](https://git.allucanget.biz/zwitschi/security-game/releases) · 64-bit, `chmod +x` and run | -| **macOS** | [`step-line-macos.zip`](https://git.allucanget.biz/zwitschi/security-game/releases) · unsigned build, quarantine note below | +| **Windows — installer** | [`step-line-setup-.exe`](https://git.allucanget.biz/zwitschi/security-game/releases) · contains all game data, shortcuts + uninstaller | +| **Windows — portable** | [`step-line-windows-.exe`](https://git.allucanget.biz/zwitschi/security-game/releases) · 64-bit, no install needed | +| **Linux — AppImage** | [`step-line--x86_64.AppImage`](https://git.allucanget.biz/zwitschi/security-game/releases) · single file, `chmod +x` and run | +| **Linux — portable** | [`step-line-linux-.x86_64`](https://git.allucanget.biz/zwitschi/security-game/releases) · 64-bit, `chmod +x` and run | +| **macOS** | [`step-line-macos-.zip`](https://git.allucanget.biz/zwitschi/security-game/releases) · unsigned build, quarantine note below | **All releases:** > **Latest: v0.2.0** (2026-10-31) — built and published by Gitea Actions from the > `v0.2.0` tag. Releases are built automatically when a `vX.Y.Z` tag is pushed > (see [`docs/RELEASING.md`](docs/RELEASING.md)); manual builds use -> `./tools/build_releases.sh`. +> `./tools/build_releases.sh`. Installer/AppImage packaging runs in the same pipeline +> (NSIS + appimagetool) and uploads with the portable binaries. > > Note: on this host, downloading release files currently requires sign-in; > the page and tag URLs are public. diff --git a/TODO.md b/TODO.md index 94df9d2..a890622 100644 --- a/TODO.md +++ b/TODO.md @@ -1,5 +1,38 @@ # TODO +## 🪟 Windows installer (self-contained, all game data) + +Goal: a real Windows installer that includes the entire game (executable + data), +Start-Menu/desktop shortcuts, and an uninstaller — instead of a bare .exe + .pck. + +- [x] Switch the Windows/Linux/macOS export presets to `binary_format/embed_pck=true` so a + single self-contained binary replaces the exe+pck pair (all game data in one file). +- [x] Add a game icon: `assets/icon.png` (AppImage/desktop) + `assets/icon.ico` and + `packaging/windows/step-line.ico` generated by `tools/generate_textures.py`. +- [x] Author `packaging/windows/step-line.nsi` (NSIS): installer that installs the exe, writes + the uninstaller, shortcuts, and registry uninstall entry. +- [x] Add CI packaging steps to `.gitea/workflows/build.yml` (NSIS via apt; AppImage via + appimagetool) so tags/dispatch produce `step-line-setup-.exe` and + `step-line--x86_64.AppImage` next to the portable binaries. +- [x] Extend `tools/publish_release.sh` artifact glob to upload the installer/AppImage too. +- [ ] Verify on CI: NSIS installer builds (cannot be run locally — no `makensis` on this box). +- [ ] Verify the Windows installer contents in CI (e.g. `7z l` shows the embedded data file). + +## 🐧 Linux AppImage (self-contained, all game data) + +Goal: a single executable `.AppImage` that runs the full game on any recent distro. + +- [x] Author AppDir files: `packaging/linux/step-line.desktop`, `packaging/linux/AppRun`, + icon wiring. +- [x] Add `packaging/linux/build_appimage.sh` (appimagetool; `APPIMAGE_EXTRACT_AND_RUN=1` to + avoid FUSE dependency) producing `step-line--x86_64.AppImage`. +- [x] Local verification: built the AppImage on this machine and ran it headless + (`--appimage-extract-and-run --headless --quit-after 90` → 0 script errors, + `[Step Line] game started`). +- [x] AppStream metainfo added (`packaging/linux/step-line.appdata.xml`); tool validates clean. +- [ ] CI verification: AppImage step runs on tags/dispatch and the artifact uploads. +- [x] README Downloads table documents installer + AppImage rows and naming. + ## Distribution follow-up (host config, no code work) - [ ] Asset downloads currently require sign-in on the host (`/releases/download/…` redirects to diff --git a/assets/textures/icon.ico b/assets/textures/icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..f6b33a254e826fbb8e2ddeb4f94c73fcaf802b84 GIT binary patch literal 52115 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 literal 0 HcmV?d00001 diff --git a/docs/RELEASING.md b/docs/RELEASING.md index 94983ab..ef5f6e4 100644 --- a/docs/RELEASING.md +++ b/docs/RELEASING.md @@ -57,12 +57,22 @@ godot --headless --path . --quit-after 120 # boot smoke t ./tools/build_releases.sh ``` -Artifacts are written to `build/`: +Artifacts are written to `build/` (all exports embed the PCK — single files): - `build/step-line-linux-.x86_64` - `build/step-line-windows-.exe` - `build/step-line-macos-.zip` +When run in CI (tags/dispatch), the build job also packages: + +- `build/step-line-setup-.exe` — Windows installer (NSIS, incl. shortcuts + + uninstaller; apt `nsis` on the runner) +- `build/step-line--x86_64.AppImage` — Linux AppImage (`packaging/linux/build_appimage.sh`, + appimagetool via `APPIMAGE_EXTRACT_AND_RUN`) + +Locally you can build the AppImage with `bash packaging/linux/build_appimage.sh `; +the NSIS installer requires `makensis` (covered by CI). + > macOS builds are unsigned and will need `xattr -dr com.apple.quarantine` > guidance or notarization for production releases. diff --git a/export_presets.cfg b/export_presets.cfg index 51bf5d8..8110a6b 100644 --- a/export_presets.cfg +++ b/export_presets.cfg @@ -23,7 +23,7 @@ script_export_mode=2 custom_template/debug="" custom_template/release="" debug/export_console_wrapper=1 -binary_format/embed_pck=false +binary_format/embed_pck=true texture_format/s3tc_bptc=true texture_format/etc2_astc=false binary_format/architecture="x86_64" @@ -54,7 +54,7 @@ script_export_mode=2 custom_template/debug="" custom_template/release="" debug/export_console_wrapper=0 -binary_format/embed_pck=false +binary_format/embed_pck=true texture_format/s3tc_bptc=true texture_format/etc2_astc=false codesign/enable=false @@ -90,7 +90,7 @@ script_export_mode=2 custom_template/debug="" custom_template/release="" debug/export_console_wrapper=0 -binary_format/embed_pck=false +binary_format/embed_pck=true texture_format/s3tc_bptc=true texture_format/etc2_astc=true codesign/enable=false diff --git a/packaging/linux/AppRun b/packaging/linux/AppRun new file mode 100644 index 0000000..69fc679 --- /dev/null +++ b/packaging/linux/AppRun @@ -0,0 +1,5 @@ +#!/bin/sh +# AppImage entry point: launch the bundled game binary. +SELF="$(readlink -f "$0")" +HERE="$(dirname "$SELF")" +exec "${HERE}/usr/bin/step-line" "$@" diff --git a/packaging/linux/build_appimage.sh b/packaging/linux/build_appimage.sh new file mode 100644 index 0000000..c079941 --- /dev/null +++ b/packaging/linux/build_appimage.sh @@ -0,0 +1,45 @@ +#!/usr/bin/env bash +# Build a self-contained Step Line AppImage (all game data included). +# +# Prereqs: exported Linux binary in build/ (embed_pck=true), curl. +# Usage: bash packaging/linux/build_appimage.sh [version] +# Output: build/step-line--x86_64.AppImage +set -euo pipefail + +HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +ROOT="$(cd "$HERE/../.." && pwd)" +VERSION="${1:-$(sed -n 's/.*config\/version="\([^"]*\)".*/\1/p' "$ROOT/project.godot")}" +SRC_BIN="$ROOT/build/step-line-linux-${VERSION}.x86_64" + +if [[ ! -f "$SRC_BIN" ]]; then + echo "error: missing $SRC_BIN — run ./tools/build_releases.sh first" >&2 + exit 1 +fi + +WORK="$(mktemp -d)" +trap 'rm -rf "$WORK"' EXIT +APPDIR="$WORK/StepLine.AppDir" +mkdir -p "$APPDIR/usr/bin" +cp "$SRC_BIN" "$APPDIR/usr/bin/step-line" +# The export embeds the PCK (embed_pck=true), so no extra data files are needed. + +cp "$HERE/step-line.desktop" "$APPDIR/step-line.desktop" +cp "$HERE/AppRun" "$APPDIR/AppRun" +chmod +x "$APPDIR/AppRun" +cp "$HERE/step-line.png" "$APPDIR/step-line.png" +mkdir -p "$APPDIR/usr/share/metainfo" +cp "$HERE/step-line.appdata.xml" "$APPDIR/usr/share/metainfo/step-line.appdata.xml" + +TOOL="${APPIMAGE_TOOL:-/tmp/appimagetool-x86_64.AppImage}" +if [[ ! -f "$TOOL" ]]; then + echo "==> Downloading appimagetool" + curl -sL -o "$TOOL" \ + https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-x86_64.AppImage + chmod +x "$TOOL" +fi + +OUT="$ROOT/build/step-line-${VERSION}-x86_64.AppImage" +echo "==> Building AppImage -> $OUT" +# Extract-and-run avoids a FUSE dependency on the build host. +APPIMAGE_EXTRACT_AND_RUN=1 "$TOOL" "$APPDIR" "$OUT" +echo "AppImage ready: $(ls -la "$OUT" | awk '{print $5}') bytes" diff --git a/packaging/linux/step-line.appdata.xml b/packaging/linux/step-line.appdata.xml new file mode 100644 index 0000000..d8d00d4 --- /dev/null +++ b/packaging/linux/step-line.appdata.xml @@ -0,0 +1,21 @@ + + + net.step-line.StepLine + Step Line +

Workplace security simulation on Hollywood Boulevard + +

+ Step Line is a workplace security simulation about observation, communication, + access verification, and proportionate escalation. Guard the steps and entrance + of venues around Hollywood Boulevard: direct tourists, verify wristbands and IDs, + screen guests, and escalate only when you have to. +

+
+ step-line.desktop + CC0-1.0 + MIT + + + + + diff --git a/packaging/linux/step-line.desktop b/packaging/linux/step-line.desktop new file mode 100644 index 0000000..064c50f --- /dev/null +++ b/packaging/linux/step-line.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Type=Application +Name=Step Line +Comment=Workplace security simulation on Hollywood Boulevard +Exec=step-line +Icon=step-line +Terminal=false +Categories=Game;Simulation; +Keywords=security;simulation;hollywood; diff --git a/packaging/linux/step-line.png b/packaging/linux/step-line.png new file mode 100644 index 0000000000000000000000000000000000000000..8275a8c943dec759f6d58091d81b0728dadbc2a0 GIT binary patch literal 12951 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 literal 0 HcmV?d00001 diff --git a/packaging/windows/step-line.ico b/packaging/windows/step-line.ico new file mode 100644 index 0000000000000000000000000000000000000000..f6b33a254e826fbb8e2ddeb4f94c73fcaf802b84 GIT binary patch literal 52115 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 m>;jEm3N_{YYkqtc;{OHoW5oELgU{3e0000.exe + +!ifndef VERSION + !define VERSION "0.0.0" +!endif +!ifndef ARTIFACT + !error "ARTIFACT define required (path to exported windows exe)" +!endif +!ifndef ICON + !define ICON "packaging\windows\step-line.ico" +!endif + +; The installed executable always uses this clean name. +!define INSTALLED_EXE "Step Line.exe" +!define COMPANY "Step Line Project" +!define UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\Step Line" + +Unicode true +ManifestDPIAware true +Icon "${ICON}" +UninstallIcon "${ICON}" + +Name "Step Line ${VERSION}" +OutFile "build\step-line-setup-${VERSION}.exe" +InstallDir "$PROGRAMFILES64\Step Line" +RequestExecutionLevel admin + +Page directory +Page instfiles +UninstPage uninstConfirm +UninstPage instfiles + +Section "Install" + SetOutPath "$INSTDIR" + + ; The self-contained executable contains ALL game data (embedded PCK). + File "/oname=${INSTALLED_EXE}" "${ARTIFACT}" + + WriteUninstaller "$INSTDIR\uninstall.exe" + + ; Shortcuts + CreateDirectory "$SMPROGRAMS\Step Line" + CreateShortCut "$SMPROGRAMS\Step Line\Step Line.lnk" "$INSTDIR\${INSTALLED_EXE}" + CreateShortCut "$SMPROGRAMS\Step Line\Uninstall.lnk" "$INSTDIR\uninstall.exe" + CreateShortCut "$DESKTOP\Step Line.lnk" "$INSTDIR\${INSTALLED_EXE}" + + ; Registry (Add/Remove Programs) + WriteRegStr HKLM "${UNINST_KEY}" "DisplayName" "Step Line" + WriteRegStr HKLM "${UNINST_KEY}" "DisplayVersion" "${VERSION}" + WriteRegStr HKLM "${UNINST_KEY}" "Publisher" "${COMPANY}" + WriteRegStr HKLM "${UNINST_KEY}" "DisplayIcon" "$INSTDIR\${INSTALLED_EXE}" + WriteRegStr HKLM "${UNINST_KEY}" "UninstallString" '"$INSTDIR\uninstall.exe"' + WriteRegDWORD HKLM "${UNINST_KEY}" "NoModify" 1 + WriteRegDWORD HKLM "${UNINST_KEY}" "NoRepair" 1 +SectionEnd + +Section "Uninstall" + Delete "$INSTDIR\${INSTALLED_EXE}" + Delete "$INSTDIR\uninstall.exe" + RMDir "$INSTDIR" + Delete "$SMPROGRAMS\Step Line\Step Line.lnk" + Delete "$SMPROGRAMS\Step Line\Uninstall.lnk" + RMDir "$SMPROGRAMS\Step Line" + Delete "$DESKTOP\Step Line.lnk" + DeleteRegKey HKLM "${UNINST_KEY}" +SectionEnd diff --git a/tools/build_releases.sh b/tools/build_releases.sh index 5f29fc8..a2a3c62 100755 --- a/tools/build_releases.sh +++ b/tools/build_releases.sh @@ -16,6 +16,8 @@ set -euo pipefail GODOT="${GODOT:-godot}" VERSION="$(grep -oP 'config/version="\K[^"]+' project.godot)" mkdir -p build +# Presets now embed the PCK into a single binary; drop stale .pck leftovers. +rm -f build/*.pck echo "==> Exporting Linux (x86_64)" "$GODOT" --headless --export-release "Linux" "build/step-line-linux-${VERSION}.x86_64" diff --git a/tools/generate_textures.py b/tools/generate_textures.py index 48b1a9f..2138ea4 100644 --- a/tools/generate_textures.py +++ b/tools/generate_textures.py @@ -159,8 +159,7 @@ def vignette(): px[x, y] = int(255 * (t * t)) save(img, "vignette.png") -def icon(name, draw_fn): - size = 64 +def icon(name, draw_fn, size=64): img = Image.new("RGBA", (size, size), (0, 0, 0, 0)) d = ImageDraw.Draw(img) draw_fn(d, size) @@ -185,6 +184,30 @@ def icons(): icon("icons/wand.png", wand) icon("icons/rec_dot.png", rec) +def app_icon(): + """Game app icon: dark badge, gold star, white 'S' — used by desktop/AppImage + (PNG) and the Windows installer (ICO).""" + def badge(d, s): + d.ellipse([2, 2, s-2, s-2], fill=(24, 26, 38, 255)) + d.ellipse([int(s*0.10), int(s*0.10), int(s*0.90), int(s*0.90)], outline=(120, 130, 170, 255), width=max(2, s//64)) + # gold star + cx, cy, r = s*0.5, s*0.44, s*0.30 + pts = [] + for i in range(10): + ang = -90 + i * 36 + rad = r if i % 2 == 0 else r * 0.42 + import math + pts.append((cx + rad * math.cos(math.radians(ang)), cy + rad * math.sin(math.radians(ang)))) + d.polygon(pts, fill=(255, 205, 80, 255)) + icon("icon.png", badge, size=1024) + icon("icon.ico", badge, size=256) + + # multi-size ICO for Windows (from the 256 render) + src = Image.open(os.path.join(ASSETS, "icon.png")) + ico_path = os.path.join(ASSETS, "icon.ico") + src.save(ico_path, format="ICO", sizes=[(256, 256), (128, 128), (64, 64), (48, 48), (32, 32), (16, 16)]) + print("wrote assets/textures/icon.ico (multi-size)") + def cards(): CW, CH = 256, 128 def base(card_name, bg, label, band=(0,0,0,0)): @@ -220,5 +243,6 @@ if __name__ == "__main__": skyline() vignette() icons() + app_icon() cards() print("done")