Установщик публикации

В этом документе показано, как опубликовать свою игру в Google Play Games на ПК с помощью установщика игры.

При использовании метода "Установка разработчиком" предоставленный вами установщик игры должен управлять установкой, обновлением и удалением игры.

Прежде чем начать

Интегрируйте SDK Google Play Games в свою игру.

Упакуйте свою игру в файл WAB.

Для запуска Google Play Games на ПК необходимо загрузить установщик игры в Google Play Console в виде файла пакета приложения Windows (WAB). Чтобы создать файл WAB, выполните следующие действия:

  1. Загрузите инструмент для публикации в Play Store . Вы можете запустить этот инструмент в командной строке Windows или PowerShell.

  2. Создайте файл конфигурации публикации в Play Store с любым именем. Например, 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 . Название пакета должно соответствовать следующим правилам:
      • Она должна состоять как минимум из двух сегментов (одной или более точек).
      • Каждый сегмент должен начинаться с буквы.
      • Все символы должны быть буквенно-цифровыми или представлять собой символ подчеркивания ( [a-zA-Z0-9_] ).
    • VERSION_NAME : Строка версии игры. Это может быть произвольная строка, но она должна быть уникальной для всех загруженных WAB-файлов вашей игры. Например: 1.0 , 1.0.1-beta , 2025.11.24 , v1.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_MACHINE или HKEY_CURRENT_USER ; не включайте имя раздела в строку пути. Например, если ваш установщик записывает данные в HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\YourUniqueName , укажите только Software\Microsoft\Windows\CurrentVersion\Uninstall\YourUniqueName . Google Play Games на ПК ищет этот путь в нескольких разделах реестра, чтобы найти значения, необходимые для запуска и удаления.

        Исполняемый файл, указанный в INSTALLER_PATH должен создать эти ключи реестра. Перед завершением установки необходимо создать пары ключ-значение реестра и имя значения, указанные в параметрах installation-path-registry-location , launch-path-registry-location и uninstall-path-registry-location . Хотя в примере используются InstallLocation и UninstallString , вы можете указать любое имя в этих тегах <value-name> , если ваш установщик создаст соответствующие записи реестра для всех трех. Google Play Games на ПК использует эти значения для запуска и удаления игры. Если ваша игра использует лаунчер, то этот путь должен указывать на ключ реестра, содержащий информацию об установке лаунчера, а значение в записи реестра, указанной в launch-path-registry-location должно указывать на каталог лаунчера.

        Этот путь должен быть уникальным на компьютере пользователя. Например: SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\YourUniqueName .

        Если ваш установщик игры — 32-битное приложение, работающее на 64-битной Windows, 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.

    Рассмотрим игру под названием MyGame , у которой есть установщик игры game_installer.exe и лаунчер игры launcher.exe . В примере также показано, как использовать 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. Запустите инструмент публикации Play в командной строке Windows или PowerShell.

    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 Store

    Предположим, что в текущем рабочем каталоге находятся исполняемый файл инструмента публикации Play playpublishingtool.exe , файл конфигурации публикации Play play_publishing_config.xml и установщик игры game_installer.exe .

    Ваша текущая рабочая директория должна выглядеть следующим образом:

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

    Чтобы создать WAB-файл с именем, например, installer_bundle.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
    

    Включение автоматического запуска при установке игр, изначально предназначенных для ПК (необязательно)

    В Google Play Games на ПК можно включить функцию «автозапуска», которая автоматически запускает игру сразу после завершения установки. Эта функция обеспечивает удобство использования, позволяя игроку сразу же погрузиться в игру, полностью авторизованному в экосистеме Google Play Games на ПК.

    Как это работает

    При включении этой функции Google Play Games на ПК будет передавать токен сессии процессу стороннего установщика, используя аргументы командной строки. Затем ваш установщик будет отвечать за извлечение этого токена и его использование для запуска исполняемого файла игры в аутентифицированном контексте.

    Предварительные требования

    Для использования этой функции ваш сторонний установщик должен уметь обрабатывать аргументы командной строки.

    Этапы реализации

    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 не контролирует процессы, происходящие внутри установщика после его запуска.

Опубликуйте игру с помощью Play Console.

После успешного создания WAB для вашей игры загрузите её в Play Console и настройте параметры и требования. Для публикации игры выполните следующие шаги:

Добавьте поддержку игр Google Play на ПК в форм-факторе

Этот шаг необходим только при первой публикации игры.

  1. В меню Play Console слева выберите «Тестирование и выпуск» > «Настройка» > «Расширенные настройки» ( прямая ссылка ).
  2. Перейдите на вкладку «Форм-факторы» и добавьте Google Play Games on PC выбрав соответствующий пункт в выпадающем списке «+ Добавить форм-фактор» .

  3. В правой части экрана нажмите кнопку «Управление» , соответствующую разделу «Игры Google Play на ПК» .

  4. Выберите опцию «Использовать выделенную дорожку для игры в составе пакета приложений Windows» .

  5. Нажмите «Сохранить» , а затем еще раз «Сохранить» в диалоговом окне подтверждения.

Включите управляемую публикацию.

Чтобы включить управляемую публикацию, выполните следующие действия.

  1. На странице «Обзор издательской деятельности» в разделе «Управляемая издательская деятельность» нажмите «Включить управляемую издательскую деятельность» .
  2. Появится диалоговое окно. Включите управляемую публикацию для трека.
  3. Нажмите « Сохранить ».

Загрузите WAB-файл

Для загрузки WAB-файла выполните следующие действия:

  1. В меню Play Console слева выберите «Тестирование и выпуск» > «Расширенные настройки » ( прямая ссылка ).
  2. На странице «Расширенные настройки» перейдите на вкладку «Форм-факторы» .
  3. На вкладке «Форм-факторы» нажмите « + Добавить форм-фактор» и выберите «Google Play Games на ПК» , чтобы добавить игру.
  4. В разделе «Игры Google Play на ПК» нажмите «Управление» .
  5. Выберите « Использовать выделенную дорожку для игры в составе пакета приложений Windows» .
  6. Нажмите « Сохранить ».
  7. В консоли Play Console в левом меню выберите «Тестирование и выпуск» > «Производство» ( прямая ссылка ).
  8. На странице «Производство» выберите в выпадающем списке «Формат устройства » только игры Google Play для ПК (Windows) .
  9. На вкладке «Пакет приложений Windows» нажмите «Редактировать» и загрузите WAB-файл.

Настройте требования к ПК под управлением Windows.

Для настройки требований к ПК под управлением Windows:

  1. В консоли Play в левом меню выберите «Увеличить количество пользователей» > «Присутствие в магазине» > «Настройки магазина» ( прямая ссылка ).
  2. В разделе «Требования к ПК» нажмите кнопку «Редактировать» в правой части экрана.
  3. Обновите поля и нажмите «Сохранить» .

Настройте графическое оформление покупки внутри приложения.

Это необязательный шаг. Чтобы настроить графическое оформление покупки внутри приложения:

  1. В консоли Play в левом меню выберите «Увеличить количество пользователей» > «Присутствие в магазине» > «Списки магазинов » ( прямая ссылка ).
  2. В разделе «Список магазинов по умолчанию» на вкладке «Списки» нажмите кнопку -> (стрелка) справа. Это переведет вас на страницу списка магазинов по умолчанию .
  3. Перейдите в раздел «Игры Google Play на ПК» и загрузите изображение по ссылке «Графика для внутриигровых покупок в Google Play на ПК (Windows)» .
  4. Нажмите « Сохранить ».

Отправить изменения на проверку

  1. В меню левой панели консоли Play выберите «Обзор публикации» .
  2. В разделе «Изменения, еще не отправленные на проверку» нажмите « Отправить изменения на проверку» .

После того, как команда проверки одобрит ваши изменения, ваша игра станет доступна в Google Play.