> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Serviços opcionais

> Adicione serviços opcionais do XBOX e do PlayFab, como entrada com XUser, conquistas, XGameSave, social, multijogador e comércio com XStore, ao seu título do GDK para PC.

Assim que seu título do GDK para PC estiver em execução, adicione os XBOX services opcionais e os recursos do Microsoft Azure PlayFab conforme o seu design exigir. Nenhum deles é obrigatório para publicar na Microsoft Store; escolha o que se adequa ao seu título.

## Ordem de adoção sugerida

1. **Entrada e identidade**: [XUser](/pt-BR/build/core-features/common/user/gamecore-user-models) e [entrada no PlayFab](/pt-BR/services/playfab/identity/player-identity/login).
2. **Conquistas e estatísticas**: [Conquistas do XSAPI](/pt-BR/services/xbox-services/player-data/achievements/index) e [Estatísticas do jogador](#player-stats).
3. **Salvamentos na nuvem**: [XGameSave](/pt-BR/build/core-features/common/game-save/game-saves-overview).
4. **Social**: [amigos e jogadores recentes](/pt-BR/services/xbox-services/community/social-manager/live-social-manager-overview) e [Rich Presence](#rich-presence).
5. **Multijogador**: [Lobbies](#lobbies), [Matchmaking](#matchmaking), [Multijogador](#multiplayer), [Convites](#invites) e [Chat](#chat).
6. **Comércio**: [XStore](/pt-BR/publishing/xstore-commerce/xstore-overview), [Compras no jogo](#in-game-purchases) e [DLC](/pt-BR/publishing/game-publishing/concepts/add-ons).
7. **Integrações no lado do servidor**: [Autenticação S2S](#s2s-authentication), [Conteúdo gerado pelo usuário](#user-generated-content) e [Live ops](/pt-BR/services/playfab/live-service-management).

## Tópicos de serviços opcionais

Cada linha abaixo corresponde a um tópico abordado no guia E2E para PC de origem. As orientações detalhadas de integração estão nos documentos de recursos vinculados.

| Tópico | SDK recomendado | Onde está |
| - | - | - |
| [Chat](#chat) | PlayFab Party | [Chat do PlayFab Party](/pt-BR/services/playfab/multiplayer/networking) |
| [Compras no jogo](#in-game-purchases) | XStore (GDK) | [Análise detalhada do XStore](/pt-BR/publishing/xstore-commerce/xstore-overview) |
| [Convites](#invites) | PlayFab Lobby + convites do XBOX | [PlayFab Lobby](/pt-BR/services/playfab/multiplayer/lobby) |
| [Placares de líderes](#leaderboards) | Placares de líderes gerenciados pelo título do XSAPI | [Placares de líderes](/pt-BR/services/xbox-services/player-data/stats-leaderboards/index) |
| [Lobbies](#lobbies) | PlayFab Lobby | [PlayFab Lobby](/pt-BR/services/playfab/multiplayer/lobby) |
| [Matchmaking](#matchmaking) | PlayFab Matchmaking / SmartMatch | [PlayFab Matchmaking](/pt-BR/services/playfab/multiplayer/lobby) |
| [Multijogador](#multiplayer) | MPSD + MPM, PlayFab Multiplayer | [Multijogador](/pt-BR/services/xbox-services/multiplayer/index) |
| [Rede](#networking) | Rede do PlayFab Party | [Rede do PlayFab](/pt-BR/services/playfab/multiplayer/networking) |
| [Estatísticas do jogador](#player-stats) | Stats Manager do XSAPI | [Estatísticas](/pt-BR/services/xbox-services/player-data/stats-leaderboards/index) |
| [Rich Presence](#rich-presence) | Presence do XSAPI | [Rich Presence](/pt-BR/services/xbox-services/community/presence/live-presence-overview) |
| [Autenticação S2S](#s2s-authentication) | Entra ID + IDs da User Store | [Autenticação serviço a serviço](https://learn.microsoft.com/en-us/store/commerce/service-to-service) |
| [Conteúdo gerado pelo usuário](#user-generated-content) | PlayFab Economy v2 | [UGC do PlayFab](/pt-BR/services/playfab/economy-monetization/index) |

## Chat

Use o **PlayFab Party** para chat de voz e texto síncrono no PC e no XBOX. Principais etapas:

1. Configure o [SDK do PlayFab Party](/pt-BR/services/playfab/multiplayer/networking).
2. Autentique o jogador tanto nos XBOX services quanto no PlayFab.
3. Crie ou ingresse em uma rede do Party com `PartyManager::CreateNewNetwork()`.
4. Crie um `PartyLocalChatControl` por usuário local e conecte-o com `PartyNetwork::ConnectChatControl()`.
5. Escolha os dispositivos de entrada/saída de áudio por meio de `PartyLocalChatControl::SetAudioInput/Output` e de um `PartyAudioDeviceSelectionType`.
6. Configure as permissões de chat e o estado de mudo entre pares de controles de chat.
7. Adicione chat de texto por meio de `SendText`, opcionalmente com tradução por meio de `SetTextChatOptions`.
8. Adicione acessibilidade: transcrição de fala em texto e síntese de texto em fala por meio dos Serviços de Fala do Azure.
9. Habilite a supressão de ruído no áudio capturado do microfone.

Se você também lançar no XBOX, use a [Party XBOX Live Helper Library](/pt-BR/services/playfab/multiplayer/networking) para atender aos requisitos dos XBOX services.

## Compras no jogo

Use o **XStore** (por meio de `XGameRuntime.h`) para fluxos de compra no jogo na Microsoft Store:

* Consulte o catálogo da loja, os produtos associados (complementos, consumíveis, duráveis) e a coleção de direitos do usuário.
* Exiba a UI de compra por meio de `XStoreShowPurchaseUIAsync`.
* Consuma itens consumíveis por meio de `XStoreReportConsumableFulfillmentAsync`.
* Atualize as licenças com `XStoreQueryProductForCurrentSkuAsync` após alterações nos direitos.

Para economias virtuais orientadas pelo PlayFab (moedas, inventário, pacotes), combine as compras do XStore com o PlayFab Economy v2.

## Convites

Use o **PlayFab Lobby** para convites e ingressos entre PC/XBOX:

1. Integre o [SDK do PlayFab Lobby e Matchmaking](/pt-BR/services/playfab/multiplayer/lobby).
2. Autentique-se nos XBOX services e no PlayFab.
3. Escolha a propriedade do lobby: de propriedade do jogador (`PFMultiplayerCreateAndJoinLobby`), de propriedade do servidor (`PFMultiplayerCreateAndClaimServerLobby`) ou criado pelo matchmaking.
4. Escute convites por meio de `PFMultiplayerStartListeningForLobbyInvites`.
5. Envie convites pela UI de convite da plataforma para que o destinatário veja uma notificação nativa do XBOX/da Store.

O lobby também serve como a sessão de jogo na qual os jogadores ingressam depois de aceitar um convite.

## Placares de líderes

Use os **placares de líderes gerenciados pelo título do XSAPI** para placares de líderes sociais e globais nos XBOX services:

1. Defina os placares de líderes no Partner Center em **XBOX services → Dados do jogador**.
2. Emita eventos de estatísticas vinculados ao placar de líderes usando o Stats Manager.
3. Consulte os placares de líderes por meio de `XblLeaderboardGetLeaderboardAsync` (global) ou `XblLeaderboardGetLeaderboardForSocialGroupAsync` (amigos).

Consulte [Placares de líderes](/pt-BR/services/xbox-services/player-data/stats-leaderboards/index).

## Lobbies

Use o **PlayFab Lobby** para o estado de sessão compartilhado (lista de membros, propriedades arbitrárias, propriedade):

* Crie, ingresse, encontre e saia de lobbies com o SDK em C do PlayFab Multiplayer.
* Armazene metadados de jogabilidade como propriedades do lobby (modo de jogo, mapa, estado de pronto).
* Combine com o PlayFab Matchmaking para formar lobbies a partir de um grupo correspondido.
* Combine com o PlayFab Party para adicionar rede e voz além da associação ao lobby.

## Matchmaking

Use o **PlayFab Matchmaking** para matchmaking baseado em habilidades/atributos que produz um lobby compartilhado:

* Defina filas de matchmaking no PlayFab Game Manager com regras sobre os atributos dos jogadores.
* Envie tíquetes por meio de `PFMatchmakingCreateMatchmakingTicket`.
* Quando uma partida for encontrada, os jogadores serão colocados em um lobby compartilhado de sua propriedade.

Para títulos somente do XBOX Live, o SmartMatch por meio do MPSD também é compatível, mas o PlayFab Matchmaking é o caminho recomendado para novos títulos.

## Multijogador

Duas pilhas multijogador compatíveis no PC/XBOX:

* **PlayFab Multiplayer**: multiplataforma, usa o PlayFab Lobby para sessões e o PlayFab Party para transporte. Recomendado para novos títulos.
* **Multijogador dos XBOX services**: sessões MPSD + Multiplayer Manager (MPM). Ainda compatível para títulos somente do XBOX.

Ambos os caminhos são descritos na [Visão geral do multijogador](/pt-BR/services/xbox-services/multiplayer/index).

## Rede

Use o **PlayFab Party** como transporte de rede para o tráfego de jogabilidade em tempo real:

* Envie mensagens confiáveis/não confiáveis entre pontos de extremidade conectados.
* Combine voz, texto e dados de jogabilidade na mesma rede do Party.
* No XBOX, o Party se integra automaticamente ao caminho de rede da plataforma; no PC, ele usa UDP com fallback.

## Estatísticas do jogador

Use o **Stats Manager do XSAPI** para estatísticas do jogador gerenciadas pelo título:

1. Defina as estatísticas no Partner Center em **XBOX services → Dados do jogador**.
2. Adicione a estatística ao jogador com `XblStatsManagerSetStatAsNumber` / `SetStatAsString`.
3. Incremente ou substitua as estatísticas em resposta à jogabilidade.
4. Libere as atualizações pendentes com `XblStatsManagerDoWork` a cada quadro.

As estatísticas alimentam os placares de líderes e são mostradas no perfil do jogador.

## Rich Presence

Use o **Presence do XSAPI** para transmitir o que o jogador está fazendo:

1. Defina enumerações de presença e conjuntos de cadeias de caracteres no Partner Center.
2. Atualize a presença com `XblPresenceSetPresenceAsync` quando o jogador passar para um novo estado (menu, nível, partida).
3. Consulte outros jogadores com `XblPresenceGetPresenceAsync` ou `XblPresenceGetPresenceForMultipleUsersAsync`.

Consulte [Rich Presence](/pt-BR/services/xbox-services/community/presence/live-presence-overview).

## Autenticação S2S

Use o **Microsoft Entra ID + IDs da User Store** para autenticação serviço a serviço quando seu back-end precisar chamar as APIs da Microsoft Store em nome de um jogador:

* Dois tipos de ID da User Store:
  * `UserCollectionsID`: autentica no serviço **Collections** da Microsoft Store (inventário de direitos).
  * `UserPurchaseID`: autentica no serviço **Purchase** da Microsoft Store (verificação de transações).
* Seu serviço adquire um token de acesso do Entra ID e o usa, junto com o ID da User Store do cliente do jogo, para chamar as APIs REST da Store.
* Recomendado para novos títulos; a autenticação baseada em X-token é herdada.

## Conteúdo gerado pelo usuário

Use o **PlayFab Economy v2** para catálogos de UGC sobre um pipeline de ativos próprio ou de terceiros:

1. Autentique o jogador no PlayFab.
2. Gere URLs de upload assinadas com `CreateUploadUrls`.
3. Crie um item de rascunho com `CreateDraftItem` (`Type:ugc`).
4. Enumere os itens de rascunho por meio de `GetEntityDraftItems`.
5. Publique com `PublishDraftItem`: os itens publicados aparecem no catálogo público.
6. Verifique o status com `GetItemPublishStatus`.
7. Consulte o catálogo com `SearchItems` (OData `Filter`, `OrderBy`, `Select`).

A revisão/moderação opcional é feita pelos Revisores de Catálogo no PlayFab Game Manager.

## Relacionados

* [Visão geral de ponta a ponta para PC](/pt-BR/build/gdk-and-engines/overview)
* [Visão geral dos XBOX services](/pt-BR/services/xbox-services/index)
* [Visão geral do PlayFab](/pt-BR/services/playfab/get-started)

## Documentação de API relacionada

* [Visão geral do XSAPI](/pt-BR/reference/live/xsapi-c/atoc-xsapi-c): identidade, presença, social, conquistas, placares de líderes
* [Referência da API do XStore](/pt-BR/reference/system/xstore/xstore_members): comércio da Microsoft Store
* [Visão geral do PlayFab](/pt-BR/services/playfab/get-started/index): REST + superfície do SDK do PlayFab


## Related topics

- [Envios opcionais de certificação](/pt-BR/publishing/game-publishing/concepts/certification/certification-optional-submissions.md)
- [Programa de Serviços Pagos da Certificação](/pt-BR/publishing/game-publishing/concepts/certification/certification-paid-services.md)
- [Guia passo a passo da certificação](/pt-BR/publishing/game-publishing/concepts/certification/certification-guide.md)
- [PFStatisticsUpdateStatisticDefinitionRequest](/pt-BR/services/playfab/api-references/c/pfstatisticstypes/structs/pfstatisticsupdatestatisticdefinitionrequest.md)
- [XR132 Limitações de acesso ao serviço](/pt-BR/publishing/certification/fma/xr-132.md)
