En esta página, se explica cómo integrar el acceso a los Servicios de juego de Play a tu solución existente de identidad o almacenamiento en la nube. Si bien estas recomendaciones son opcionales, pueden ayudarte a cumplir con los requisitos de almacenamiento en la nube de Google Play Juegos para PC. Usa las páginas de requisitos de continuidad y comportamientos esperados para verificar que tu implementación cumpla con estos requisitos.
Cómo restablecer el estado del jugador
En el backend del juego, es probable que las cuentas del juego estén representadas con algún identificador que te permita recuperar y actualizar el progreso dentro del juego. Lo llamaremos, en forma abreviada, ID de la cuenta. Cuando un jugador accede a los Servicios de juego de Play, puedes usar esa autenticación para obtener un identificador nuevo, el ID de jugador de los Servicios de juego de Play, que se usa para proporcionar el requisito de almacenamiento en la nube.
Cuando un jugador accede con los Servicios de juego de Play, debes continuar de la siguiente manera:
- Recupera el código de OAuth del cliente y envíalo a tu servidor.
- Intercambia el token de autenticación y obtén un ID de Servicios de juego de Play verificado desde el servidor de Play Juegos. De esta manera, te aseguras de que el ID sea de confianza, y no de alguien que finja ser otro jugador usando un dispositivo vulnerado.
- Intenta resolver una cuenta de juego según las condiciones del dispositivo y los identificadores vinculados.
Debes introducir las siguientes dos situaciones nuevas principales en tu juego:
- Almacén de los ID de Servicios de juego de Play en tu backend y asignación de los ID de cuentas existentes de alguna de las siguientes maneras:
- Para los jugadores nuevos, el progreso debe vincularse automáticamente a los Servicios de juego de Play en algún momento (p. ej., al inicio del juego, después del instructivo o algunos niveles, etcétera).
- En el caso de los jugadores existentes, el progreso actual debe vincularse automáticamente a los Servicios de juego de Play después de que el jugador actualice la versión del juego con la versión 2 de los Servicios de juego de Play integrados.
- El ID de Servicios de juego de Play se puede vincular con una o más cuentas. Los Servicios de juego de Play se pueden desvincular de esas cuentas, pero deben estar vinculados a, al menos, una cuenta válida.
- Debes restablecer automáticamente el progreso del juego en un dispositivo nuevo o en el que el jugador haya salido de la cuenta según el ID de jugador de los Servicios de juego de Play.
El modo de almacenamiento y asignación de los IDs de Servicios de juego de Play a las cuentas existentes es flexible, como se describe en los ejemplos que se muestran más adelante. Los requisitos principales que se deben tener en cuenta son que el jugador no debería tener que acceder de forma manual ni debería tener que crear un vínculo con otro sistema de identidad para crear un enlace entre su ID de Servicios de juego de Play y el progreso del juego, y que el progreso del jugador debería restablecerse fácilmente en todas las plataformas.
Cuando diseñes la solución, comienza por observar el sistema existente y cómo este incorpora diferentes proveedores de identidad. Algunos sistemas utilizan un solo identificador por cuenta, mientras que otros utilizan varios.
Si solo puedes asociar cada ID de la cuenta con un solo identificador, deberás agregar compatibilidad para asociar los Servicios de juego de Play con él. A continuación, se muestran las soluciones para hacerlo.
Ejemplos de soluciones
Los ejemplos de soluciones incluyen algunas de vinculación y otras de recuperación.
La vinculación es el proceso de vinculación permanente o semipermanente del ID de Servicios de juego de Play con un estado de la cuenta. En este proceso, la cuenta subyacente que se restablece a través de los Servicios de juego de Play no cambia para el jugador sin su acción, incluso si sale de la cuenta y accede con otra dentro del juego. Abordamos esto con la vinculación de cuentas.
Con la recuperación, como desarrollador del juego, almacenas una asignación parcial del ID de Servicios de juego de Play, además de las cuentas vistas por última vez que el jugador puede restablecer cuando accede mediante los Servicios de juego de Play en otro dispositivo. Cada vez que el jugador accede a otra cuenta del juego con el mismo ID de Servicios de juego de Play, esta vinculación cambia. A continuación, puedes ver un diagrama de flujo de ejemplo, que se aborda en más detalle en el ejemplo de recuperación de cuentas recientes que se muestra más adelante:
Más abajo se agregan otros ejemplos de flujos de usuarios a las soluciones.
Vinculación de cuentas
Si tu juego no tiene muchos jugadores de cuentas múltiples o si deseas incentivar a los gamers a tener una sola cuenta dentro de tu juego, es probable que la vinculación sea la mejor solución para tu juego. En este ejemplo, vinculas la primera cuenta que ves cuando accedes con Servicios de juego de Play (ya sea una cuenta de invitado o una vinculada a otra plataforma de identidad) con el ID de jugador de Servicios de juego de Play. Después de esta vinculación, esa cuenta vinculada se restablece en los dispositivos nuevos automáticamente. Como estamos realizando una vinculación sólida, el jugador también puede cambiar de perfil de Servicios de juego de Play a fin de cambiar de cuenta dentro del juego y puedes pedirle al jugador que confirme el procedimiento en este caso.
Si hay cuentas en conflicto, te recomendamos que le pidas al jugador que elija una de ellas. Estos casos conflictivos solo deberían presentarse con los jugadores que tienen varias cuentas en tu juego; es probable que ellos tengan el conocimiento y el deseo de jugar con una cuenta específica.
Una vez que se haya resuelto el problema con la cuenta, el juego debería recordar la elección del jugador, a menos que haya un cambio en los identificadores de acceso. Si se cambia el perfil de Servicios de juego de Play o el jugador accede a un identificador diferente dentro del juego, se deben repetir los pasos anteriores, ya que el jugador dio un indicador claro de que desea cambiar de cuenta.
Desvinculación
Si quieres ofrecerle al jugador la capacidad de controlar por completo sus vinculaciones, puedes brindarle la posibilidad de desvincular su ID de jugador de los Servicios de juego de Play con una cuenta de juego. Esta opción podría ser importante para algunos jugadores que tienen varias cuentas en caso de que vinculen accidentalmente su ID de jugador de los Servicios de juego de Play con una cuenta que no es la principal.
Ejemplos de vinculación de cuentas adicionales
En este ejemplo principal, se muestra que un ID de jugador determinado de los Servicios de juego de Play (1) está vinculado a la primera cuenta en el juego que se ve (A) y no se restablecen cuando el jugador sale del progreso del juego a fin de jugar con otra cuenta.
De manera opcional, puedes permitir que los jugadores vuelvan a vincular su cuenta, pero no es un requisito.
Cambio de cuenta en el dispositivo
En este caso, el jugador cambió las cuentas de los Servicios de juego de Play de forma manual, por lo que le dio al juego un indicador claro de que quiere cambiar la cuenta de juego a otra cuenta. El jugador espera una reacción ante este cambio, por lo que, si se tiene en cuenta ese indicador, tendrá una mejor experiencia.
Cuenta existente vinculada con otro identificador
En este ejemplo, se muestra que incluso las cuentas vinculadas a identificadores que no son parte de los Servicios de juego de Play deben estar vinculadas a estos servicios y, luego, restablecerse en los dispositivos nuevos. La mayoría de los jugadores existentes de tu juego que tengan cuentas se incluirán en esta categoría.
Recuperación de cuentas recientes
Cuando se piensa en soluciones, es habitual que surja la experiencia para varias cuentas. Si tu juego incentiva a los power users a crear muchas cuentas (como los juegos gacha o los de elige tu propia aventura), es posible que la vinculación del ID de Servicios de juego de Play a una sola cuenta no brinde la mejor experiencia del jugador cuando se utilizan distintos dispositivos.
En la solución de recuperación, se almacena un mapeo parcial de un ID de jugador de Servicios de juego de Play y una cuenta en el juego, y el jugador solo ve las últimas cuentas que almacenaste cuando se cambia de dispositivo o se cierra sesión.
En el ejemplo que se muestra a continuación, un jugador posee tres cuentas para un juego y, luego, cambia a un dispositivo nuevo:
Cuando solicitas al jugador que realice el restablecimiento, también puedes ofrecer los botones "Cancelar" o "Crear nueva" para que elija crear una cuenta nueva.
Además, para mayor simplicidad, tu juego podría optar por recuperar solo la última cuenta vista. Esto quizás sea más difícil para el caso de uso de cambio de varias cuentas, pero cumple con el requisito de continuidad.
Ejemplos adicionales de recuperación
En la siguiente sección, se incluyen ejemplos adicionales de recuperación.
Teléfonos que no ejecutan Android
Aquí mostramos ambas cuentas de recuperación que ya existen (cuenta de terceros vinculada) o que se crearon desde otro dispositivo en el que no se accedió a los Servicios de juego de Play.
Un flujo más común puede comenzar desde un teléfono que no es Android y pasar a Google Play Juegos para PC.
Como el teléfono que no es Android no cuenta con los Servicios de juego de Play, no hay recuperación activa, y el jugador debe escribir manualmente sus credenciales desde Google Play Juegos para PC.
Varios perfiles de Servicios de juego de Play para una sola cuenta
En ocasiones, puede haber varios perfiles de Servicios de juego de Play activos que hayan previamente "recuperado" una cuenta determinada. Para este caso, hay dos soluciones principales que funcionan de la misma manera:
Guardar de todos modos Ignoramos los punteros duplicados de una cuenta determinada en el modelo "Guardar de todos modos".
Anulación En el modelo "Anular", el desarrollador debe recordar los Servicios de juego de Play en las asignaciones de cuentas y borrar las asignaciones anteriores de sus tablas del modelo "Anular". De esa manera, pueden mantener una asignación 1:1 sin cuentas recuperadas ni cuentas de los Servicios de juego de Play.
Recuperación en un mismo dispositivo Un jugador de varias cuentas puede usar tu implementación de recuperación para cambiar rápidamente entre las cuentas del juego.