Requisitos para la integración

En esta sección, se aborda la integración entre el contenido reproducible y el SDK de YouTube Playables.

1. Carga el SDK de Playables

2. Notificación de que el juego está listo

  • El juego DEBE llamar a firstFrameReady cuando renderice una pantalla de carga o una pantalla de presentación que le comunique explícitamente al usuario que el proceso de carga está en curso.
  • El juego DEBE llamar a gameReady y DEBE llamar a gameReady solo cuando esté listo para la interacción del usuario (por ejemplo, cuando el menú principal o el juego estén listos para jugar).
  • El juego NO DEBE llamar a gameReady mientras aún se muestren elementos no interactivos al usuario (por ejemplo, pantallas de presentación o pantallas de carga).

YouTube no quita el "spinner de carga" hasta que se llama a esta API.

3 puntuaciones de usuarios

  • El juego MAY puede usar sendScore para enviar la puntuación del usuario.
  • Si el juego usa sendScore para enviar puntuaciones, DEBE cumplir con la especificación de sendScore y DEBE garantizar que la mejor puntuación enviada coincida con la mejor puntuación en el archivo de guardado del juego.

4 Almacenamiento en la nube

  • El juego DEBE llamar a saveData para guardar el progreso cuando los usuarios hayan logrado un progreso material en el juego (por ejemplo, un cambio de nivel) en el que la mecánica del juego lleve al usuario a creer que se guardó su progreso.
  • El juego NO DEBE usar ningún otro mecanismo para guardar el progreso del usuario. Esta función permite que los jugadores reanuden el juego en un momento posterior.
  • El juego DEBE esperar loadData antes de llamar a saveData. Si se llama a saveData antes de que loadData se complete correctamente, se rechazará la solicitud. Esto evita que el juego sobrescriba los datos guardados anteriormente.
  • El juego DEBE poder usar los datos de guardado en la nube de versiones anteriores del juego sin errores ni fallas.
  • El juego DEBE usar los datos de guardado en la nube para mantener el progreso del usuario en todas las versiones del juego en las que el usuario esperaría que se usaran sus datos.
  • Los juegos DEBEN guardar automáticamente el progreso del usuario en los hitos importantes del juego para evitar la pérdida de datos. Se realiza un guardado final de vaciado cuando un usuario sale del juego, pero es un esfuerzo óptimo y solo puede guardar hasta 64 KiB de longitud de contenido.

5. Activar o desactivar silencio

  • El juego DEBE respetar el parámetro de configuración de audio del sistema y el botón para silenciar.
  • El juego DEBE respetar el botón para silenciar y la configuración de audio de YouTube con isAudioEnabled y onAudioEnabledChange.
  • El juego DEBE respetar el control de volumen del dispositivo.
  • El sonido del juego NO DEBE reproducirse de forma inesperada.
  • Cuando se establece el silencio de YouTube, NO se debe emitir audio y los controles de audio del juego NO deben afectar la salida de audio.
  • Cuando el silencio de YouTube no está configurado, los controles de audio del juego PUEDEN afectar la salida de audio.
  • El juego NO DEBE mostrar un botón para silenciar general dentro del juego en sí; permite que los usuarios usen las funciones a nivel de YouTube para esto.
  • El juego PUEDE tener controles de audio detallados separados en el juego, como para la música y los efectos de sonido, pero DEBE cumplir con todos los demás requisitos de control de audio.

Diferentes parámetros de configuración de audio para el fondo, los efectos de sonido y los diálogos

6. Pausar y reanudar

El SDK de Playables proporciona devoluciones de llamada para las capacidades de pausa y reanudación multiplataforma.

  • El juego DEBE pausar toda la ejecución después de que se llame a onPause y DEBE reanudar la ejecución solo cuando se llame a onResume. La ejecución incluye todas las capacidades de los jugables, como el bucle de juego, la música, las interacciones, las llamadas de red y la renderización.
  • El juego NO DEBE usar la API de Page Visibility web ni APIs web similares, y SOLO DEBE usar el SDK de Playables onPause y onResume.
  • El juego DEBE guardar el progreso del usuario cuando se produce onPause.