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()
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.
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.
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.
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.
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.
| Entrada | Origem | Gerenciada por |
|---|---|---|
GameAccessToken | Configurado na janela de configurações do PlayServ no Unity | Desenvolvedor |
UserDeviceToken | Gerado e persistido automaticamente pelo SDK | SDK |
GameVersion | Sincronizado pelo SDK a partir do Backoffice, em segundo plano | SDK |
Client SDK Version | Determinado a partir do pacote do SDK instalado | SDK |
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.
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();
}
}
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
}
}
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
- Proxy Module & Handshake — o que acontece depois que
Ready(...)é chamado - Session Lifecycle & States —
Offline/Recovering/Active/Banned - User Login & Authentication —
Ready(UserToken),Login(UserToken)eValidateClient