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

# XR-007 Juego entre redes — Ejemplo de implementación de MMO

> Guía de implementación de XR-007 para títulos MMO y de mundo persistente: cuentas de publicador, sesiones siempre en línea, salas de chat en el juego y privilegios de XBOX.

# Ejemplo de implementación de multijugador entre redes de XBOX: MMO

Versión 2.0, 9/1/2025

El siguiente escenario de ejemplo tiene como objetivo ilustrar la funcionalidad y el flujo entre redes recomendados en un juego multijugador masivo en línea. Muestra una posible ruta de diseño e implementación.

En este escenario, el título admite la siguiente funcionalidad multijugador:

* **Mundo de juego abierto**: el título admite un mundo de juego abierto que permite interacciones entre jugadores. Los jugadores pueden agruparse libremente en el mundo abierto para experiencias de jugador contra entorno (PvE). Las experiencias de jugador contra jugador (PvP) son 1:1 y solo se permiten en áreas seleccionadas.
* **Emparejamiento personalizado para secciones de juego instanciadas**: el título implementa un servicio de emparejamiento personalizado para los jugadores que entran en secciones de juego PvP o PvE instanciadas. Este servicio empareja a jugadores o equipos de jugadores entre sí.
* **Servidores dedicados**: todo el juego del título se ejecuta en servidores dedicados. Todo el tráfico también se enruta a través de estos servidores.
* **Chat**: el título admite chat de voz y texto entre todos los jugadores. También se admite el chat de texto global. Todo el tráfico se enruta a través de servidores.
* **Consumibles**: el título proporciona una tienda en el juego con moneda del juego (premium) que se puede comprar. Esta moneda permite a los jugadores comprar artículos y consumibles.
* **DLC**: el contenido descargable que se puede comprar incluye nuevas regiones del juego que desbloquean nuevas clases de personajes de jugador.

## Servicios del título

En este ejemplo, el primer servicio del título con el que interactúa un jugador al iniciar el juego es un servicio de inicio de sesión del título. Para jugar, un jugador debe crear una cuenta del título y vincularla a la cuenta de la red de XBOX. La creación de la cuenta es posible desde el propio título o en la página web del título.

Para la vinculación de cuentas, se usa el XUID del jugador y se vincula a una cuenta específica del título. En el título, un jugador inicia sesión una vez con un nombre de usuario y contraseña de la cuenta del título para realizar la vinculación de cuentas. El acceso al XUID debe aprobarse antes de su uso y debe tratarse con sus [contactos de Microsoft](/publishing/game-publishing/resources/managed-support/overview-microsoft-representatives-and-contacts). El XUID debe protegerse durante la transmisión y el almacenamiento.

En la página web del título, un jugador con sesión iniciada con la cuenta del título también inicia sesión en la cuenta Microsoft para la vinculación de cuentas. Para obtener más información, consulte el tema de documentación *Website Account Linking*.

La cuenta del título tiene un identificador único (GUID) que permite a todos los servicios del título gestionar a los jugadores independientemente de la red de origen. La cuenta del título también almacena todos los estados del jugador, como los personajes del jugador, la progresión, el inventario y todos los metadatos del jugador.

## Flujo del título

En un juego MMO, un flujo conforme para la funcionalidad entre redes depende de si el jugador está en el mundo abierto o en una partida instanciada.

Los siguientes pasos se aplican en todos los casos:

1. **Validar privilegios** Después del inicio de sesión del jugador, un título valida los privilegios de multijugador (254 y 189) y el privilegio entre redes (185) del jugador activo. Si se deniega algún privilegio, el jugador no puede entrar en el título y se muestra un cuadro de diálogo de error. En este punto, un título también debe comprobar el privilegio de comunicaciones (252) para el chat de voz y texto a fin de restringir la funcionalidad según corresponda.
2. **Notificación entre redes** En el primer inicio, el juego notifica al jugador que existe funcionalidad entre redes en el juego.

Los siguientes pasos se aplican al mundo de juego abierto:

1. **Entrar en el mundo abierto** El jugador siempre entra en el mundo abierto al iniciar sesión en el juego y se conecta a un servidor del título.
2. **Unirse a la sesión de MPSD del mundo abierto** El servidor del título para el juego en mundo abierto crea varias sesiones de MPSD que reflejan las regiones de juego del mundo de juego abierto. Una o más de estas sesiones de MPSD tienen habilitada la capacidad de juego. Todos los usuarios de la red de XBOX se unen a la sesión del mundo abierto de su región de juego. El servidor mantiene información tanto de los jugadores de la red de XBOX como de los que no pertenecen a la red de XBOX. La sesión del mundo abierto permite la unión en curso y las invitaciones para los jugadores de la red de XBOX, y solo se establece como cerrada si el servidor no acepta nuevas conexiones de clientes.
3. **Habilitar el juego en el mundo abierto** Las características de juego con otros jugadores están disponibles en función de los privilegios del jugador.
   * El chat de texto global siempre está habilitado para los jugadores que tienen establecido el privilegio de comunicación.
   * Todos los mensajes de chat de texto usan el servicio de validación de cadenas y una lista de bloqueo para filtrar el lenguaje y los términos ofensivos.
   * El chat directo de texto o voz entre todos los jugadores (red de XBOX/red de XBOX y red de XBOX/fuera de la red de XBOX) solo se habilita después de validar todas las comprobaciones de privacidad y permisos necesarias. Consulte *Player blocking/muting/reporting* para obtener más detalles. Para las relaciones de amistad fuera de la red de XBOX, el título usa relaciones de amistad específicas del título. La interacción directa entre jugadores de la red de XBOX es objeto de seguimiento por el servicio del título y se usa para establecer un identificador de encuentro entre estos jugadores en la sesión de MPSD del mundo abierto. Esto garantiza que los jugadores sean visibles en las listas de jugadores recientes de cada uno.

Los siguientes pasos se aplican al juego PvE o PvP instanciado:

1. **Sesión de MPSD de grupo** Para los jugadores de la red de XBOX, el título crea una sesión de MPSD para realizar el seguimiento de los jugadores de la red de XBOX. Los jugadores que no pertenecen a la red de XBOX son objeto de seguimiento a través del servicio del título.
2. **Invitaciones de grupo/unión en curso** En este ejemplo, el diseño del juego limita las uniones o invitaciones a grupos de jugadores. La sesión de MPSD del grupo se usa para admitir la unión en curso y las invitaciones para los jugadores de la red de XBOX. Las invitaciones entre redes desde el juego se admiten mediante el servicio del título. Las invitaciones de la red de XBOX que inician el título proporcionan un flujo de interfaz de usuario automatizado hacia la partida a la que se ha invitado y unen al jugador a la actividad o grupo del juego al que se le invitó. Si se produce un error al unirse, el error correspondiente se comunica claramente al jugador. Estos errores pueden incluir: grupo de juego completo, actividad a la que no es posible unirse, jugador sin conexión, etc.
3. **Emparejamiento de grupo** El título habilita el multijugador entre redes para los flujos de emparejamiento de grupo PvP o PvE. En este ejemplo, el jugador usa una interfaz de emparejamiento para seleccionar una experiencia PvP o PvE y luego se le agrupa con otros jugadores en una experiencia de juego instanciada.
4. **Crear y unirse a la sesión de MPSD del juego** El resultado del emparejamiento de grupo es una sesión de lobby de MPSD que crea el servicio de emparejamiento mediante llamadas de servicio a servicio a los servicios de XBOX. Todos los usuarios de la red de XBOX se unen a esta sesión de juego y permanecen en ella durante el juego instanciado. El servicio usa propiedades personalizadas para proporcionar además indicaciones sobre los usuarios que no pertenecen a la red de XBOX en la sesión. Estas indicaciones pueden usarse luego en la lógica del cliente para establecer el estado de la sesión durante el resto del flujo.
5. **Juego instanciado** Cuando todos los jugadores están listos, comienza el juego instanciado. En este ejemplo, el chat también está habilitado entre jugadores de la red de XBOX a través del servidor dedicado. Durante el juego instanciado, una lista de jugadores es visible en la interfaz del juego. Esta lista es una lista de nombres de personajes del título con la opción de ver los gamertags u otro identificador de red de los jugadores. Los jugadores de la red de XBOX se resaltan de forma exclusiva.
6. **Finalización del juego** Una vez completado el juego instanciado, los jugadores del equipo vuelven al mundo de juego abierto. Los jugadores abandonan la sesión de MPSD del juego y establecen la sesión de MPSD del mundo abierto como sesión de actividad.

## Administración de sesiones

Para cumplir todos los Requisitos de XBOX, el título crea dos sesiones de MPSD para los jugadores de la red de XBOX:

* **Sesión de juego de región del mundo abierto**: el servicio del título crea al inicio una sesión de MPSD de gran tamaño, mediante llamadas de servicio a servicio a los servicios de XBOX, para cada instancia de servidor del título. Todos los jugadores de una instancia de servidor del título se unen a la sesión de MPSD correspondiente. En estas sesiones, el servidor establece un identificador de encuentro para los jugadores de la red de XBOX que interactúan entre sí, a fin de garantizar una representación correcta en la lista de jugadores recientes.
* **Sesión de juego instanciada**: esta sesión la crea el servicio de emparejamiento mediante llamadas de servicio a servicio a los servicios de XBOX. Contiene reservas para todos los jugadores de la red de XBOX de una sesión de juego (entre equipos). Se usa para rellenar correctamente la lista de jugadores recientes de los jugadores de la red de XBOX.
* **Sesión de grupo**: esta sesión se crea en cuanto un jugador crea un grupo (grupo de 1). Se usa como sesión de actividad para admitir la unión en curso y las invitaciones. Por diseño del juego, los jugadores no pueden unirse durante ciertos modos de juego. En estos modos, la propiedad **closed** se usa para deshabilitar la unión en curso y las invitaciones.

Los jugadores que no pertenecen a la red de XBOX no están representados directamente en las sesiones de MPSD como miembros de la sesión. A efectos de seguimiento, el título refleja su presencia en una propiedad de sesión personalizada:

```text theme={null}
{{"name":"jackplayer"},{"name":"johnplayer"},{"name":"joeplayer"}}
```

Esta lista y los miembros de la sesión de la red de XBOX también pueden usarse para determinar si una instancia de servidor está llena.

La sesión de MPSD de gran tamaño debe habilitar la **capacidad** de juego para cumplir los Requisitos de XBOX.

## Identidad del jugador

El nombre de personaje específico del título de un jugador se comparte en todas las redes. Durante la creación de los nombres de personaje, todas las cadenas se validan con el servicio de validación de cadenas. El lenguaje y los términos ofensivos se bloquean.

* **Identidad de los jugadores de la red de XBOX**: el título proporciona acceso al perfil de la red de XBOX de todos los jugadores de la red de XBOX. Esto se hace a través de una interfaz de usuario en el juego que está disponible en las interacciones de chat y de juego.
* **Identidad de los jugadores que no pertenecen a la red de XBOX**: el título no proporciona acceso a los perfiles ni a los nombres de perfil ajenos a la red de XBOX.

## Bloqueo, silenciamiento y denuncia de jugadores

El bloqueo y el silenciamiento de jugadores en el título se admiten a nivel del título:

* **Bloqueo/silenciamiento de jugadores de la red de XBOX**: el título usa `check_multiple_permissions_with_multiple_target_users` para comprobar los privilegios de multijugador y chat con otro jugador de la red de XBOX y las clases de jugador de los jugadores/amigos que no pertenecen a la red de XBOX. El bloqueo y el silenciamiento están disponibles a través de la interfaz de perfil de un jugador. El estado de bloqueo o silenciamiento de otros jugadores de la red de XBOX en la misma experiencia de juego se comprueba durante una transición de juego (por ejemplo, al pasar a un modo o ubicación de juego diferente) o cada cinco minutos, lo que ocurra primero.
* **Bloqueo/silenciamiento de jugadores que no pertenecen a la red de XBOX**: el título usa una lista de bloqueo interna del título para admitir el bloqueo o silenciamiento de jugadores que no pertenecen a la red de XBOX. Esta lista se mantiene en un servicio del título y se comprueba para los permisos de multijugador. Debe ser posible silenciar a un jugador que no pertenece a la red de XBOX en el título mediante una interfaz personalizada del título.
* **Denuncia de jugadores de la red de XBOX**: el título también permite denunciar a jugadores. Para la red de XBOX, la denuncia la realiza el jugador a través de la interfaz de perfil accesible en el título. El equipo de cumplimiento de la red de XBOX gestiona las denuncias de jugadores.
* **Denuncia de jugadores que no pertenecen a la red de XBOX**: para los usuarios que no pertenecen a la red de XBOX, el título proporciona un flujo de interfaz de denuncia personalizado. El título gestiona las denuncias de jugadores según corresponda para el título o según las directrices de otras redes multijugador.

## Marketplace

Las compras de moneda virtual en la red de XBOX y en otras redes multijugador se registran en un servicio del título según el escenario:

* **Moneda virtual**: los jugadores tienen una cartera combinada de moneda virtual y artículos en todas las plataformas.
* **Contenido descargable**: el contenido descargable (DLC) permite el acceso a nuevas regiones del juego. Microsoft Store se usa para las compras en las plataformas de la red de XBOX. Un jugador solo puede entrar en la región del DLC correspondiente y jugar con otros personajes que tengan el derecho de la región en su tienda respectiva.

## Logros

El título tiene logros basados en acciones de juego en el mundo abierto e instanciadas. El progreso de los logros incluye las experiencias de juego entre redes. El título no incluye ningún logro que se limite exclusivamente al juego entre redes.

## Progreso del jugador

El progreso del jugador se comparte entre todas las versiones del título. Para ello se usa una cuenta personalizada del título vinculada a varias redes multijugador y un servicio personalizado del título.

## Game DVR/difusión

El título permite Game DVR y capturas de pantalla en el juego en mundo abierto e instanciado, pero elimina todo el chat de texto del búfer de imagen.

## Tablas de clasificación

El título admite tablas de clasificación personalizadas para las partidas PvP y los desafíos PvE del título. Estas tablas de clasificación las mantiene un servicio del título. Este servicio identifica a los jugadores mediante GUID que se resuelven en el cliente para obtener el nombre legible del jugador.

## Temas relacionados

* [XR-007 Juego entre redes, uso de datos e interacciones con aplicaciones complementarias](/publishing/certification/xr/xr-007)
* [Ejemplo de juego multijugador de XR-007](/publishing/certification/xr/xr-007-multiplayer)
* [XR-015 Administración de la comunicación entre jugadores](/publishing/certification/xr/xr-015)
* [XR-045 Red de XBOX y privilegios de cuenta](/publishing/certification/xr/xr-045)


## Related topics

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