Start the built game from the builder AppImage #294

Merged
SkippySteve merged 3 commits from fix/appimage-launcher into main 2026-11-07 23:15:18 +00:00
SkippySteve commented 2026-11-07 19:24:56 +00:00 (Migrated from github.com)

The Linux AppImage is the builder. It already had a Play button in the window. This makes starting the game part of that same image, instead of a second download.

./Hookshot-<version>-x86_64.AppImage opens the builder. --play starts the game the builder saved, and --play <folder> starts a different build. A desktop action named Play does the same. The start drops HOOKSHOT_*, PYTHON*, APPDIR, APPIMAGE, ARGV0, OWD and LD_LIBRARY_PATH first, so the game loads SDL from beside itself.

The builder window is unchanged. There is no second AppImage.

Testing:

  • python3 -I -B tests/test_hookshot_launch.py (4 tests). A folder named 100% Games starts, and those variables are gone. A folder argument wins. No hookshot there is an error. The pack script does not emit a launcher AppImage, and the builder's desktop entry has the Play action.
  • Leaving the library variables set fails that check.
  • desktop-file-validate accepts the builder desktop file, including the Play action.
The Linux AppImage is the builder. It already had a Play button in the window. This makes starting the game part of that same image, instead of a second download. `./Hookshot-<version>-x86_64.AppImage` opens the builder. `--play` starts the game the builder saved, and `--play <folder>` starts a different build. A desktop action named Play does the same. The start drops `HOOKSHOT_*`, `PYTHON*`, `APPDIR`, `APPIMAGE`, `ARGV0`, `OWD` and `LD_LIBRARY_PATH` first, so the game loads SDL from beside itself. The builder window is unchanged. There is no second AppImage. Testing: - `python3 -I -B tests/test_hookshot_launch.py` (4 tests). A folder named `100% Games` starts, and those variables are gone. A folder argument wins. No `hookshot` there is an error. The pack script does not emit a launcher AppImage, and the builder's desktop entry has the Play action. - Leaving the library variables set fails that check. - `desktop-file-validate` accepts the builder desktop file, including the Play action.
shayderrr commented 2026-11-07 23:02:06 +00:00 (Migrated from github.com)

@SkippySteve Fix conflicts please.

@SkippySteve Fix conflicts please.
NotRexed commented 2026-11-07 23:07:53 +00:00 (Migrated from github.com)

Thanks! This one conflicts with main now (main moved a lot today: the controller chain 335/343/350 and the input-in-background PR are merged, and the Windows package now ships SDL2 as sdl2-compat on SDL3 3.4.20). Could you rebase it on main? I'll merge it once it applies cleanly.

Thanks! This one conflicts with main now (main moved a lot today: the controller chain 335/343/350 and the input-in-background PR are merged, and the Windows package now ships SDL2 as sdl2-compat on SDL3 3.4.20). Could you rebase it on main? I'll merge it once it applies cleanly.
shayderrr commented 2026-11-07 23:15:14 +00:00 (Migrated from github.com)

Thanks!

Thanks!
Commenting is not possible because the repository is archived.
No description provided.