把你的游戏做成可执行文件
如果要把游戏交给什么都没安装的人(没有 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。