ZH

把你的游戏做成可执行文件

如果要把游戏交给什么都没安装的人(没有 PHP,也没有 Docker):JumPHP 可以把它做成单个文件,下载后直接运行,支持 Linux 和 Windows。PHP、SDL、OpenGL 和 OpenAL 都已包含在内。

你需要在电脑上有一个 JumPHP 项目(见在你的电脑上)以及 Docker。你的 Claude 可以替你完成:对它说“给我的游戏做一个可执行文件”。

bin/jumphp export:standalone mon-jeu              # Linux:games/mon-jeu/dist/standalone/mon-jeu-linux-x86_64
bin/jumphp export:standalone mon-jeu --windows    # Windows:mon-jeu-windows-x86_64.exe
bin/jumphp export:standalone mon-jeu --linux --windows

它是怎么做出来的

  • PHP 来自 StaticPHP(micro):一个单文件可执行的 PHP 8.5,JumPHP 所需的扩展(SDL 及其图像、声音、字体模块,OpenGL、OpenAL、gd、zip……)全部编译在里面。
  • 你的游戏(代码、图片、音效、引擎)以 PHAR 归档的形式附加在文件末尾。

这个 PHP 对所有游戏都是同一个:它只需构建一次(Linux 下约 15 分钟),或者从 JumPHP 已发布的版本中下载,然后保存在 ~/.jumphp/standalone 中。之后生成一个可执行文件只需几秒钟。

玩家这一端

第一次启动时,游戏会解包到玩家的缓存中(约一秒),之后每次都会立即启动。存档和选项保存在玩家的数据文件夹中:

Linux Windows
游戏文件 ~/.cache/jumphp/ %LOCALAPPDATA%\JumPHP\
存档 ~/.local/share/<游戏 id>/ %APPDATA%\<游戏 id>\

在 Linux 上,它可以在 2013 年以来的任何发行版上运行(glibc 2.17),并像任何 Linux 游戏一样使用电脑的显示系统(X11 或 XWayland)、OpenGL 和声音(PulseAudio、PipeWire、ALSA)。在 Windows(10 或更高版本)上,无需安装任何东西。

须知

  • 该文件没有签名:Windows 会显示“Windows 已保护你的电脑”,需要点击更多信息,然后点击仍要运行。在 Linux 上,下载后需要运行:chmod +x mon-jeu-linux-x86_64。
  • 面向 Windows 的 PHP 只能在 Windows 上构建:它由 GitHub 构建(JumPHP 仓库的 standalone 工作流),再由该命令下载。
  • 仅支持 x86_64 处理器(暂不支持 Mac 和 ARM)。

技术细节:见你项目中的 docs/standalone.md。