- 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-<ver>.exe - packaging/linux: step-line.desktop, AppRun, step-line.appdata.xml, build_appimage.sh (appimagetool, APPIMAGE_EXTRACT_AND_RUN) -> step-line-<ver>-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
3.4 KiB
3.4 KiB
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.
- Switch the Windows/Linux/macOS export presets to
binary_format/embed_pck=trueso a single self-contained binary replaces the exe+pck pair (all game data in one file). - Add a game icon:
assets/icon.png(AppImage/desktop) +assets/icon.icoandpackaging/windows/step-line.icogenerated bytools/generate_textures.py. - Author
packaging/windows/step-line.nsi(NSIS): installer that installs the exe, writes the uninstaller, shortcuts, and registry uninstall entry. - Add CI packaging steps to
.gitea/workflows/build.yml(NSIS via apt; AppImage via appimagetool) so tags/dispatch producestep-line-setup-<ver>.exeandstep-line-<ver>-x86_64.AppImagenext to the portable binaries. - Extend
tools/publish_release.shartifact glob to upload the installer/AppImage too. - Verify on CI: NSIS installer builds (cannot be run locally — no
makensison this box). - Verify the Windows installer contents in CI (e.g.
7z lshows 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.
- Author AppDir files:
packaging/linux/step-line.desktop,packaging/linux/AppRun, icon wiring. - Add
packaging/linux/build_appimage.sh(appimagetool;APPIMAGE_EXTRACT_AND_RUN=1to avoid FUSE dependency) producingstep-line-<ver>-x86_64.AppImage. - 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). - AppStream metainfo added (
packaging/linux/step-line.appdata.xml); tool validates clean. - CI verification: AppImage step runs on tags/dispatch and the artifact uploads.
- 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 login). Decide with the host admin: open repo visibility /REQUIRE_SIGNIN_VIEW=falseor accept sign-in-required downloads. Pages and the tag page are already public (HTTP 200).
Future Systems (design-level backlog)
- Body-camera replay timeline in the shift review.
- Long (10-15 minute) shift lengths (phase lighting already implemented).
- Venue selection startup menu (keyboard cycling with
Vis implemented). - IDE/editor-based GUT integration when a Godot editor workflow is introduced.
- Reduce RefCounted reference cycles (NPCController <-> FSM) noted in
MEMORY.md.
Open Polish
- Add a body/wand cooldown feel: wand screening currently has no reuse penalty; consider a short per-guest scan animation.
- Keep
%placeholders stable inStrings.fmtwhen adding keys (positional formatting).
Detailed Graphics — remaining performance items
The visual pass is done (textures, rigs, HUD feedback — see DONE.md). Remaining work is
performance hardening only.
- Profile the crowd: ensure textured materials and props hold target frame rate around a busy entrance.
- Add LOD or culling for distant NPCs/props if the crowd grows.