Lista de verificación de calidad para los Servicios de juego de Google Play

La calidad de tu juego determina su éxito a largo plazo (en cuanto a instalaciones, calificaciones, reseñas, participación y retención de usuarios). Antes de publicar tu juego, es importante que te asegures de que cumpla con las expectativas básicas de los jugadores mediante funciones atractivas y una IU intuitiva y bien diseñada.

Este documento te ayuda a enfocarte en los aspectos clave de la calidad, el conjunto de funciones y la IU que pueden tener un impacto significativo en el éxito de tu juego. Cada área de enfoque se presenta con una lista de tareas con requisitos mínimos, prácticas recomendadas y mejoras aconsejables. Para ofrecer el mejor producto posible a los usuarios, sigue la lista de tareas con recomendaciones en la mayor medida posible.

1. Acceso

La siguiente lista de tareas se aplica a la implementación de funcionalidades de acceso de jugadores en el juego. Obtén más información sobre cómo funciona el acceso y cómo debes implementarlo en Conceptos de acceso. Para ver ejemplos de códigos de implementación de funciones de acceso en juegos para dispositivos móviles, consulta Cómo implementar funciones de acceso en Android.

ID Importancia Descripción
1.1 Obligatoria Haz que los jugadores accedan con los Servicios de juego de Google Play.
1.1.1. Haz que los jugadores accedan automáticamente cuando se inicie el juego. Usa el acceso manual como respaldo.

Los juegos deben implementar un acceso silencioso para ayudar a los jugadores a autenticarse rápidamente y autorizar el uso de todas las funciones que proporcionan los servicios de juego de Google Play. Si falla el acceso silencioso, la app debe solicitar a los jugadores que accedan de forma interactiva. Mediante el acceso interactivo, los jugadores pueden elegir acceder al juego y Play Juegos garantiza que su perfil esté configurado correctamente para usarlo en tu juego. La combinación de accesos silenciosos e interactivos permite obtener las tasas de acceso más altas con una fricción mínima para el usuario.

Si el jugador elige no acceder, recuérdalo y no vuelvas a pedirle que lo haga. En su lugar, proporciona un botón de acceso. El botón de acceso debe ser fácil de encontrar para los jugadores (por ejemplo, debe ser accesible desde la pantalla principal o encontrarse en la pantalla Configuración). Este botón no debería estar oculto detrás de varios niveles en el menú del juego. Sigue tratando de que los jugadores accedan automáticamente cada vez que inician el juego; es posible que cambien sus preferencias y accedan automáticamente.

1.2 Obligatoria No solicites permisos que no sean de Play Juegos cuando crees tu cliente de acceso. Esto permitirá que los jugadores accedan automáticamente a tu juego, ya que solicitar permisos que no sean de Play Juegos obligará a los usuarios a usar el acceso interactivo.

Si ya solicitas permisos que no sean de Play Juegos, quita los permisos innecesarios de tu construcción de GoogleSignInOptions junto con las API que ya no uses. Si necesitas solicitar otros permisos (por ejemplo, si quieres ver el correo electrónico de un usuario con fines de marketing), hazlo en un momento relevante y no como parte del proceso de acceso.

// This is the proper way to do it
GoogleSignInOptions signInOption = GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN;
1.3 Obligatoria Permite que los jugadores permanezcan conectados.

Una vez que el jugador acceda correctamente a tu juego, conéctalo de forma automática cada vez que este se inicie, hasta que salga de la cuenta.

1.4 Obligatoria Muestra la ventana emergente "Conectando" de forma adecuada durante el acceso.

En dispositivos Android, se debe mostrar la ventana emergente "Conectando" de Google Play Juegos cada vez que se invoca el flujo de acceso. Para ello, debes llamar al método setViewForPopups() de la clase GamesClient. Verifica que esta ventana emergente aparezca cuando el jugador acceda automáticamente al inicio del juego. De esta manera, los jugadores sabrán que están accediendo correctamente a tu juego.

En el siguiente ejemplo, se muestra cómo puede aparecer la ventana emergente "Conectando" en un juego de Android durante el acceso, seguida de una breve animación del logotipo de los Servicios de juego de Google Play.

Screeshot muestra la ventana emergente "Conectando a".
1.5 Obligatoria Proporciona a los jugadores una opción para salir.

Después de acceder, el jugador siempre debe tener la opción de salir.

Procura incluir un botón de cierre de sesión en una pantalla de juego relevante de tu app (por ejemplo, en la pantalla de Configuración del jugador).

1.6 Práctica recomendada Recuerda si los jugadores rechazaron la opción de acceder.

Aunque el jugador rechace acceder cuando el juego comience por primera vez el flujo de acceso (por ejemplo, si hizo clic en Cancelar en la IU de acceso), debes permitir que el usuario continúe con el juego.

Cuando el jugador vuelva a iniciar el juego, no invoques el flujo de acceso interactivo automáticamente. Estos jugadores pueden elegir acceder más tarde con el botón Acceder que debería estar en tu sistema de Configuración. De esta manera, los jugadores no tendrán que rechazar la opción de acceder cada vez que inicien el juego.

Una excepción es si los jugadores intentan acceder a una función del juego que depende de que hayan accedido a sus cuentas (por ejemplo, enviando una puntuación a una tabla de clasificación). En este caso, pídele que acceda antes de continuar con el juego.

1.7 Práctica recomendada Maximiza la cantidad de jugadores que accedieron.

Tener más jugadores que acceden a los Servicios de juego de Google Play beneficia a los jugadores, ya que aumenta las oportunidades de jugar de manera colaborativa y competitiva. Para maximizar la cantidad de jugadores que accedieron a los Servicios de juego de Google Play, te recomendamos que solicites a los jugadores que accedan de forma automática, como se describió anteriormente.

De lo contrario, dirige a los jugadores al flujo de acceso lo antes posible desde uno de estos puntos (el más recomendado primero):

  • Inmediatamente después de que comience el juego
  • Inmediatamente después de una experiencia inicial, como una escena o un instructivo.
  • Cuando el jugador hace clic en un botón de Acceso con Google en cualquier parte del juego.
1.8 Aconsejable Sigue los lineamientos de desarrollo de la marca de Google.

Para proporcionar a los jugadores una experiencia atractiva y coherente en todos los aspectos, implementa los lineamientos para el desarrollo de la marca de los Servicios de juego de Google Play.

1.9 Aconsejable Recuérdales a los jugadores que ya accedieron.

Incluye un indicador o recordatorio apropiado para los jugadores que accedieron cuando el juego realice acciones en su nombre. Por ejemplo, cuando un jugador conectado termine un nivel, puedes enviarle un mensaje como este para indicarle que sus logros y puntuación se cargarán de forma automática: "Accediste con Google. Tus logros y puntuaciones se guardarán automáticamente".

1.10 Obligatoria Crea una copia de seguridad del progreso del jugador con el ID de los Servicios de juego de Play.

A fin de asegurarte de que los jugadores no pierdan su progreso cuando cambien o restablezcan dispositivos, o si juegan en varios dispositivos, asegúrate de que se cree una copia de seguridad de su progreso en una solución de almacenamiento en la nube y usa el ID de los Servicios de juego de Play como clave de forma segura si usas tu propio servidor de juegos de backend. Cuando los jugadores accedan con su ID de los Servicios de juego de Play, verifica si existe algún progreso en esa cuenta y, si es así, permite que el jugador retome desde donde se quedó. Puedes usar tu propia solución de almacenamiento en la nube o los Juegos guardados de los Servicios de juego de Play.

Si el jugador no accedió, intenta mantener su progreso de forma local y, luego, sincronízalo cuando acceda a su cuenta. De este modo, evitarás perder el progreso si el jugador pospone el acceso.

2. Logros

La siguiente lista de tareas se aplica a la implementación de la función Logros en el juego.

ID Importancia Descripción
2.1 Obligatoria Asegúrate de que todos los logros sean alcanzables.

Los jugadores deben poder desbloquear todos los logros que hayas creado.

2.2 Práctica recomendada Diferencia los logros.

Todas las imágenes, textos y descripciones deben ser únicos para los logros.

2.3 Práctica recomendada Califica los logros de manera proporcional.

Los puntos de los logros deben ser proporcionales a la cantidad de tiempo o habilidad que se necesita para alcanzarlos.

2.4 Práctica recomendada Diseña logros para varios niveles de dificultad.

Incluye algunos logros fáciles que los jugadores puedan desbloquear en un juego casual, cierta cantidad de logros de dificultad intermedia que requieran más habilidad o dedicación para desbloquearlos, y uno o dos muy difíciles de obtener para los jugadores más dedicados.

Por ejemplo, la siguiente captura de pantalla muestra un logro difícil de obtener que ayuda a motivar y retener a los fans.

logro difícil de obtener para el que se deben ganar 5,000 gemas
2.5 Aconsejable No otorgues demasiados logros al principio.

Evita otorgar más de un logro durante los primeros 5 minutos del juego, ya que los nuevos jugadores no estarán lo suficientemente interesados como para darles importancia.

No definas tus logros para que se otorguen de forma no intencional en las primeras etapas del juego. Por ejemplo, evita los logros que serían triviales si se entregaran al principio del juego, como "Completar un nivel sin recibir ningún daño".

2.6 Aconsejable Define los logros en torno a actividades atractivas dentro del juego.

Selecciona métricas para crear logros que hagan que tu juego sea más atractivo y llamativo. Por ejemplo, "cantidad de zombis que mataste" es una métrica más interesante que "cantidad de kilómetros que caminó tu personaje".

2.7 Aconsejable Usa íconos de colores para los logros.

Los Servicios de juego de Google Play usan versiones de los íconos de logros en escala de grises para mostrar si están obtenidos o no ganados. Si solo puedes usar íconos de logros completamente blancos o negros, muéstralos sobre un fondo de color.

2.8 Aconsejable Minimiza el uso de logros ocultos.

Los logros ocultos solo deben usarse para evitar spoilers en el juego, pero no deben ser la norma.

2.9 Aconsejable Evita los logros que dependan demasiado del azar.

"Encontrar 100 cofres del tesoro" es un mejor logro que "Encontrar un artículo que tiene un 1% de probabilidad de aparecer en un cofre del tesoro".

2.10 Aconsejable Piensa como un "cazador de logros".

Algunos jugadores intentarán ganar todos los logros que crees. Intenta ofrecer logros que se adapten a esta categoría de jugadores. Evita crear logros que dependan demasiado de elementos que el jugador no pueda controlar o que no se puedan obtener una vez que el jugador haya tomado una decisión.

2.11 Aconsejable Asegúrate de que el ícono de logros se muestre correctamente.

Cuando los íconos de logros se muestran en las notificaciones de Android, se superponen con un círculo y se ocultan las esquinas exteriores. Asegúrate de que tu ícono se vea bien, incluso en estas circunstancias.

3. Tablas de clasificación

La siguiente lista de tareas se aplica a la implementación de la función Tablas de clasificación en el juego.

ID Importancia Descripción
3.1 Recomendación Muestra las tablas de clasificación en el menú principal y luego de las transiciones importantes.

Las tablas de clasificación deben estar disponibles mientras se carga el juego. Después de las transiciones críticas de un juego (por ejemplo, al final de un nivel o cuando muere el jugador), los jugadores deberían ver inmediatamente los vínculos a las tablas de clasificación relevantes.

3.2 Práctica recomendada Define los límites superiores de las puntuaciones que se pueden enviar.

Si es posible, agrega límites cuando definas las tablas de clasificación para que se descarten las puntuaciones claramente falsas.

3.3 Práctica recomendada Usa íconos personalizados.

Crea un ícono personalizado para cada tabla de clasificación que definas; no uses simplemente el ícono de tu juego, ya que se verá mal en la app de Google Play Juegos.

3.4 Práctica recomendada Mantén una frecuencia de envío de puntuaciones apropiada.

Envía las puntuaciones luego de las transiciones críticas del juego, como al final de un nivel o cuando muere el personaje del jugador. En el caso de los juegos sin transiciones críticas, como los de carreras interminables, usa el sentido común para determinar la frecuencia de envío de las puntuaciones. Las puntuaciones no deben enviarse de forma continua ni cada segundo.

3.5 Aconsejable Usa etiquetas de puntuación.

Las etiquetas de puntuación son bits adicionales de datos que se pueden enviar con la entrega de la puntuación. Por ejemplo, puedes implementar una etiqueta de puntuación como una marca para confirmar que la puntuación que envió un jugador sea válida.

Las tablas de clasificación personalizadas también pueden leer los datos de estas etiquetas. Por ejemplo, si la etiqueta de puntuación consta de un ID de un video de YouTube que contiene la partida de ese jugador, tu juego podría crear un vínculo para ver ese video en la tabla de clasificación.

3.6 Aconsejable Diseña tu propia IU para la tabla de clasificación de manera creativa.

Si tienes los recursos necesarios, crea tu propia vista de tabla de clasificación personalizada sobre los datos de las tablas de clasificación sociales. Las tablas de clasificación sociales suelen crear una experiencia más atractiva que las públicas. Verifica primero para determinar si hay entradas en la tabla de clasificación social. Si no es así, utiliza la tabla de clasificación pública.

3.7 Aconsejable Muestra a los jugadores cómo se comparan con sus competidores.

La API de tablas de clasificación admite ventanas de puntuaciones (por ejemplo, el ranking de un jugador dentro de un rango de 10 posiciones aproximadamente). Si creas una vista personalizada, esta puede ser una manera muy eficaz de promover la participación. Puedes mostrarla justo después de una transición crítica en el juego, como al final de un nivel o cuando muere el personaje del jugador. Evita obligar al jugador a hacer clic demasiadas veces para acceder a la información de su ranking.

4. Amigos

La siguiente lista de tareas se aplica a la implementación de las API de amigos en tu juego.

ID Importancia Descripción
4.1 Obligatoria Cuando los jugadores aparezcan en una lista, muestra el ícono de Play Juegos junto a los usuarios que tienen un perfil de Play Juegos.

Puede ser una lista de amigos existentes, una lista de amigos con los que se jugó recientemente u otra lista de amigos.

4.1.1. Se debe poder hacer clic en el ícono de Play Juegos.
Si el usuario presiona el ícono, el juego debe llamar a getCompareProfileIntent() o getCompareProfileIntentWithAlternativeNameHints() para mostrar la IU que permite que el usuario se compare con el perfil de otro jugador.
4.1.2. Incluye compatibilidad con los perfiles de jugadores y las invitaciones de amigos para poder personalizar los nombres de los jugadores en los juegos.
Si un jugador establece un nombre diferente en el juego (y no usa el nombre de su perfil de Play Juegos), usa getCompareProfileIntentWithAlternativeNameHints() a fin de proporcionar ese nombre alternativo en el juego, tanto para el jugador actual como para el que él está viendo, como contexto de la vista del perfil y de cualquier invitación de amistad que se envíe. Pasa solo los nombres de jugador globales y persistentes para los valores, y no el contenido arbitrario del usuario. Este requisito implica que las invitaciones de amigos que se envíen desde el juego proporcionarán contexto a ambos jugadores:
  • El destinatario verá el nombre del remitente en el juego, junto con el nombre del juego.
  • Al ver la amistad, el remitente seguirá viendo el nombre del destinatario en el juego, así como el juego desde el que se inició el envío.
4.2 Recomendación Usa íconos diferentes a fin de mostrar cuáles usuarios de Play Juegos ya son amigos y cuáles aún no lo son, pero accedieron a Play Juegos. Usa dos íconos para los usuarios de Play Juegos: uno para "Amigos" y otro para "No amigos" (o cuando se desconoce el estado de la amistad).
Ícono de amigos
Ícono de No amigos
4.3 Recomendación Llama a loadFriends() cada vez que accedas y muestra la lista de amigos a los efectos de asegurarte de que esté actualizada. Asegúrate de que los jugadores vean la lista actualizada.
4.4 Práctica recomendada Si tu juego ya incluye amigos en el juego, usa las API de Friends para aumentar la lista de amigos y agregar los de Play Juegos. Si un jugador se encuentra en la lista de amigos del juego y también es un amigo de Play Juegos, muestra el ícono de "Amigos".
4.5 Práctica recomendada Si un jugador rechazó la solicitud de acceso a su lista de amigos, no muestres el diálogo que lo solicita de nuevo, a menos que el usuario haya realizado una acción para indicar que desea otorgar acceso (por ejemplo, presionar un botón "Importar amigos de Play Juegos").
4.6 Práctica recomendada Si un jugador rechazó el acceso a la lista de amigos, ofrécele una forma de otorgar acceso a la lista de amigos en el futuro (por ejemplo, después de presionar un botón "Importar amigos de Play Juegos").
4.7 Recomendación Si usas el ID de jugador o la lista de amigos con un servidor de backend, debes acceder al ID o a la lista de forma segura. Además, en el caso de algunos juegos y jugadores más antiguos, es posible que el ID que muestra el SDK de Android para un jugador no sea el mismo que ven otros jugadores cuando observan a ese jugador en el mismo juego. En particular, esto resulta relevante cuando se usa la lista de amigos. Sin embargo, el player_id que se muestra dentro de la API de REST siempre es coherente y siempre es el ID visible para otros jugadores.

5. Cuota y límite de frecuencia

La siguiente lista de tareas se aplica a la administración de la cuota y el límite de frecuencia en el juego. Para obtener información sobre cómo administrar la cuota de tu juego y detectar cuando se supere el límite de frecuencia, consulta Cómo administrar la cuota y el límite de frecuencia.

ID Importancia Descripción
5.1 Recomendación Usa las bibliotecas cliente.

Las bibliotecas cliente para dispositivos móviles emplean una serie de estrategias con el fin de reducir las llamadas que realizas al servicio. Por ejemplo, los datos de logros y tablas de clasificación se almacenan en caché. Por lo tanto, los jugadores pueden verlos cuando quieran sin que el servicio deba realizar varias llamadas.

La biblioteca cliente de Android no enviará la puntuación del jugador al servidor si la puntuación no es tan buena como la que enviaste recientemente. Además, la biblioteca de Android combina automáticamente las llamadas frecuentes a logros incrementales cuando detecta que se está limitando la frecuencia.

5.2 Aconsejable Combina las llamadas frecuentes a logros incrementales.

Si creas un juego de peleas y uno de los logros es "Lanzar 5,000 golpes", no envíes una llamada de logro incremental cada vez que alguien lance un golpe. Espera hasta que termine el asalto y, luego, envía una llamada a increment(xxx) (donde xxx es la cantidad total de golpes que se lanzaron en el asalto) o espera hasta que se lancen 50 golpes antes de enviar una única llamada a increment(50).

5.3 Aconsejable Mantente al tanto de tu uso.

Ten en cuenta la cantidad de llamadas que realices a los Servicios de juego de Google Play. Incluso si evitas alcanzar los límites de frecuencia, las llamadas frecuentes pueden generar un tráfico de red alto y ocasionar que la batería del dispositivo se agote más rápido. Para evitar esto, puedes usar las siguientes técnicas:

  • Cuando implementes Juegos guardados, mantén la frecuencia a una vez cada algunos minutos, no cada vez que se haga clic en un botón.
  • Espera hasta que termine el juego del jugador antes de enviar una puntuación alta.
  • Para revisar la cuota diaria de tu app, ve al panel del proyecto en Google Cloud Platform.

6. Juegos guardados

La siguiente lista de tareas se aplica a la implementación de la función Juegos guardados en el juego.

ID Importancia Descripción
6.1 Obligatoria Agrega metadatos a fin de proporcionar contexto adicional para los juegos guardados.

Como mínimo, debes incluir los siguientes metadatos para confirmar un juego guardado:

  • Imagen de portada: Una captura de pantalla que muestre el progreso del juego y le recuerde al jugador dónde se quedó
  • Descripción: Es una descripción breve que proporciona contexto adicional a la imagen de portada.
  • Marca de tiempo: Indica el tiempo que el jugador lleva jugando este juego guardado
6.2 Obligatoria Permite que los jugadores carguen los juegos guardados.

Carga el juego guardado correcto cuando el jugador lo seleccione, ya sea desde la app de Play Juegos o en la IU de selección de Juegos guardados predeterminada.