Com o SDK do Play Games para PC, você pode acessar o Google Play Services para criar e monetizar seu jogo em computadores. Venda conteúdo digital usando o Play Faturamento, faça login sem problemas usando o Play Games e verifique se os usuários têm um direito de acesso válido ao seu aplicativo com a API Play Integrity.
Pronto para começar?
Pré-requisitos
Crie uma entrada de app no Play Console e reivindique um nome de pacote do Google Play.
Baixe e instale o Google Play Games para PC e faça login com sua Conta do Google.
Etapa 1: adicionar o SDK ao projeto
C++
Baixe o SDK do Play Games para PCC++.
Copie a pasta de cabeçalhos da API
includes/para a base de código do aplicativo.Copie os arquivos redistribuíveis do diretório
imports/para o projeto do aplicativo, dependendo da arquitetura de destino:Para 64 bits (x64) : copie os arquivos de
imports/x64/.Para 32 bits (x86) : copie os arquivos de
imports/x86/.Vincule seu projeto a
play_pc_sdk.lib, permitindo o acesso ao conteúdo deplay_pc_sdk.dll.
C#
Baixe o SDK do UnityPlay Games para PC como um arquivo tarball (.tgz).
O SDK é distribuído como um tarball (.tgz) compatível com o Unity Package Manager (UPM). Para importar o pacote, consulte Instalar um pacote UPM de um arquivo tar local
Para documentação detalhada, instruções de configuração e orientações adicionais, consulte a página do pacote do Unity para PC do Play.
Etapa 2: adicionar um arquivo de manifesto
Antes de usar o SDK no jogo, é necessário associar o executável do jogo ao nome do pacote do Google Play reivindicado no Play Console. Isso é feito adicionando um arquivo manifest.xml no mesmo diretório do executável do jogo.
Exemplo de conteúdo manifest.xml:
<?xml version="1.0" encoding="utf-8"?>
<?Manifest version="1">
<?Application>
<?PackageName>com.example.package<?/PackageName>
<?/Application>
<?/Manifest>
Exemplo de posicionamento manifest.xml:
C:\Program Files
└───Example Game
├───Game.exe
└───manifest.xml
Etapa 3: assinar digitalmente o jogo
Antes que o jogo possa usar o SDK, o executável dele precisa ser assinado digitalmente usando uma assinatura digital Authenticode. Para instruções sobre como assinar um executável, consulte a documentação sobre o SignTool .
Quando você concluir o processo de assinatura digital do jogo, envie as informações do certificado ao representante do Google para configuração.
Etapa 4: inicializar o SDK
Inicialize o SDK durante a sequência de inicialização do jogo. Isso deve ser feito automaticamente, sem exigir interação do usuário, e é recomendável verificar se a inicialização foi bem-sucedida antes de renderizar a janela do jogo. Isso oferece a melhor experiência do usuário, mostrando e resolvendo erros o mais rápido possível, e evita que a janela do jogo apareça brevemente nos casos em que o processo do jogo precisa ser encerrado.
Comece a usar o SDK chamando
GooglePlayInitialize (C++) /
GooglePlayInitialization.InitializeAsync (C#)
para inicializar a API. Isso vai configurar o estado global, conectar-se ao ambiente de execução do SDK
e verificar se o aplicativo foi iniciado corretamente. Isso PRECISA ser chamado e ter o callback de continuação concluído com InitializeResult::ok() (C++) / Result.IsOk (C#) igual a true antes que qualquer outra API possa ser usada.
C++
// Initialize the SDK as part of the startup sequence of your application.
auto promise = std::make_shared<std::promise<InitializeResult>>();
GooglePlayInitialize(
[promise](InitializeResult result) {
promise->set_value(std::move(result));
});
auto initialize_result = promise->get_future().get();
if (initialize_result.ok()) {
// The SDK succeeded with initialization. Continue with the startup sequence
// of the game.
// ...
} else if (initialize_result.code() == InitializationError::kActionRequiredShutdownClientProcess) {
// The SDK failed to initialize and has requested that your game process exit
// as soon as possible.
exit(1);
} else {
// The SDK failed to initialize for an alternative reason. It is still
// generally recommended that you exit the game process as soon as possible,
// because it won't be possible to access any APIs in the SDK. Critical
// operations such as verifying the user owns a valid license to your game
// won't be possible.
// ...
}
C#
// SDK Clients
private BillingClient _billingClient;
private IntegrityClient _integrityClient;
// Stored product information
private string _offerToken;
private async void InitializeSDK()
{
// The factory provides the necessary handler for initialization.
var initializationHandler = PlayPcSdkFactory.InitializationHandler;
var result = await GooglePlayInitialization.InitializeAsync(initializationHandler);
if (result.IsOk)
{
// Use the factory to get Unity-compatible instances of the clients
_billingClient = PlayPcSdkFactory.CreateBillingClient();
_integrityClient = PlayPcSdkFactory.CreateIntegrityClient();
// SDK is ready for use
}
else
{
// Handle specific, actionable errors
if (result.Code == InitializationError.ActionRequiredShutdownClientProcess)
{
Log("This game must be launched through the Google Play Games client. Please exit all game processes immediately, GPG will relaunch the game safely.");
Application.Quit();
}
}
}
Se a inicialização falhar com o código kActionRequiredShutdownClientProcess (C++) / InitializationError.ActionRequiredShutdownClientProcess (C#), saia do processo do jogo o mais rápido possível. O ambiente de execução do SDK vai tentar ajudar o usuário sem que nenhuma outra ação seja necessária do jogo. Por exemplo, se o usuário não tiver uma licença válida para o jogo, o Google Play Games vai pedir que ele compre uma cópia. Para outros erros, também é necessário sair do processo do jogo, porque não será possível usar o SDK para realizar operações críticas, como verificar se o usuário tem uma licença válida para o jogo.
Uma resposta não bem-sucedida pode indicar uma das seguintes condições:
O ambiente de execução do SDK não está instalado, não está em execução no dispositivo ou é uma versão mais antiga que não é compatível com o SDK integrado ao jogo.
O ambiente de execução do SDK não conseguiu verificar a identidade do aplicativo do jogo. Isso pode ocorrer devido a um
manifest.xmlinválido ou ao uso do SDK sem ativar o modo de desenvolvedor durante o desenvolvimento. Sem isso, o executável do jogo precisa ser assinado digitalmente com o certificado digital registrado no nome do pacote do Google Play.O executável do jogo não foi iniciado pelo cliente do Google Play Games.
O usuário ativo no Google Play Games não tem uma licença para o aplicativo.
Etapa 5: (opcional) suporte a vários processos de jogo
Conclua estas etapas de integração adicionais se o jogo usar vários processos e o SDK do Play Games para PC for usado por um processo diferente daquele iniciado pelo Google Play Games no PC. Por exemplo, se o Google Play Games no PC iniciar o inicializador do jogo e, em seguida, o inicializador iniciar o processo do jogo que vai interagir com o SDK.
O processo iniciado diretamente pelo Google Play Games para PC precisa verificar se a inicialização do SDK do Play Games para PC foi bem-sucedida.
Isso oferece a melhor experiência do usuário, mostrando erros o mais rápido possível. O subprocesso que usa o SDK também precisa realizar a inicialização, além do processo iniciado diretamente.
Para usar o SDK do Play Games para PC em um subprocesso, encaminhe os parâmetros da linha de comando para o subprocesso gerado.
Exemplo de encaminhamento de parâmetros de linha de comando:
Processes hierarchy tree: GooglePlayGames.exe └───YourGameLauncher.exe --gpg_args=abc --your_args=123 └───YourGame.exe --gpg_args=abc --your_args=123Neste exemplo, vemos uma hierarquia de processos em que o Google Play Games para PC (
GooglePlayGames.exe) inicia o jogo (YourGameLauncher.exe) com alguns parâmetros de exemplo (--gpg_args=abc --your_args=123). Em seguida, o jogo gera um subprocesso (YourGame.exe) que usa o SDK do Play Games para PC. Para permitir isso, o processo do jogo iniciado pelo Google Play Games para PC encaminha os parâmetros da linha de comando que recebeu para o subprocesso.Saia de todos os processos quando o jogo parar de ser executado.
Quando um usuário fecha o jogo ou ele sai devido a uma falha de inicialização do SDK, como
kActionRequiredShutdownClientProcess, feche todos os processos gerados pelo jogo. Isso garante que, na próxima vez que o jogo for iniciado pelo cliente do Google Play Games para PC, novas mudanças, como a troca para uma conta ativa diferente, entrem em vigor.
Próximas etapas
Use o SDK durante o desenvolvimento no seu ambiente de desenvolvimento integrado:
- Ativar o modo de desenvolvedor
Adicione recursos do Google Play para PC ao seu app:
- Vender produtos digitais com o Play Faturamento
- Medir seu marketing com o Play Install Referrer
- Proteger seu jogo com a API Play Integrity para PC