Pular para o conteúdo principal
O Steamworks e o XBOX Game Development Kit (GDK) fornecem APIs para autenticar usuários e verificar se eles possuem o título que está sendo jogado e/ou o conteúdo adicional que estão tentando acessar. Há diferenças no que essas APIs tentam realizar. A API do Steam verifica a identidade de um usuário para sessões multijogador e usa a verificação de propriedade para confirmar que o usuário está jogando uma cópia legítima do jogo da loja Steam. O XBOX Game Development Kit (GDK), no entanto, precisa conectar o usuário, o que verifica implicitamente sua identidade com o XBOX services, e verifica de forma independente se a conta atual da Microsoft Store tem direito ao jogo. No XBOX Game Development Kit (GDK), as duas APIs usadas para autenticação e propriedade têm como alvo plataformas diferentes e, em alguns casos, contas totalmente diferentes. Por isso, usaremos o termo com direito para nos referirmos a um usuário que possui uma licença válida da Microsoft Store para jogar o jogo atual. Para obter mais informações sobre isso e suas implicações, confira a seção Diferenças de licenciamento entre as duas plataformas mais adiante neste tópico.

Autenticação de usuários

No Steam, os usuários estão sempre “conectados” quando o cliente inicia o jogo. O jogo sempre pode acessar a Steam ID do usuário sem fazer nada além de inicializar a API. A autenticação no Steam refere-se ao processo de verificar se a identidade predefinida de um usuário é realmente a do usuário conectado ao cliente que iniciou o jogo, usando a API ISteamUser com tíquetes de sessão (com ponto a ponto ou um servidor dedicado), tíquetes de aplicativo criptografados (com um servidor seguro) ou a Steam Web API. Após a autenticação, as APIs Steam Web ou ISteamUser podem usar tíquetes para verificar a propriedade do jogo atual ou de seu conteúdo baixável (DLC). Essa etapa de verificação é desnecessária no XBOX Game Development Kit (GDK), pois você já fez a verificação ao conectar o usuário com as etapas em Inicializando o XBOX Game Development Kit (GDK). Assim, o XBOX Game Development Kit (GDK) não tem um equivalente aos tíquetes de sessão ou aos tíquetes de aplicativo criptografados do Steam para verificar a identidade de um usuário em sessões multijogador.

Propriedade e gerenciamento de direitos digitais (DRM)

Para verificar se o usuário tem direito ao jogo que está jogando no momento, você precisa usar a função XStoreQueryGameLicenseAsync na API XStore para verificar se o usuário tem uma licença para jogar esse jogo. No retorno de chamada assíncrono, verifique se:
  1. A consulta foi bem-sucedida (ou seja, o usuário tem uma licença).
  2. A licença fornecida por XStoreQueryGameLicenseResult ainda está ativa.
Se ambas as verificações forem bem-sucedidas, você pode considerar que o usuário tem direito de jogar seu jogo. No XBOX Game Development Kit (GDK), esse é o equivalente mais próximo de usar ISteamUser/CheckAppOwnership na Steam Web API ou de chamar SteamEncryptedAppTicket::BIsTicketForApp com um tíquete de aplicativo. Para obter mais informações e um exemplo de código sobre como realizar essa verificação, confira XStore: DRM básico e verificações de licença. Esse tópico também contém informações sobre opções mais robustas de verificação de licença, que existem para evitar adulterações que contornem essa verificação no lado do cliente. O Steam também fornece um wrapper de DRM para o qual o XBOX Game Development Kit (GDK) não tem equivalente. A Microsoft Store faz uma verificação antipirataria ao iniciar aplicativos instalados a partir dela. Para obter proteção de DRM completa, recomendamos usar uma solução de terceiros, além de executar a verificação de licença no exemplo de código vinculado.

Verificando a propriedade de DLC

Se o seu jogo tiver DLC associado, você poderá verificar se a conta da Microsoft Store de um usuário tem acesso a um item com a API XStore. Para verificar essas licenças, primeiro você precisa consultar todos os produtos associados ao seu jogo usando a função XStoreQueryAssociatedProductsAsync e, em seguida, usar a função XStoreAcquireLicenseForPackageAsync, que é semelhante às funções ISteamUser/CheckAppOwnership ou ISteamUser::UserHasLicenseForApp, para obter a licença de um item de DLC específico na lista retornada pela consulta. Assim como na verificação de direitos para jogos, você precisa ver se a licença foi adquirida com êxito e se está ativa. Se ambas as verificações forem aprovadas, você pode considerar que o usuário está licenciado para acessar esse item de DLC. Para obter um exemplo de código desse processo, confira Gerenciar e licenciar pacotes opcionais (DLC).

Diferenças de licenciamento entre as duas plataformas

É importante observar a diferença de filosofia entre o Steam e a Microsoft Store. No Steam, as verificações de licença confirmam que o usuário cuja identidade foi autenticada tem uma licença para jogar o jogo atual, por tê-lo comprado ou por meio do Steam Family Sharing. O XBOX Game Development Kit (GDK), no entanto, verifica se a conta da Microsoft Store autenticada no momento tem direito de acessar o conteúdo e obtém a identidade com uma conta XBOX. Isso tem uma ressalva importante: a conta Microsoft usada nessas duas contas pode não ser a mesma, mesmo que pertençam à mesma pessoa. Portanto, é importante conhecer os diferentes modelos de licenciamento que a Microsoft Store oferece caso você queira restringir quantos dispositivos diferentes podem jogar com uma licença de um jogo ou de outro conteúdo da Microsoft Store. Para obter mais informações, confira Modelo de compartilhamento de produtos para jogos.
Última modificação em 6 de outubro de 2026