ゲームを1つの実行ファイルにする
何もインストールしていない人(PHPもDockerもない)にゲームを渡したいときは、JumPHPがゲームを1つのファイルにまとめます。ダウンロードして起動するだけで遊べ、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)のものです。JumPHPの拡張機能(SDLと、その画像・サウンド・フォントのモジュール、OpenGL、OpenAL、gd、zipなど)をすべて組み込んだ、1つの実行ファイルとしてのPHP 8.5です。
- ゲーム(コード、画像、サウンド、エンジン)は、PHARアーカイブの形で末尾に追加されます。
このPHPはすべてのゲームで共通です。一度だけ作る(Linuxでは約15分)か、公開されているJumPHPのバージョンからダウンロードして、~/.jumphp/standaloneに保存されます。以降は、実行ファイルを数秒で作れます。
プレイヤーの環境では
初回の起動時に、ゲームがキャッシュに展開されます(1秒ほど)。2回目以降は、すぐに起動します。セーブデータとオプションは、データフォルダに保存されます。
| 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 によって PC が保護されました」と表示されるので、詳細情報をクリックしてから実行をクリックしてください。Linuxでは、ダウンロードしたあとに
chmod +x mon-jeu-linux-x86_64を実行します。 - Windows用のPHPは、Windows上でしか作れません。GitHub(JumPHPリポジトリの
standaloneワークフロー)が作り、コマンドがそれをダウンロードします。 - x86_64のプロセッサのみ対応です(MacやARMには、まだ対応していません)。
技術的な詳細:お使いのプロジェクトのdocs/standalone.md。