JA

ゲームをネイティブAndroidアプリにする

JumPHPは、ゲームを、ブラウザを使わない本物のAndroidアプリにします:PHP 8.5、SDL、OpenGL ES、OpenALが、パソコンと同じようにアプリの中で動きます。オフラインで動作し、スマートフォン(ARM)とタブレットに対応しています。Android 8.0以降が対象です。

お使いのコンピューター上のJumPHPプロジェクト(お使いのコンピューターで)、Docker、Play Storeに出す場合はGoogle Play デベロッパーアカウント(一度だけ25ドル)が必要です。Claudeにすべて任せることもできます:「ゲームのネイティブAndroidアプリを作って」と頼んでください。

もう1つの方法であるTrusted Web Activityは、ゲームのページをChromeに表示します。より軽量ですが、ネットワークとサイトが必要です。同じパッケージ名と同じキーを使えば、ネイティブアプリは、新しいバージョンとして、Play Store上のTWAを置き換えます。

コマンド1つで

bin/jumphp android mon-jeu
  1. 初回は、アプリのパッケージ名(io.github.vous.mon_jeu:公開後は変えられません)を尋ね、~/.jumphp/android/keys/にアップロード用のキーを作ります(ゲームにTWAがあれば、そのキーを使います)。バックアップを取ってください。gitには入りません。
  2. プロジェクトに.github/workflows/android.ymlワークフローを置き、あなたの同意を得たうえで、GitHubリポジトリのシークレットにキーを送ります(暗号化され、ワークフローだけが読めます)。
  3. バージョンをgames/mon-jeu/android/app.jsonに書き込み、コミットして、あなたの同意を得たうえでpushします。
  4. GitHubがアプリをビルドします(初回は約25分、2回目以降は約8分:PHPとライブラリがキャッシュされます)。そして、あなたのキーで署名された、.apk(スマートフォン用)と**.aab**(Google Play用)を含む、リポジトリのリリースを公開します。コマンドは、それらをgames/mon-jeu/dist/android-native/にダウンロードします。

次のバージョンは:bin/jumphp android mon-jeu --version-name 1.1(バージョン番号は毎回1つ上がります)。GitHubを使わない場合:--localで、お使いのコンピューター上のDockerでアプリをビルドします。

スマートフォンで試すには:.apkを送って開く(「提供元不明のアプリのインストール」を許可)か、adb install mon-jeu-1.0.apkを実行します。

タッチ操作

エンジンは、ブラウザと同じように、画面上の操作ボタンを自分で描画します:十字キー(またはジョイスティック)、A、B、START。左右に黒い帯がある場合は、その中に表示されます。設定は、ブラウザ向けと同じくgame.yamlで行います。

game:
  touch: { pad: stick, a: Space, b: Escape, labels: { a: SAUT } }   # pad: stick = ジョイスティック、指定しなければ十字キー

Androidの戻るボタンは、Escと同じ扱いです。パソコンで確認するには: JUMPHP_TOUCH_CONTROLS=1 bin/jumphp run mon-jeu(マウスで操作します)。

アプリの中身

  • JumPHPの拡張機能(SDLと、その画像・サウンド・フォントのモジュール、OpenGL、OpenAL、gd、openssl、mbstringなど)つきでAndroid向けにコンパイルされたPHP 8.5、SDL2、OpenAL Soft:パソコンでゲームを動かしているものと同じです。
  • ゲームは、バージョンごとの初回起動時に展開されます(1〜2秒)。展開先は、アプリの非公開ストレージです。セーブデータとオプションは、更新をまたいで残ります。
  • 名前、アイコン(PWAのもの:assets/icon.png)、向き(ゲームの画面の形に合わせたもの)は、game.yamlから取られます。

Play Storeで

詳細(キー、スマートフォンでの動作確認、Play Consoleの各種申告、審査、次のバージョン、落とし穴):Play Storeに公開する:ステップバイステップ。要点は次のとおりです。

  1. Play Consoleで、アプリを作成(名前、言語、「ゲーム」、無料)し、各種の申告を済ませます:プライバシーポリシー(ゲームが何も収集しないことを書いたページ)、コンテンツのレーティング、ターゲット ユーザー、広告なし。
  2. Google Playによるアプリの署名:Googleは、スマートフォン向けにアプリへ署名するキーを保管します。あなたのキーは、アップロードがあなたからのものであることを証明するだけです(紛失した場合は、Googleが置き換えられます)。
  3. 内部テスト:テストとリリース > 内部テスト > 新しいリリースを作成 > .aabをアップロード > 保存 > 確認 > ロールアウト。テスターを追加すると、Googleのリンクからインストールできます。
  4. ストアの掲載情報:説明、512 × 512のアイコン(bin/jumphp buildが作ります:dist/web/icon-512.png)、1024 × 500の画像、2枚以上のスクリーンショット(bin/jumphp shot mon-jeu、またはスマートフォンで)。
  5. 本番公開:テストで問題がなければ、バージョンを昇格させます。Googleが審査します(数時間から数日)。新しい個人アカウントは、まず12人のテスターで14日間のテストを行う必要があります。

知っておきたいこと

  • HTTPSが使えます($engine->http()、wss://によるオンラインプレイ):証明書はゲームに同梱されています。
  • アプリのサイズは30〜40 MBです(2種類のプロセッサ向けのPHPとライブラリ)。

技術的な詳細:お使いのプロジェクトのdocs/android-native.md。