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

# Ejemplo de implementación de multijugador entre redes

> Ejemplo de implementación de multijugador entre redes para un título de XBOX de estilo MOBA, que abarca el emparejamiento, los servidores dedicados, el chat y el cumplimiento de XR-007.

En este tema se describe un escenario de ejemplo que muestra la funcionalidad y el flujo entre redes en un juego multijugador tradicional de arena de batalla en línea (MOBA). Presenta una posible ruta de diseño e implementación. Este tema es compatible con [XR-007: juego entre redes, uso de datos e interacciones de aplicaciones complementarias](https://developer.microsoft.com/en-us/games/xbox/docs/gdk/xr007).

En este escenario de ejemplo, el título admite la siguiente funcionalidad multijugador.

| Funcionalidad                           | Descripción                                                                                                                                                                                                                                                        |
| --------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Emparejamiento personalizado            | El título implementa un servicio de emparejamiento personalizado. Este servicio primero (opcionalmente) empareja a los jugadores en equipos y, a continuación, empareja equipos y jugadores entre sí.                                                              |
| Servidores dedicados                    | Todo el juego del título se ejecuta en servidores dedicados. Todo el tráfico (incluido el tráfico de chat) también se enruta a través de estos servidores.                                                                                                         |
| Tablas de clasificación personalizadas  | Los servicios del título implementan tablas de clasificación personalizadas que incluyen información detallada sobre el progreso del jugador.                                                                                                                      |
| Varios modos y configuraciones de juego | El título admite varios modos de juego, como cooperativo o por equipos. Los jugadores pueden configurar el mapa, el tamaño de la partida, las reglas y otros ajustes de estos modos.                                                                               |
| Moneda del juego                        | El título proporciona una tienda dentro del juego con moneda del juego que se puede comprar (premium). Los jugadores pueden usar la moneda para comprar potenciadores para el equipo. Los jugadores también pueden comprar artículos cosméticos para su personaje. |
| DLC                                     | El contenido descargable (DLC) que se puede comprar incluye nuevos mapas y personajes adicionales.                                                                                                                                                                 |

## Servicios del título

Uno de los servicios personalizados del título en este escenario de ejemplo es un servicio de autenticación. Este servicio de autenticación se usa para la vinculación de una cuenta de XBOX Live (o de otra red multijugador) a una cuenta de jugador específica del título. Cuando un jugador se conecta por primera vez al servicio de autenticación, la vinculación de cuentas se realiza de forma silenciosa y se crea una nueva identidad de jugador entre redes.

Para XBOX Live, el XUID del jugador se usa como identificador único de jugador vinculado a la cuenta específica del título. El acceso al XUID debe aprobarse antes de su uso y debe tratarse con un administrador de cuentas de desarrollador (DAM). La cuenta específica del título tiene un identificador único global (GUID) que permite a todos los servicios del título administrar a los jugadores, independientemente de la red de origen y de los metadatos del jugador almacenados. En este escenario de ejemplo, la red multijugador y las estadísticas básicas de juego del jugador se almacenan en esta cuenta.

<Note>Los servicios del título usan la información de la red multijugador de la cuenta específica del título para garantizar que la funcionalidad multijugador se pueda restringir solo a los jugadores de XBOX Live.</Note>

## Flujo del título

Para un juego multijugador típico, un flujo conforme para la funcionalidad entre redes comienza cuando el jugador entra en el modo multijugador. En este escenario de ejemplo, el título realiza los pasos siguientes.

1. Validar privilegios.

   Antes de iniciar una sesión multijugador, un título valida el privilegio de multijugador (254 y 189). Si se deniega el privilegio, el título no entra en el modo multijugador. El título también debe comprobar el privilegio de comunicaciones (252) y finalizar o deshabilitar el chat de voz y de texto en consecuencia.

2. Validar el privilegio entre redes.

   En este escenario de ejemplo, el título integra el juego entre redes en la experiencia de emparejamiento predeterminada. Cuando un jugador entra en la experiencia de emparejamiento, el título valida el privilegio de juego entre redes (185). Si se deniega el privilegio, solo es posible el emparejamiento dentro de XBOX Live. La primera vez que un jugador se coloca en un juego entre redes, el título presenta una notificación que indica que el juego entre redes está activo.

3. Emparejamiento de equipos.

   El servicio de emparejamiento del título forma un equipo a partir de jugadores entre redes según las reglas de emparejamiento.

4. Crear la sesión de equipo o de sala del Multiplayer Session Directory (MPSD) y unirse a ella.

   El servicio de emparejamiento del título crea una sesión de sala del Multiplayer Session Directory (MPSD) mediante llamadas de servicio a servicio a XBOX Live. Todos los jugadores de XBOX Live se unen a esta sesión de sala. El servicio usa propiedades personalizadas para proporcionar además sugerencias sobre los jugadores de la sesión que no usan XBOX Live. Después, la lógica del cliente puede usar estas sugerencias para establecer el estado de la sesión en el paso siguiente.

5. Establecer la sesión de MPSD de equipo o de sala.

   Los clientes de XBOX Live establecen la sesión de sala como sesión de actividad. La posibilidad de unirse a la sesión y el estado de cierre deben establecerse en función del estado de los jugadores entre redes. Los jugadores de XBOX Live permanecen en esta sesión mientras permanezcan en el equipo entre redes. Si la sesión está llena (o si se llena más adelante en el flujo), el servicio o un árbitro de la sala deben establecer la sesión como cerrada. Una sesión de actividad que no tenga más plazas de jugador nunca debe permitir uniones.

6. Sala del equipo.

   En la sala del equipo están presentes tanto jugadores de XBOX Live como jugadores de otras plataformas multijugador. El chat de voz está habilitado entre jugadores de XBOX Live a través de un servicio personalizado del título. El chat de voz entre todos los jugadores (XBOX Live/XBOX Live y XBOX Live/que no usan XBOX Live) se habilita solo después de validar todas las comprobaciones de privacidad y permisos necesarias. Para las relaciones de amistad que no usan XBOX Live, el título usa los datos de relación de amistad de red de los amigos que no usan XBOX Live. En la sala del equipo, los jugadores de XBOX Live y los jugadores que no usan XBOX Live se identifican de forma única mediante la identidad de la cuenta del título. Todos los identificadores de jugador también muestran los gamertags y los nombres de jugador equivalentes de otras redes multijugador.

   La captura de pantalla siguiente muestra un ejemplo de la interfaz de usuario de una lista de jugadores en la sala.

   <img src="https://mintcdn.com/microsoft-4404708b/ktEik-YaZoen6Rhy/images/gdk/services/xr007-crossnetworkroster.png?fit=max&auto=format&n=ktEik-YaZoen6Rhy&q=85&s=19bdb24b8a41f698f6e8f56083dbac61" alt="Captura de pantalla que muestra la interfaz de usuario de la lista de jugadores entre redes" width="482" height="678" data-path="images/gdk/services/xr007-crossnetworkroster.png" />

   En la interfaz de usuario de la sala, el líder del equipo selecciona las propiedades de la partida (como el nivel o las reglas personalizadas) para el paso siguiente a fin de encontrar una sesión de juego con otro equipo y, a continuación, inicia la partida.

7. Emparejamiento de sesiones de juego.

   Los equipos entre redes existentes se envían al emparejamiento con propiedades de partida adicionales que establece el líder del equipo. Estas propiedades se usan para identificar el mejor resultado de emparejamiento en un nuevo conjunto de dos equipos para una partida. En este punto, el servicio de emparejamiento también identifica el servidor dedicado para ambos equipos.

8. Crear la sesión de MPSD del juego y unirse a ella.

   El resultado del emparejamiento anónimo de sesiones de juego es una sesión de juego de MPSD que crea el servicio de emparejamiento (o un servicio dedicado) mediante llamadas de servicio a servicio a XBOX Live. Todos los jugadores de XBOX Live se unen a esta sesión de juego, y el servicio usa propiedades personalizadas para proporcionar además sugerencias sobre los jugadores de la sesión que no usan XBOX Live. Después, la lógica del cliente puede usar estas sugerencias para establecer el estado de la sesión.

9. Conectarse al servidor dedicado.

   En el paso final, todos los clientes se conectan de forma segura al servidor dedicado e inician el juego entre redes. Todo el tráfico entre redes multijugador debe enrutarse a través del servidor dedicado. No se permiten conexiones de par a par.

10. Finalización del juego.

    Una vez finalizada la partida, los equipos pueden optar por realizar las acciones que se muestran en la tabla siguiente.

    | Acción                   | Descripción                                                                                                                                                                                                    |
    | ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
    | Repetir la partida       | Los jugadores permanecen conectados al servidor y permanecen en la sesión de juego de MPSD. Los jugadores inician una nueva partida.                                                                           |
    | Buscar nuevos oponentes. | Los jugadores se desconectan del servidor y abandonan la sesión de juego de MPSD. Los jugadores permanecen en la sesión de sala y vuelven a la pantalla de la sala para una siguiente ronda de emparejamiento. |

## Administración de sesiones

Para cumplir todos los requisitos de XBOX, el título crea dos sesiones de MPSD para los jugadores de XBOX Live, como se muestra en la tabla siguiente.

| Sesión          | Descripción                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Sesión de sala  | Esta sesión la crea el servicio de emparejamiento mediante llamadas de servicio a servicio a XBOX Live. Tras su creación, la sesión contiene reservas para todos los jugadores de XBOX Live de un equipo. Es la sesión para la que los jugadores pueden enviar invitaciones o unirse a partidas en curso. Las invitaciones y la unión a partidas en curso deben usar los sistemas de XBOX Live y no pueden ser entre redes. Por lo tanto, todos los jugadores de XBOX Live establecen esta sesión como su sesión de actividad. |
| Sesión de juego | Esta sesión la crea el servicio de emparejamiento mediante llamadas de servicio a servicio a XBOX Live. Contiene reservas para todos los jugadores de XBOX Live de una sesión de juego (entre equipos) y se usa para realizar el seguimiento de la actividad multijugador de los jugadores de XBOX Live.                                                                                                                                                                                                                       |

Los jugadores que no usan XBOX Live no están representados directamente en las sesiones de MPSD como miembros de la sesión. El título solo realiza el seguimiento de su presencia en una propiedad de sesión personalizada, como se muestra en el ejemplo de código siguiente.

```
{{"name":"kumarplayer"},{"name":"spencerplayer"},{"name":"eliseplayer"}}
```

Puede usar esta lista y los miembros de sesión de XBOX Live para determinar si la sesión está llena. Si está llena, la funcionalidad de invitación y de unión a partidas en curso de XBOX Live debe deshabilitarse para un comportamiento correcto. Un jugador (o el servidor) establece la propiedad `closed` en la sesión para deshabilitar esta funcionalidad.

<Note>La sesión de MPSD que se usa para realizar el seguimiento de los jugadores durante el juego debe habilitar la funcionalidad `gameplay` para cumplir los requisitos de XBOX.</Note>

## Bloqueo de la comunicación y denuncia de jugadores

El bloqueo de jugadores en el título se admite en el nivel del título.

### Bloqueo de jugadores de XBOX Live

El título usa [XblPrivacyBatchCheckPermissionAsync](/reference/live/xsapi-c/privacy_c/functions/xblprivacybatchcheckpermissionasync) para comprobar los privilegios de multijugador. El título también lo usa para chatear con otro jugador de XBOX Live y también para las clases de jugador de los jugadores que no usan XBOX Live/amigos que no usan XBOX Live. El título también proporciona acceso al perfil de otro jugador mediante [XGameUiShowPlayerProfileCardAsync](/reference/system/xgameui/functions/xgameuishowplayerprofilecardasync). Los jugadores pueden bloquear a otros jugadores en la interfaz de usuario del perfil de jugador.

### Bloqueo de jugadores que no usan XBOX Live

El título usa una lista de bloqueados dentro del título para admitir el bloqueo de la comunicación con jugadores que no usan XBOX Live. Esta lista se mantiene en un servicio del título y se comprueba para los permisos de multijugador. El chat entre redes no está disponible de forma predeterminada. Un jugador que no usa XBOX Live puede bloquearse en el título mediante una interfaz de usuario personalizada del título, como se muestra en la captura de pantalla siguiente.

<img src="https://mintcdn.com/microsoft-4404708b/ktEik-YaZoen6Rhy/images/gdk/services/xr007-playercommblocking.png?fit=max&auto=format&n=ktEik-YaZoen6Rhy&q=85&s=a3e844b13d36e45906f7bbcb807d355c" alt="Captura de pantalla que muestra el bloqueo de la comunicación de jugadores" width="1300" height="731" data-path="images/gdk/services/xr007-playercommblocking.png" />

### Denuncia de jugadores de XBOX Live

El título también permite denunciar a los jugadores. Para XBOX Live, los jugadores denuncian a otros jugadores a través de la interfaz de usuario del perfil de jugador. El equipo de cumplimiento de XBOX Live gestiona las denuncias de jugadores.

### Denuncia de jugadores que no usan XBOX Live

Para los jugadores que no usan XBOX Live, el título proporciona un flujo de interfaz de usuario de denuncia personalizado. El título gestiona las denuncias de jugadores en consecuencia para el título y se basa en las directrices de otras redes multijugador.

## Microsoft Store

Las compras de moneda del juego en XBOX Live y otras redes multijugador se registran en un servicio del título. El título proporciona una cartera de moneda virtual y un inventario de artículos del juego compartidos entre todas las versiones del título. Las restricciones de la tabla siguiente se aplican a las versiones del título que no son de XBOX Live.

| Restricción           | Descripción                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| --------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Aspectos de jugador   | Los jugadores solo pueden comprar aspectos de jugador con moneda del juego. La moneda del juego se administra en una cartera unificada del juego que está disponible en todas las redes. Todos los aspectos de jugador son idénticos en todas las versiones del título.                                                                                                                                                                       |
| Consumibles           | Los jugadores solo pueden comprar consumibles con moneda del juego. Al igual que la moneda, los artículos consumibles se administran en un inventario unificado del juego.                                                                                                                                                                                                                                                                    |
| Contenido descargable | En las plataformas de XBOX Live, el contenido descargable (nuevos mapas y tipos de personaje) se administra a través de Microsoft Store. Los derechos de otras tiendas no se comparten. Todos los jugadores deben tener un derecho válido en su tienda respectiva para jugar juntos en el mismo mapa. Para un jugador que no tenga el derecho correspondiente, un tipo de personaje que no se haya comprado es visible pero no se puede usar. |

## Logros

El título tiene varios logros basados en acciones multijugador, incluidas las partidas multijugador jugadas. El progreso de este logro (y de logros similares) incluye las sesiones de juego multijugador entre redes. El título no tiene ningún logro que se limite al juego entre redes. El progreso de los logros de los títulos de la familia XBOX One (o posteriores) es posible mediante el juego en otras versiones del título.

## Progreso del jugador

El progreso del jugador se comparte entre todas las versiones del título. La cuenta del título personalizada contiene partes del progreso del jugador.

## Game DVR y difusión

El título ofrece compatibilidad con Game DVR y capturas de pantalla, así como con la difusión en partidas multijugador entre redes.

## Tablas de clasificación

La tabla de clasificación del título se implementa mediante un servicio del título que proporciona una amplia funcionalidad de tabla de clasificación más allá de las tablas de clasificación de XBOX Live. El servicio crea varias tablas de clasificación subyacentes y las actualiza en paralelo: una tabla de clasificación para cada red multijugador y una tabla de clasificación combinada que reúne los resultados de todas las redes multijugador. Cuando el multijugador entre redes está habilitado, se muestra la tabla de clasificación combinada, como se muestra en la captura de pantalla siguiente.

<img src="https://mintcdn.com/microsoft-4404708b/ktEik-YaZoen6Rhy/images/gdk/services/xr007-leaderboard.png?fit=max&auto=format&n=ktEik-YaZoen6Rhy&q=85&s=eeecf23c0122c9a89fdd62c4762cc375" alt="Captura de pantalla que muestra una tabla de clasificación combinada" width="536" height="350" data-path="images/gdk/services/xr007-leaderboard.png" />

<Note>Todos los jugadores se representan de la misma manera que en la sala multijugador.</Note>

La tabla de clasificación solo de XBOX Live se muestra cuando un jugador ha deshabilitado la funcionalidad de juego entre redes.

Se usa una cuenta específica del título para identificar internamente a todos los jugadores en el servicio de tablas de clasificación. Los identificadores externos de los jugadores de XBOX Live dependen de la instancia del título que realice la consulta.

* En las instancias del título de XBOX Live, se devuelve el XUID y, a continuación, el cliente realiza una búsqueda para determinar la cadena de gamertag del jugador.

* En las instancias del título que no son de XBOX Live, se devuelve la cadena de gamertag o `DisplayName` del jugador. El servicio recupera esta cadena de una llamada de servicio a servicio a XBOX Live y la almacena en caché durante un máximo de cuatro horas.


## Related topics

- [Ejemplo de implementación de multijugador entre redes: MMO](/es/services/xbox-services/multiplayer/concepts/live-console-xr007-mmo-example.md)
- [XR-007 Juego entre redes — Implementación multijugador](/es/publishing/certification/xr/xr-007-multiplayer.md)
- [XR-007 Juego entre redes — Ejemplo de implementación de MMO](/es/publishing/certification/xr/xr-007-mmo.md)
- [XR-007 Juego entre redes, uso de datos y aplicaciones complementarias](/es/publishing/certification/xr/xr-007.md)
- [Conceptos de multijugador](/es/services/xbox-services/multiplayer/concepts/live-multiplayer-concepts-nav.md)
