JA

ゲームを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。