> ## 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.

# Servicios opcionales

> Incorpore servicios opcionales de XBOX y PlayFab — inicio de sesión con XUser, logros, XGameSave, social, multijugador y comercio con XStore — en su título de GDK para PC.

Una vez que su título de GDK para PC se ejecute, incorpore servicios opcionales de XBOX y características de Microsoft Azure PlayFab según lo requiera su diseño. Ninguno de ellos es obligatorio para publicar en Microsoft Store: elija lo que se ajuste a su título.

## Orden de adopción sugerido

1. **Inicio de sesión e identidad** — [XUser](/build/core-features/common/user/gamecore-user-models) e [inicio de sesión de PlayFab](/services/playfab/identity/player-identity/login).
2. **Logros y estadísticas** — [Logros de XSAPI](/services/xbox-services/player-data/achievements/index) y [Estadísticas del jugador](#player-stats).
3. **Partidas guardadas en la nube** — [XGameSave](/build/core-features/common/game-save/game-saves-overview).
4. **Social** — [amigos y jugadores recientes](/services/xbox-services/community/social-manager/live-social-manager-overview) y [Presencia enriquecida](#rich-presence).
5. **Multijugador** — [Salas](#lobbies), [Emparejamiento](#matchmaking), [Multijugador](#multiplayer), [Invitaciones](#invites) y [Chat](#chat).
6. **Comercio** — [XStore](/publishing/xstore-commerce/xstore-overview), [Compras en el juego](#in-game-purchases) y [DLC](/publishing/game-publishing/concepts/add-ons).
7. **Integraciones del lado del servidor** — [Autenticación S2S](#s2s-authentication), [Contenido generado por el usuario](#user-generated-content) y [Live ops](/services/playfab/live-service-management).

## Temas de servicios opcionales

Cada fila siguiente se corresponde con un tema cubierto en la guía de origen PC E2E. La orientación de integración detallada se encuentra en la documentación de características vinculada.

| Tema                                                         | SDK recomendado                                              | Dónde se encuentra                                                                                          |
| ------------------------------------------------------------ | ------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------- |
| [Chat](#chat)                                                | PlayFab Party                                                | [Chat de PlayFab Party](/services/playfab/multiplayer/networking)                                           |
| [Compras en el juego](#in-game-purchases)                    | XStore (GDK)                                                 | [Análisis en profundidad de XStore](/publishing/xstore-commerce/xstore-overview)                            |
| [Invitaciones](#invites)                                     | PlayFab Lobby + invitaciones de XBOX                         | [PlayFab Lobby](/services/playfab/multiplayer/lobby)                                                        |
| [Tablas de clasificación](#leaderboards)                     | Tablas de clasificación administradas por el título de XSAPI | [Tablas de clasificación](/services/xbox-services/player-data/stats-leaderboards/index)                     |
| [Salas](#lobbies)                                            | PlayFab Lobby                                                | [PlayFab Lobby](/services/playfab/multiplayer/lobby)                                                        |
| [Emparejamiento](#matchmaking)                               | PlayFab Matchmaking / SmartMatch                             | [PlayFab Matchmaking](/services/playfab/multiplayer/lobby)                                                  |
| [Multijugador](#multiplayer)                                 | MPSD + MPM, PlayFab Multiplayer                              | [Multijugador](/services/xbox-services/multiplayer/index)                                                   |
| [Redes](#networking)                                         | Redes de PlayFab Party                                       | [Redes de PlayFab](/services/playfab/multiplayer/networking)                                                |
| [Estadísticas del jugador](#player-stats)                    | XSAPI Stats Manager                                          | [Estadísticas](/services/xbox-services/player-data/stats-leaderboards/index)                                |
| [Presencia enriquecida](#rich-presence)                      | XSAPI Presence                                               | [Presencia enriquecida](/services/xbox-services/community/presence/live-presence-overview)                  |
| [Autenticación S2S](#s2s-authentication)                     | Entra ID + User Store IDs                                    | [Autenticación de servicio a servicio](https://learn.microsoft.com/en-us/store/commerce/service-to-service) |
| [Contenido generado por el usuario](#user-generated-content) | PlayFab Economy v2                                           | [UGC de PlayFab](/services/playfab/economy-monetization/index)                                              |

## Chat

Use **PlayFab Party** para chat de voz y texto sincrónico en PC y XBOX. Pasos clave:

1. Configure el [SDK de PlayFab Party](/services/playfab/multiplayer/networking).
2. Autentique al jugador tanto con los servicios de XBOX como con PlayFab.
3. Cree o únase a una red de Party con `PartyManager::CreateNewNetwork()`.
4. Cree un `PartyLocalChatControl` por cada usuario local y conéctelo con `PartyNetwork::ConnectChatControl()`.
5. Elija los dispositivos de entrada/salida de audio mediante `PartyLocalChatControl::SetAudioInput/Output` y un `PartyAudioDeviceSelectionType`.
6. Configure los permisos de chat y el estado de silencio entre los pares de controles de chat.
7. Agregue chat de texto mediante `SendText`, opcionalmente con traducción mediante `SetTextChatOptions`.
8. Agregue accesibilidad: transcripción de voz a texto y síntesis de texto a voz mediante Azure Speech Services.
9. Habilite la supresión de ruido de audio en el audio capturado del micrófono.

Si también publica en XBOX, use la [biblioteca auxiliar de Party para XBOX Live](/services/playfab/multiplayer/networking) para cumplir los requisitos de los servicios de XBOX.

## Compras en el juego

Use **XStore** (a través de `XGameRuntime.h`) para los flujos de compra en el juego en Microsoft Store:

* Consulte el catálogo de la tienda, los productos asociados (complementos, consumibles, duraderos) y la colección de derechos del usuario.
* Muestre la interfaz de compra mediante `XStoreShowPurchaseUIAsync`.
* Consuma los consumibles mediante `XStoreReportConsumableFulfillmentAsync`.
* Actualice las licencias con `XStoreQueryProductForCurrentSkuAsync` después de los cambios de derechos.

Para economías virtuales impulsadas por PlayFab (monedas, inventario, lotes), combine las compras de XStore con PlayFab Economy v2.

## Invitaciones

Use **PlayFab Lobby** para las invitaciones y uniones en PC/XBOX:

1. Integre el [SDK de PlayFab Lobby & Matchmaking](/services/playfab/multiplayer/lobby).
2. Autentique con los servicios de XBOX y PlayFab.
3. Elija la propiedad de la sala: propiedad del jugador (`PFMultiplayerCreateAndJoinLobby`), propiedad del servidor (`PFMultiplayerCreateAndClaimServerLobby`) o creada por emparejamiento.
4. Escuche las invitaciones mediante `PFMultiplayerStartListeningForLobbyInvites`.
5. Envíe las invitaciones a través de la interfaz de invitaciones de la plataforma para que el destinatario vea una notificación nativa de XBOX/Store.

La sala funciona a la vez como la sesión de juego a la que se unen los jugadores tras aceptar una invitación.

## Tablas de clasificación

Use las **tablas de clasificación administradas por el título de XSAPI** para tablas de clasificación sociales y globales en los servicios de XBOX:

1. Defina las tablas de clasificación en Partner Center, en **XBOX services → Player data**.
2. Emita eventos de estadísticas vinculados a la tabla de clasificación mediante el Stats Manager.
3. Consulte las tablas de clasificación mediante `XblLeaderboardGetLeaderboardAsync` (global) o `XblLeaderboardGetLeaderboardForSocialGroupAsync` (amigos).

Consulte [Tablas de clasificación](/services/xbox-services/player-data/stats-leaderboards/index).

## Salas

Use **PlayFab Lobby** para el estado de sesión compartido (lista de miembros, propiedades arbitrarias, propiedad):

* Cree, únase, busque y abandone salas con el SDK de C de PlayFab Multiplayer.
* Almacene metadatos de juego como propiedades de la sala (modo de juego, mapa, estado de preparación).
* Combínelo con PlayFab Matchmaking para formar salas a partir de un grupo emparejado.
* Combínelo con PlayFab Party para agregar redes y voz sobre la pertenencia a la sala.

## Emparejamiento

Use **PlayFab Matchmaking** para el emparejamiento basado en habilidades y atributos que produce una sala compartida:

* Defina colas de emparejamiento en el PlayFab Game Manager con reglas sobre los atributos de los jugadores.
* Envíe tickets mediante `PFMatchmakingCreateMatchmakingTicket`.
* Cuando se encuentra una coincidencia, los jugadores se colocan en una sala compartida de su propiedad.

Para los títulos exclusivos de XBOX Live, también se admite SmartMatch a través de MPSD, pero PlayFab Matchmaking es la ruta recomendada para los títulos nuevos.

## Multijugador

Dos pilas de multijugador compatibles en PC/XBOX:

* **PlayFab Multiplayer**: multiplataforma, usa PlayFab Lobby para las sesiones y PlayFab Party para el transporte. Recomendada para los títulos nuevos.
* **Multijugador de los servicios de XBOX**: sesiones de MPSD + Multiplayer Manager (MPM). Sigue siendo compatible para los títulos exclusivos de XBOX.

Ambas rutas se describen en la [información general sobre multijugador](/services/xbox-services/multiplayer/index).

## Redes

Use **PlayFab Party** como transporte de red para el tráfico de juego en tiempo real:

* Envíe mensajes confiables/no confiables entre los puntos de conexión conectados.
* Superponga voz, texto y datos de juego en la misma red de Party.
* En XBOX, Party se integra automáticamente con la ruta de red de la plataforma; en PC usa UDP con reserva.

## Estadísticas del jugador

Use el **XSAPI Stats Manager** para las estadísticas del jugador administradas por el título:

1. Defina las estadísticas en Partner Center, en **XBOX services → Player data**.
2. Agregue la estadística al jugador con `XblStatsManagerSetStatAsNumber` / `SetStatAsString`.
3. Incremente o sobrescriba las estadísticas en respuesta al juego.
4. Vacíe las actualizaciones pendientes con `XblStatsManagerDoWork` en cada fotograma.

Las estadísticas alimentan las tablas de clasificación y se muestran en el perfil del jugador.

## Presencia enriquecida

Use **XSAPI Presence** para difundir lo que está haciendo el jugador:

1. Defina las enumeraciones de presencia y los conjuntos de cadenas en Partner Center.
2. Actualice la presencia con `XblPresenceSetPresenceAsync` cuando el jugador pase a un nuevo estado (menú, nivel, partida).
3. Consulte a otros jugadores con `XblPresenceGetPresenceAsync` o `XblPresenceGetPresenceForMultipleUsersAsync`.

Consulte [Presencia enriquecida](/services/xbox-services/community/presence/live-presence-overview).

## Autenticación S2S

Use **Microsoft Entra ID + User Store IDs** para la autenticación de servicio a servicio cuando su back-end necesite llamar a las API de Microsoft Store en nombre de un jugador:

* Dos tipos de User Store ID:
  * `UserCollectionsID`: se autentica con el servicio **Collections** de Microsoft Store (inventario de derechos).
  * `UserPurchaseID`: se autentica con el servicio **Purchase** de Microsoft Store (verificación de transacciones).
* Su servicio adquiere un token de acceso de Entra ID y lo usa, junto con el User Store ID del cliente del juego, para llamar a las API REST de la Store.
* Recomendado para los títulos nuevos; la autenticación basada en tokens X es heredada.

## Contenido generado por el usuario

Use **PlayFab Economy v2** para catálogos de UGC sobre una canalización de recursos propia o de terceros:

1. Autentique al jugador con PlayFab.
2. Genere direcciones URL de carga firmadas con `CreateUploadUrls`.
3. Cree un elemento borrador con `CreateDraftItem` (`Type:ugc`).
4. Enumere los elementos borrador mediante `GetEntityDraftItems`.
5. Publique con `PublishDraftItem`: los elementos publicados aparecen en el catálogo público.
6. Compruebe el estado con `GetItemPublishStatus`.
7. Consulte el catálogo con `SearchItems` (`Filter`, `OrderBy`, `Select` de OData).

La revisión y moderación opcionales las gestionan los revisores de catálogo en el PlayFab Game Manager.

## Temas relacionados

* [Información general de PC de un extremo a otro](/build/gdk-and-engines/overview)
* [Información general de los servicios de XBOX](/services/xbox-services/index)
* [Información general de PlayFab](/services/playfab/get-started)

## Documentación de API relacionada

* [Información general de XSAPI](/reference/live/xsapi-c/atoc-xsapi-c) — identidad, presencia, social, logros, tablas de clasificación
* [Referencia de la API de XStore](/reference/system/xstore/xstore_members) — comercio de Microsoft Store
* [Información general de PlayFab](/services/playfab/get-started/index) — superficie REST + SDK de PlayFab
