Pular para o conteúdo principal

Inicialização do SDK e Handshake

Última atualização: 16 de julho de 2026

A inicialização do SDK é o processo em que o PlayServ prepara o contexto de runtime necessário para começar uma Session e chegar a um estado utilizável pelos recursos de gameplay. Isso inclui:

  • reunir as entradas de configuração obrigatórias
  • estabelecer a prontidão do cliente via PlayServ.Ready(...)
  • estabelecer a prontidão do servidor via PlayServ.Server.Ready()
informação

Use este fluxo sempre que precisar:

  • iniciar uma Session na abertura da aplicação
  • autenticar logo no início da Session via Ready(UserToken), ou mais tarde durante a execução
  • garantir que o runtime do servidor esteja pronto antes que os clientes possam entrar

Antes de começar​

A inicialização do SDK exige um Project e credenciais configurados no PlayServ Backoffice. Se você ainda não fez isso, complete estas etapas primeiro.

1

Crie um Project no Backoffice

Abra o PlayServ Backoffice e crie um novo Project. Isso lhe dá um Game ID — o identificador do Project que você vai precisar durante a configuração do SDK.

O Project também cria automaticamente um Environment de Development, que é onde você vai trabalhar durante a integração.

Creating a New Project →

2

Gere um Game Access Token

No workspace do Project, abra a seção SDK Keys e gere uma key de Development. Ela se torna o seu Game Access Token — a credencial que o SDK usa para conectar ao Environment correto do Project.

Guarde-a com segurança. O valor completo da key só é exibido uma vez, no momento da criação.

API Key Management →

3

Conecte o Project ao Unity

Importe o pacote Unity do PlayServ e abra a janela de configurações do PlayServ. Informe o Game Access Token e o Game ID das etapas anteriores.

Depois disso, o SDK consegue resolver a configuração do Project a partir do config asset do PlayServ.

Connecting a Project to Unity →


Entradas de configuração​

O PlayServ precisa de quatro entradas para estabelecer uma Session. Três delas são gerenciadas automaticamente — só o Game Access Token precisa ser configurado pelo desenvolvedor.

EntradaOrigemGerenciada por
GameAccessTokenConfigurado na janela de configurações do PlayServ no UnityDesenvolvedor
UserDeviceTokenGerado e persistido automaticamente pelo SDKSDK
GameVersionSincronizado pelo SDK a partir do Backoffice, em segundo planoSDK
Client SDK VersionDeterminado a partir do pacote do SDK instaladoSDK

O Game Access Token é a credencial específica de cada Environment que identifica o contexto do jogo e valida a conexão. Ele é definido na janela de configurações do PlayServ no Unity Editor e tem escopo de um Environment específico do Project — Development ou Production.

Veja API Key Management para saber como gerar e rotacionar tokens.

observação

O PlayServ encapsula as primitivas de rede. No código do cliente você reage ao estado da Session e às APIs do SDK, em vez de gerenciar connect/disconnect de baixo nível.


Inicialização no lado do cliente​

Não é necessário inicializar explicitamente no código do cliente. O SDK prepara os componentes internos automaticamente e coloca a Session no seu estado inicial Offline.

O cliente sinaliza que está pronto chamando:

await PlayServ.Ready();

Se já houver um UserToken armazenado no dispositivo, ele pode ser passado imediatamente para iniciar a Session já autenticada:

await PlayServ.Ready(UserToken);

Isso entra no fluxo de handshake e permite que a Session avance rumo a Active.


Inicialização no lado do servidor​

Antes que os clientes possam entrar, o game server conclui a própria inicialização e chama explicitamente PlayServ.Server.Ready().

[Server]
class GameServer
{
GameServer()
{
InitializeAsync();
}

private async Task InitializeAsync()
{
await Something();
PlayServ.Server.Ready();
}
}
aviso

Se uma classe de RPC de servidor contém uma chamada a Ready(), o analisador de código espera que Ready() seja executado pelo menos uma vez. Até que isso aconteça, o servidor não é considerado disponível.


Configuração de inicialização do servidor (opcional)​

Se o código do servidor precisa de configuração na inicialização, ela pode ser armazenada como uma Entity Singleton e buscada na partida do servidor pela API do modelo de dados.

[Server]
class GameServer
{
private readonly Task<Model> _configTask;

public GameServer()
{
_configTask = LoadConfigurationAsync();
}

private async Task<Model> LoadConfigurationAsync()
{
return await PlayServ.GetServerConfig();
}

public async Task DoSomethingNext()
{
var config = await _configTask;
config.StartingLevel; // 1
}
}
observação

O gerenciamento de versões de build no lado do servidor é feito pelo Version Module, sem exigir reconciliação manual do desenvolvedor.


Próximos passos​