インストーラの公開

このドキュメントでは、ゲーム インストーラを使用して PC 版 Google Play Games でゲームを公開する方法について説明します。

デベロッパーによるインストール フローでは、提供するゲーム インストーラでゲームのインストール、更新、アンインストールを管理する必要があります。

始める前に

ゲームに Google Play Games SDK を統合します。

ゲームを WAB ファイルとしてパッケージ化する

PC 版 Google Play Games では、ゲームのインストーラを Windows App Bundle(WAB)ファイルとして Google Play Console にアップロードする必要があります。WAB ファイルを作成する手順は次のとおりです。

  1. Play 画像公開ツールをダウンロードします。このツールは、Windows コマンドラインまたは PowerShell で実行できます。

  2. 任意の名前で Play 公開構成ファイルを作成します。たとえば、次の形式の play_publishing_config.xml を作成します。

    <?xml version="1.0" encoding="UTF-8"?>
    <play-publishing-config version="1.0">
      <application>
        <package-name>PACKAGE_NAME</package-name>
        <version-name>VERSION_NAME</version-name>
      </application>
      <installer requiresElevation=INSTALLER_REQUIRES_ELEVATION acceptsCommandLineArguments=ACCEPTS_COMMAND_LINE_ARGUMENTS>
        <path>INSTALLER_PATH</path>
        <installation-path-registry-location>
          <key-name>UNIQUE_REGISTRY_PATH</key-name>
          <value-name>InstallLocation</value-name>
        </installation-path-registry-location>
      </installer>
      <launcher requiresElevation=LAUNCHER_REQUIRES_ELEVATION>
        <launch-path-registry-location>
          <key-name>UNIQUE_REGISTRY_PATH</key-name>
          <value-name>InstallLocation</value-name>
        </launch-path-registry-location>
        <executable-invocation>
          <filename>RELATIVE_PATH_TO_LAUNCHER_EXE</filename>
          <arguments>LAUNCHER_ARGS_IF_ANY</arguments>
        </executable-invocation>
      </launcher>
      <uninstaller requiresElevation=UNINSTALLER_REQUIRES_ELEVATION>
        <uninstall-path-registry-location>
          <key-name>UNIQUE_REGISTRY_PATH</key-name>
          <value-name>UninstallString</value-name>
        </uninstall-path-registry-location>
      </uninstaller>
    </play-publishing-config>

    次のように置き換えます。

    • PACKAGE_NAME: ゲームのパッケージ名。 これは、Google Play でゲームに関連付けられる一意の識別子です。例: com.yourcompany.yourgame。 パッケージ名は次のルールに準拠している必要があります。
      • 2 つ以上のセグメント(1 つ以上のドット)が必要
      • 各セグメントは文字で始まる必要がある
      • 使用できる文字は英数字と下線のみ([a-zA-Z0-9_]
    • VERSION_NAME: ゲームのバージョン文字列。任意の文字列を指定できますが、ゲーム用にアップロードされたすべての WAB で一意である必要があります。例: 1.01.0.1-beta2025.11.24v1.rc1

      • INSTALLER_REQUIRES_ELEVATION: インストール プロセスを完了するために、インストーラの実行可能ファイルを管理者として実行する必要があるかどうかを示します。

        • "true": 実行可能ファイルを管理者として実行します。
        • "false": 実行可能ファイルを現在のユーザーとして実行します。
      • ACCEPTS_COMMAND_LINE_ARGUMENTS: インストーラがコマンドライン引数を受け入れて自動再生機能を有効にできるかどうかを示すブール値。省略可能で、デフォルト値は false です。詳細については、自動再生を有効にするをご覧ください。

      • INSTALLER_PATH: WAB 内のインストーラ ファイルのパス。このパスは、Play 公開構成の親ディレクトリに対する絶対パス または相対パス のいずれかになります。例: path\to\test\installer。 ゲームの インストーラの実行可能ファイルに署名するには、Authenticode とコード署名を使用してください。

      • UNIQUE_REGISTRY_PATH: Windows レジストリキーのパス。 このパスは、 HKEY_LOCAL_MACHINEHKEY_CURRENT_USER などのレジストリ ハイブを基準とした相対パスで指定する必要があります。パス文字列に ハイブ名を含めないでください。たとえば、インストーラが HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\YourUniqueNameに書き込む場合は、Software\Microsoft\Windows\CurrentVersion\Uninstall\YourUniqueNameのみを指定します。 PC 版 Google Play Games は、複数のハイブでこのパスを検索して、起動とアンインストールに必要な値を見つけます。

        INSTALLER_PATH で指定された実行可能ファイルは、これらのレジストリキーを作成する必要があります。インストールが完了する前に、installation-path-registry-locationlaunch-path-registry-locationuninstall-path-registry-location で指定されたレジストリキーと値名のペアを作成する必要があります。この例では InstallLocationUninstallString を使用していますが、インストーラが 3 つすべてに対応するレジストリ エントリを作成する限り、これらの <value-name> タグに任意の名前を指定できます。 PC 版 Google Play Games は、これらの値を使用してゲームを起動およびアンインストールします。ゲームでランチャーを使用している場合、このパスはランチャーのインストール情報を含むレジストリキーを指す必要があり、launch-path-registry-location で指定されたレジストリ エントリの値はランチャーのディレクトリを指す必要があります。

        このパスは、ユーザーのパソコンで一意である必要があります。例: SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\YourUniqueName

        ゲーム インストーラが 64 ビット版 Windows で実行される 32 ビット アプリケーションの場合、Windows は レジストリ リダイレクトを使用してレジストリ エントリを HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node に書き込みます。たとえば、HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\YourUniqueName への書き込みは、HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\YourUniqueName にリダイレクトされます。

      • LAUNCHER_REQUIRES_ELEVATION: ランチャーまたはゲームの実行可能ファイルを起動するたびに管理者として実行する必要があるかどうかを示します。

        • "true": 実行可能ファイルを管理者として実行します。
        • "false": 実行可能ファイルを現在のユーザーとして実行します。
      • RELATIVE_PATH_TO_LAUNCHER_EXE: インストール ディレクトリ内のランチャーまたはゲームの実行可能ファイルのパス。これには、ランチャーまたはゲームの実行可能ファイル名を含める必要があります。たとえば、ランチャーまたはゲーム ファイルの名前が mygame.exe で、{INSTALL_DIR}\Resources\mygame.exe にある場合は、Resources\mygame.exe と入力する必要があります。

      • LAUNCHER_ARGS_IF_ANY: ランチャーまたはゲームに渡す必要があるコマンドライン引数。 このエントリは省略可能です。

        • 実行可能ファイルに関連付けられた引数が複数ある場合は、スペースで区切る必要があります。
        • 実行可能ファイルで必要な場合は、引数の先頭に '--' または '-' を付ける必要があります。
      • UNINSTALLER_REQUIRES_ELEVATION: アンインストール プロセスを完了するために、アンインストーラの実行可能ファイルを管理者として実行する必要があるかどうかを示します。

        • "true": 実行可能ファイルを管理者として実行します。
        • "false": 実行可能ファイルを現在のユーザーとして実行します。

    Play 公開構成ファイルの例

    ゲーム インストーラが game_installer.exe、ゲームのランチャーが launcher.exeMyGame というゲームを考えてみましょう。 この例では、CDATA の使用方法も示しています。 play_publishing_config.xml は次のようになります。

    <?xml version="1.0" encoding="UTF-8"?>
    
    <play-publishing-config version="1.0">
      <application>
        <!-- The package name for your game. -->
        <package-name>com.mycompany.mygame</package-name>
        <!-- The game's version string. -->
        <version-name>1.0.0</version-name>
      </application>
      <!-- If requiresElevation is "true", installer runs as Administrator
           and a UAC prompt is displayed. This is required for system-wide
           installs (e.g., to Program Files) or writing to HKLM. -->
      <!-- If acceptsCommandLineArguments is "true", the installer must
           be able to accept command-line arguments to enable the auto-play
           feature. -->
      <installer requiresElevation="true" acceptsCommandLineArguments="true">
        <!-- Path to your installer executable. -->
        <path>game_installer.exe</path>
        <!-- The registry location where the installer writes the installation path. -->
        <installation-path-registry-location>
          <!-- Registry key path (typically under HKLM or HKCU).
               game_installer.exe MUST create this key. -->
          <key-name>SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\MySystemWideUniqueKey</key-name>
          <!-- game_installer.exe, specified in <path>, creates the registry
               value called 'InstallLocation' within
               SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\MySystemWideUniqueKey
               by the time it exits. -->
          <value-name>InstallLocation</value-name>
        </installation-path-registry-location>
      </installer>
    
      <!-- If requiresElevation is "true", launcher runs as Administrator
           and a UAC prompt is displayed on every game launch. -->
      <launcher requiresElevation="true">
        <!-- Specifies the registry location where Google Play Games reads the installation path
             in order to launch the game. -->
        <launch-path-registry-location >
          <!-- Registry key path (typically under HKLM or HKCU) where
               the launch path can be found. -->
          <key-name>SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\MySystemWideUniqueKey</key-name>
          <!-- Google Play Games reads the installation directory from this
               registry value, for example InstallLocation, to launch the game. -->
          <value-name>InstallLocation</value-name>
        </launch-path-registry-location>
        <executable-invocation>
          <!-- Game executable or launcher filename, relative to the
               directory path specified in the InstallLocation registry value. -->
          <filename>launcher.exe</filename>
          <!-- Optional arguments to pass to the executable.
               CDATA is used here to avoid issues with special characters
               like & or >. -->
          <arguments><![CDATA[arg1&arg2>arg3]]></arguments>
        </executable-invocation>
      </launcher>
    
      <!-- If requiresElevation is "true", uninstaller runs as
           Administrator and a UAC prompt is displayed for uninstall. -->
      <uninstaller requiresElevation="true">
        <!-- Registry key where Google Play Games finds the
             uninstallation command. -->
        <uninstall-path-registry-location>
          <!-- Registry key path (typically under HKLM or HKCU) where
               uninstall command can be found. -->
          <key-name>SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\MySystemWideUniqueKey</key-name>
          <!-- game_installer.exe also creates the registry value, for example, 'UninstallString'
               within SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\MySystemWideUniqueKey,
               containing the command Google Play Games executes to uninstall
               the game. -->
          <value-name>UninstallString</value-name>
        </uninstall-path-registry-location>
      </uninstaller>
    </play-publishing-config>
    
  3. Windows コマンドラインまたは PowerShell で Play 公開ツールを実行します。

    playpublishingtool.exe build-installer-bundle --input=PLAY_PUBLISHING_CONFIG_PATH --output=WAB_OUTPUT_PATH
    

    同じ名前の既存の WAB ファイルを上書きするには、--force 引数を使用します。

    playpublishingtool.exe build-installer-bundle --input=PLAY_PUBLISHING_CONFIG_PATH --output=WAB_OUTPUT_PATH --force
    

    次のように置き換えます。

    • PLAY_PUBLISHING_CONFIG_PATH: Play 公開構成のパス。例: path\to\play_publishing_config.xml
    • WAB_OUTPUT_PATH: WAB ファイルのパス。 例: path\to\output_bundle.wab

    Play 公開ツールの使用方法

    現在の作業ディレクトリに、Play 公開ツール バイナリ playpublishingtool.exe、Play 公開構成 play_publishing_config.xml、ゲーム インストーラ game_installer.exe があるとします。

    現在の作業ディレクトリは次のようになります。

    .\
    ├── game_installer.exe
    ├── play_publishing_config.xml
    ├── playpublishingtool.exe
    

    同じディレクトリに installer_bundle.wab という名前の WAB を作成する場合、コマンドは次のようになります。

    playpublishingtool.exe build-installer-bundle --input=play_publishing_config.xml --output=installer_bundle.wab
    

    --force 引数を使用する場合、コマンドは次のようになります。

    playpublishingtool.exe build-installer-bundle --input=play_publishing_config.xml --output=installer_bundle.wab --force
    

    成功すると、次のような出力が表示されます。

    Successfully built the installer bundle at installer_bundle.wab
    

    次のフォルダで WAB ファイルを見つけます。

      .\
      ├── game_installer.exe
      ├── installer_bundle.wab
      ├── play_publishing_config.xml
      ├── playpublishingtool.exe
    

    PC ネイティブ ゲームのインストール時に自動再生を有効にする(省略可)

    PC 版 Google Play Games では、インストール プロセスが完了するとすぐにゲームを自動的に起動する「自動再生」機能を有効にできます。この機能により、プレーヤーは PC 版 Google Play Games エコシステム内で完全に認証され、ゲームに直接移行できるため、シームレスなユーザー エクスペリエンスが実現します。

    仕組み

    機能 を有効にすると、PC 版 Google Play Games はコマンドライン引数を使用してサードパーティ(3P)インストーラ プロセスにセッション トークンを渡します。インストーラは、このトークンを抽出して、認証されたコンテキストでゲームの実行可能ファイルを起動します。

    前提条件

    この機能を使用するには、3P インストーラがコマンドライン引数を処理できる必要があります。

    実装手順

    1. Play 公開構成で自動再生を有効にする

      この機能をオプトインするには、acceptsCommandLineArguments 属性を <installer> 要素の play_publishing_config.xml に追加します。

      play_publishing_config.xml の内容の抜粋の例:

           <installer requiresElevation="true" acceptsCommandLineArguments="true">
              <path>path/to/installer.exe</path>
              <installation-path-registry-location>
                <key-name>SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\key</key-name>
                <value-name>InstallPath</value-name>
              </installation-path-registry-location>
           </installer>
      • 属性: acceptsCommandLineArguments
      • タイプ: Boolean
      • デフォルト: false
      • 動作: true に設定すると、インストーラの実行時に GPG がセッション トークンをコマンドライン引数に追加します。
    2. インストーラでセッション トークンを処理する

      インストーラが GPG クライアントによって起動されると、セッション トークンがコマンドライン引数として渡されます。

      • 引数の形式: --g_session_token=<TOKEN>

      必要な操作:

      • 抽出: インストーラはコマンドライン引数を解析して、トークン文字列を取得する必要があります。
      • 伝播: インストール フローでセカンダリ ランチャーまたはゲーム プロセスを起動する場合は、インストーラが SDK を使用する最終的なゲーム プロセスにセッション トークンを安全に渡す必要があります。
      • 起動: 提供されたセッション トークンを使用して、ゲームの実行可能ファイルを開始します。これにより、ゲームは認証された GPG コンテキスト内で実行されます。そうしないと、InitializeSDK が失敗し、プレーヤーはゲームを再起動する必要があります。
    3. エラー処理とフォールバック

      • トークンの取得: なんらかの理由で GPG がセッション トークンを生成または渡すことができない場合(トークンの生成に失敗した場合など)、インストール プロセスは続行されます。ただし、インストーラは --g_session_token 引数なしで起動されます。
      • 堅牢性: セッション トークンが存在しないシナリオを処理するようにインストーラを設計する必要があります。このような場合、インストーラは標準インストールを続行する必要があります。InitializeSDK は失敗するため、ゲームの自動起動をトリガーしないでください。
      • インストーラ エラー: インストーラの堅牢性とエラー処理、およびインストーラが開始するゲーム起動シーケンスについては、お客様の責任となります。GPG は、インストーラの起動後にインストーラ内で発生するプロセスを制御できません。

Google Play Console を使用してゲームを公開する

ゲームの WAB を作成したら、Google Play Console にアップロードして、設定と要件を管理します。ゲームを公開する手順は次のとおりです。

PC 版 Google Play Games フォーム ファクタを追加する

この手順は、ゲームを初めて公開するときにのみ必要です。

  1. Google Play Console の左側のメニューで、[テストと リリース] > [設定] > [詳細設定] を選択します(直接リンク)。
  2. [フォーム ファクタ] タブに移動し、Google Play Games on PC を [ + フォーム ファクタを追加] プルダウンから追加します。

  3. 右側の [PC 版 Google Play Games] フォーム ファクタに対応する [管理] ボタンをクリックします。

  4. [Windows App Bundle ゲームに専用トラックを使用する] オプションを選択します。

  5. [保存] をクリックし、確認ダイアログで [保存] をもう一度クリックします。

管理対象の公開をオンにする

管理対象の公開をオンにする手順は次のとおりです。

  1. [公開の概要] ページの [管理対象の公開] セクションで、[管理対象の公開をオンにする] をクリックします。
  2. ダイアログが表示されます。トラックの [管理対象の公開: オン] に切り替えます。
  3. [保存] をクリックします。

WAB ファイルをアップロードする

WAB ファイルをアップロードする手順は次のとおりです。

  1. Google Play Console の左側のメニューで、 [テストとリリース] > [詳細設定](直接リンク)を選択します。
  2. [詳細設定] ページで、[フォーム ファクタ] タブをクリックします。
  3. [**フォーム ファクタ**] タブで、[**\+ フォーム ファクタを追加**] をクリックし、[**PC 版 Google Play Games**] を選択して追加します。
  4. [PC 版 Google Play Games] セクションで、[管理] をクリックします。
  5. [Windows App Bundle ゲームに専用トラックを使用する] を選択します。
  6. [保存] をクリックします。
  7. Google Play Console の左側のメニューで、 [テストとリリース] > [製品版] を選択します(直接リンク)。
  8. [製品版] ページで、フォーム ファクタのプルダウンから [PC 版 Google Play Games(Windows)のみ] を選択します。
  9. [Windows App Bundle] タブで、[編集] をクリックして WAB ファイルをアップロードします。

Windows PC の要件を設定する

Windows PC の要件を設定する手順は次のとおりです。

  1. Google Play Console の左側のメニューで、 [ユーザーを増やす] > [ストアでの表示] > [ストアの設定](直接リンク)を選択します。
  2. [PC 要件] セクションで、右側の [編集] ボタンをクリックします。
  3. フィールドを更新して、[保存] をクリックします。

アプリ内購入の画像を設定する

このステップの実行は任意です。アプリ内購入の画像を設定する手順は次のとおりです。

  1. Google Play Console の左側のメニューで、 [ユーザーを増やす] > [ストアでの表示] > [ストアの掲載情報] を選択します(直接リンク)。
  2. [デフォルトのストアの掲載情報] セクションの [掲載情報] タブで、右側の [->](矢印)ボタンをクリックします。[デフォルトのストアの掲載情報] ページが開きます。
  3. [PC 版 Google Play Games] セクションに移動し、[PC 版 Google Play Games(Windows)のアプリ内購入の画像] に画像をアップロードします。
  4. [保存] をクリックします。

変更を審査に送信

  1. Google Play Console の左側のメニューで、[公開の概要] を選択します。
  2. [審査にまだ送信されていない変更] セクションで、[変更を審査に送信] をクリックします。

審査チームが変更を承認すると、ゲームが Google Play で見つけられるようになります。