Publicação do instalador

Este documento mostra como publicar seu jogo no Google Play Games no PC usando o instalador do jogo.

Com o fluxo instalado pelo desenvolvedor, o instalador do jogo fornecido precisa gerenciar a instalação, a atualização e a desinstalação do jogo.

Antes de começar

Integre o SDK do Google Play Games ao seu jogo.

Empacote o jogo como um arquivo WAB

O Google Play Games no PC exige que o instalador do jogo seja enviado ao Google Play Console como um arquivo de pacote de app do Windows (WAB). Para criar um arquivo WAB, siga estas etapas:

  1. Faça o download da ferramenta de publicação do Google Play. É possível executar essa ferramenta na linha de comando do Windows ou no PowerShell.

  2. Crie o arquivo de configuração de publicação do Google Play com qualquer nome. Por exemplo, play_publishing_config.xml com o seguinte formato:

    <?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>

    Substitua:

    • PACKAGE_NAME: o nome do pacote do jogo. Esse é o identificador exclusivo que será associado ao jogo no Google Play. Por exemplo, com.yourcompany.yourgame. O nome do pacote precisa seguir estas regras:
      • Ele precisa ter pelo menos dois segmentos (um ou mais pontos).
      • Cada segmento precisa começar com uma letra.
      • Todos os caracteres precisam ser alfanuméricos ou um sublinhado ([a-zA-Z0-9_]).
    • VERSION_NAME: a string de versão do jogo. Ela pode ser uma string arbitrária, mas precisa ser exclusiva em todos os WABs enviados para o jogo. Por exemplo: 1.0, 1.0.1-beta, 2025.11.24, v1.rc1.

      • INSTALLER_REQUIRES_ELEVATION: indica se o executável do instalador precisa ser executado como administrador para concluir o processo de instalação.

        • "true": execute o executável como administrador.
        • "false": execute o executável como o usuário atual.
      • ACCEPTS_COMMAND_LINE_ARGUMENTS: um valor booleano que indica se o instalador pode aceitar argumentos de linha de comando para ativar o recurso de reprodução automática. Essa opção é opcional, e o valor padrão é "false". Para mais informações, consulte Ativar a reprodução automática.

      • INSTALLER_PATH: o caminho para o arquivo do instalador no WAB. Esse caminho pode ser absoluto ou relativo ao diretório pai da configuração de publicação do Google Play. Por exemplo, path\to\test\installer. Lembre-se de usar o authenticode e a assinatura de código para assinar o executável do instalador do jogo.

      • UNIQUE_REGISTRY_PATH: o caminho da chave de registro do Windows. Esse caminho precisa ser fornecido em relação a uma colmeia de registro, como HKEY_LOCAL_MACHINE ou HKEY_CURRENT_USER. Não inclua o nome da colmeia na string de caminho. Por exemplo, se o instalador gravar em HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\YourUniqueName, especifique apenas Software\Microsoft\Windows\CurrentVersion\Uninstall\YourUniqueName. O Google Play Games no PC pesquisa esse caminho em várias colmeias para localizar os valores necessários para a inicialização e a desinstalação.

        O executável especificado em INSTALLER_PATH precisa criar essas chaves de registro. Antes da conclusão da instalação, esses pares de chave de registro e nome de valor especificados em installation-path-registry-location, launch-path-registry-location e uninstall-path-registry-location precisam ser criados. Embora o exemplo use InstallLocation e UninstallString, é possível especificar qualquer nome nessas tags <value-name>, desde que o instalador crie entradas de registro correspondentes para todas as três. O Google Play Games no PC usa esses valores para iniciar e desinstalar o jogo. Se o jogo usar um inicializador, esse caminho precisará apontar para a chave de registro que contém informações de instalação do inicializador, e o valor na entrada de registro especificada por launch-path-registry-location precisará apontar para o diretório do inicializador.

        Esse caminho precisa ser exclusivo na máquina do usuário. Por exemplo: SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\YourUniqueName.

        Se o instalador do jogo for um aplicativo de 32 bits executado no Windows de 64 bits, o Windows usará o redirecionamento de registro para gravar entradas de registro em HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node. Por exemplo, uma gravação em HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\YourUniqueName é redirecionada para HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\YourUniqueName.

      • LAUNCHER_REQUIRES_ELEVATION: indica se o inicializador ou o executável do jogo precisa ser executado como administrador sempre que for iniciado.

        • "true": execute o executável como administrador.
        • "false": execute o executável como o usuário atual.
      • RELATIVE_PATH_TO_LAUNCHER_EXE: o caminho para o inicializador ou o executável do jogo no diretório de instalação. Isso precisa incluir o nome do arquivo executável do inicializador ou do jogo. Por exemplo, se o arquivo do inicializador ou do jogo for chamado mygame.exe e estiver localizado em {INSTALL_DIR}\Resources\mygame.exe, você precisará colocar Resources\mygame.exe

      • LAUNCHER_ARGS_IF_ANY: todos os argumentos de linha de comando que precisam ser transmitidos ao inicializador ou ao jogo. Essa entrada é opcional.

        • No caso de vários argumentos associados a um executável, eles precisam ser separados por um espaço.
        • Os argumentos precisam ser prefixados com '--' ou '-', se isso for exigido pelo executável.
      • UNINSTALLER_REQUIRES_ELEVATION: indica se o executável do desinstalador precisa ser executado como administrador para concluir o processo de desinstalação.

        • "true": execute o executável como administrador.
        • "false": execute o executável como o usuário atual.

    Exemplo de arquivo de configuração de publicação do Google Play

    Considere um jogo chamado MyGame, com o instalador game_installer.exe e o inicializador launcher.exe. O exemplo também mostra como usar CDATA. Confira como play_publishing_config.xml vai aparecer:

    <?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. Execute a ferramenta de publicação do Google Play na linha de comando do Windows ou no Powershell.

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

    Para substituir um arquivo WAB com o mesmo nome, use o argumento --force.

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

    Substitua:

    • PLAY_PUBLISHING_CONFIG_PATH: o caminho para a configuração de publicação do Google Play. Por exemplo, path\to\play_publishing_config.xml.
    • WAB_OUTPUT_PATH: o caminho para o arquivo WAB. Por exemplo, path\to\output_bundle.wab.

    Como usar a ferramenta de publicação do Google Play

    Considere que você tem o binário da ferramenta de publicação do Google Play playpublishingtool.exe, a configuração de publicação do Google Play play_publishing_config.xml e o instalador do jogo game_installer.exe no diretório de trabalho atual.

    O diretório de trabalho atual precisa ser parecido com este:

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

    Para criar um WAB com o nome, digamos, installer_bundle.wab no mesmo diretório, o comando seria:

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

    Com o argumento --force, o comando seria:

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

    Em caso de sucesso, você verá uma saída semelhante a esta:

    Successfully built the installer bundle at installer_bundle.wab
    

    Encontre o arquivo WAB na pasta:

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

    Ativar a reprodução automática após a instalação dos jogos nativos para PC (opcional)

    O Google Play Games no PC permite ativar um recurso de "reprodução automática", que inicia o jogo automaticamente logo após a conclusão do processo de instalação. Esse recurso oferece uma experiência do usuário perfeita, fazendo a transição do jogador diretamente para o jogo, totalmente autenticado no ecossistema do Google Play Games no PC.

    Como funciona

    Quando você ativa o recurso, o Google Play Games no PC transmite um token de sessão para o processo do instalador de terceiros (3P) usando argumentos de linha de comando. O instalador é responsável por extrair esse token e usá-lo para iniciar o executável do jogo em um contexto autenticado.

    Pré-requisitos

    Para usar esse recurso, o instalador de terceiros precisa ser capaz de processar argumentos de linha de comando.

    Etapas de implementação

    1. Ativar a reprodução automática na configuração de publicação do Google Play

      Para ativar esse recurso, adicione o acceptsCommandLineArguments atributo ao <installer> elemento no seu play_publishing_config.xml.

      Exemplo de trecho do conteúdo de 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>
      • Atributo: acceptsCommandLineArguments
      • Tipo: Boolean
      • Padrão: false
      • Comportamento: quando você define como "true", o GPG anexa o token de sessão aos argumentos de linha de comando ao executar o instalador.
    2. Processar o token de sessão no instalador

      Quando o instalador é iniciado pelo cliente do GPG, ele recebe o token de sessão como um argumento de linha de comando.

      • Formato do argumento: --g_session_token=<TOKEN>

      O que você precisa fazer:

      • Extração: o instalador precisa analisar os argumentos de linha de comando para recuperar a string de token.
      • Propagação: se o fluxo de instalação envolver a inicialização de um inicializador secundário ou processo de jogo, o instalador será responsável por transmitir o token de sessão com segurança ao processo de jogo final que usa o SDK.
      • Inicialização: use o token de sessão fornecido para iniciar o executável do jogo. Isso garante que o jogo seja executado em um contexto autenticado do GPG. Caso contrário, o InitializeSDK vai falhar, e o jogador precisará reiniciar o jogo.
    3. Tratamento de erros e substituições

      • Recuperação de token: se, por algum motivo, o GPG não puder gerar ou transmitir um token de sessão (por exemplo, falha na geração de token), o processo de instalação ainda será realizado. No entanto, o instalador será iniciado sem o argumento --g_session_token.
      • Robustez: o instalador precisa ser projetado para processar cenários em que o token de sessão está ausente. Nesses casos, o instalador precisa continuar com uma instalação padrão. Não acione a inicialização automática do jogo, porque o InitializeSDK vai falhar de qualquer maneira.
      • Erros do instalador: você é responsável pela robustez e pelo tratamento de erros do instalador e da sequência de inicialização do jogo que ele inicia. O GPG não tem controle sobre os processos que ocorrem no instalador depois que ele é iniciado.

Publicar o jogo usando o Play Console

Depois de criar o WAB do jogo, faça upload dele para o Play Console e gerencie as configurações e os requisitos. Siga as etapas para publicar o jogo:

Adicionar o formato Google Play Games no PC

Essa etapa só é necessária na primeira vez que você publica um jogo.

  1. No menu à esquerda do Play Console, selecione Teste e lançamento > Configuração > Configurações avançadas (link direto).
  2. Acesse a guia Formatos e adicione Google Play Games on PC no + Adicionar formato menu suspenso.

  3. Clique no botão Gerenciar correspondente ao formato Google Play Games no PC no lado direito.

  4. Selecione a opção Usar uma faixa dedicada para o jogo do pacote de app do Windows.

  5. Clique em Salvar e, depois, em Salvar novamente na caixa de diálogo de confirmação.

Ativar a publicação gerenciada

Para ativar a publicação gerenciada, siga estas etapas.

  1. Na página Visão geral da publicação, na seção Publicação gerenciada, clique em Ativar a publicação gerenciada.
  2. Uma caixa de diálogo vai aparecer. Mude para Publicação gerenciada ativada na faixa.
  3. Clique em Salvar.

Fazer upload do arquivo WAB

Para fazer upload do arquivo WAB, siga estas etapas:

  1. No menu à esquerda do Play Console, selecione Teste e lançamento > Configurações avançadas (link direto).
  2. Na página Configurações avançadas, clique na guia Formatos.
  3. Na guia Formatos, clique em + Adicionar formato e selecione Google Play Games no PC para adicionar.
  4. Na seção Google Play Games no PC, clique em Gerenciar.
  5. Selecione Usar uma faixa dedicada para o jogo do pacote de app do Windows.
  6. Clique em Salvar.
  7. No menu à esquerda do Play Console, selecione Teste e lançamento > Produção (link direto).
  8. Na página Produção, selecione Somente Google Play Games no PC (Windows) no menu suspenso de formato.
  9. Na guia Pacote de app do Windows, clique em Editar e faça upload do arquivo WAB.

Configurar os requisitos do PC com Windows

Para configurar os requisitos do PC com Windows:

  1. No menu à esquerda do Play Console, selecione Aumentar a base de usuários > Presença na loja > Configurações da loja (link direto).
  2. Na seção Requisitos do PC, clique no botão Editar no lado direito.
  3. Atualize os campos e clique em Salvar.

Configurar o gráfico de compra no app

Essa é uma etapa opcional. Para configurar o gráfico de compra no app:

  1. No menu à esquerda do Play Console, selecione Aumentar a base de usuários > Presença na loja > Páginas de detalhes do app(link direto).
  2. Na seção Página de detalhes padrão da guia Páginas de detalhes, clique no botão -> (seta) no lado direito. Isso vai levar você à página Página de detalhes do app padrão.
  3. Navegue até a seção Google Play Games no PC e faça upload da imagem em Gráfico de compra no app do Google Play Games no PC (Windows).
  4. Clique em Salvar.

Enviar mudanças para revisão

  1. No menu à esquerda do Play Console, selecione Visão geral da publicação.
  2. Na seção As mudanças ainda não foram enviadas para revisão, clique em Enviar mudanças para revisão.

Quando a equipe de revisão aprovar as mudanças, seu jogo poderá ser descoberto no Google Play.