Cómo compilar juegos para TV

La pantalla de la TV presenta un número de consideraciones que pueden resultarles desconocidas a los desarrolladores de juegos para dispositivos móviles. Entre estas, se incluyen su gran tamaño, su esquema de control y el hecho de que todos los jugadores la ven de forma simultánea.

Pantalla

Los dos aspectos principales que debes tener en cuenta cuando desarrollas juegos para la pantalla de la TV son su naturaleza como pantalla compartida y la necesidad de diseñar tu juego con orientación horizontal.

Considera la pantalla compartida

Una TV de una sala de estar presenta desafíos de diseño para los juegos con modo multijugador, ya que todos los jugadores pueden ver todo. Este problema es en especial relevante para los juegos (como los de cartas o estrategia) en los que los jugadores poseen información que se oculta a los demás.

Puedes implementar algunos mecanismos para solucionar el problema de que un jugador espíe la información de otro:

  • Usa un protector en la pantalla para ocultar la información. Por ejemplo, en un juego por turnos, como un juego de palabras o cartas, un jugador por vez puede ver la pantalla. Cuando el jugador finaliza un turno, el juego le permite cubrir la pantalla con un protector que bloquea la información confidencial para que los demás no puedan verla. Cuando el jugador finaliza un turno, el juego le permite cubrir la pantalla con un protector que impide que los demás vean la información secreta. Cuando comienza el turno del siguiente jugador, el protector se abre para revelar su propia información.
  • Usa una app complementaria que se ejecute en un teléfono o tablet y sirva como segunda pantalla para permitirle a un jugador ocultar información.

Compatibilidad con pantalla horizontal

Una TV siempre tiene la misma orientación: no puedes girarla y no existe la orientación vertical. Diseña siempre tus juegos de TV para que se muestren en modo de paisaje.

Dispositivos de entrada

Las TV no tienen interfaces táctiles, de modo que es más importante desarrollar bien los controles y asegurarte de que los jugadores tengan una experiencia intuitiva y divertida. El uso de controles presenta otros problemas a los que debes prestar atención, como hacer un seguimiento de varios controles y resolver de manera óptima las desconexiones. Todas las apps de TV, incluidos los juegos, deben manejar los controles de forma coherente. Obtén más información sobre Cómo administrar controles de TV y consulta Administración de controles para juegos, que incluye información específica sobre cómo usar los controles de TV para juegos.

Manifiesto

Hay algunos aspectos especiales que deben incluir los juegos en el manifiesto de Android.

Muestra tu juego en la pantalla principal

La pantalla principal de Android TV muestra los juegos en una fila separada del resto de las apps normales. Para que tu juego aparezca en la lista de juegos, define el atributo android:isGame en "true" en la etiqueta <application> del manifiesto de tu app. Por ejemplo:

    <application
        ...
        android:isGame="true"
        ...
    >
    

Declara la compatibilidad con los controles de juegos

Es posible que los controles de juegos no estén disponibles o no estén activos para los usuarios de un dispositivo de TV. Para informar de forma adecuada a los usuarios que tu juego es compatible con un control, debes incluir la siguiente entrada en el manifiesto de tu app:

      <uses-feature android:name="android.hardware.gamepad" android:required="false"/>
    

Nota: Si especificas la compatibilidad con android:hardware:gamepad, no definas el atributo android:required como "true". Si lo haces, los usuarios no podrán instalar tu app en los dispositivos de TV.

Para obtener más información sobre las entradas del manifiesto, consulta Descripción general del manifiesto de una app.

Servicios de juego de Google Play

Si tu juego integra los Servicios de juegos de Google Play, debes tener en cuenta varias consideraciones relacionadas con los logros, el acceso, cómo guardar juegos y el modo multijugador.

Logros

El juego debe incluir al menos cinco logros (que se puedan alcanzar). Solo un usuario que controle el juego desde un dispositivo de entrada compatible debería poder obtener los logros. Para obtener más información sobre los logros y cómo implementarlos, consulta Logros en Android.

Acceso

El juego debe intentar acceder al perfil del usuario en el lanzamiento. Si un jugador rechaza el acceso varias veces seguidas, el juego debería dejar de preguntar. Obtén más información sobre el acceso en Cómo implementar el acceso en Android.

Cómo guardar juegos

Usa el espacio Juegos guardados de los servicios de Google Play para guardar las partidas de tu juego. Tu juego debe vincular las partidas guardadas a una Cuenta de Google específica, de modo que se pueda identificar de manera única, incluso en diferentes dispositivos: sin importar si el jugador está usando un teléfono o una TV, el juego debería poder extraer su información de la misma cuenta de usuario.

También debes proporcionar una opción en la IU del juego para permitir que el jugador borre los datos almacenados de forma local y en la nube. Puedes implementar la opción en la pantalla Settings del juego. Para obtener información específica sobre la implementación de partidas guardadas con los servicios de Google Play, consulta Juegos guardados en Android.

Experiencia multijugador

Un juego que ofrece una experiencia multijugador debe permitir que al menos dos jugadores entren en una sala. Para obtener más información sobre los juegos multijugador en Android, consulta la documentación Multijugador en tiempo real y Multijugador por turnos en el sitio de desarrolladores de Android.

Salida

Proporciona un elemento de IU coherente y obvio que le permita al usuario salir del juego sin problemas. Debe ser posible acceder a este elemento con los botones de navegación del pad direccional. Haz esto en lugar de confiar en el botón de inicio para proporcionar una salida, ya que no es coherente ni confiable en diferentes controles.

Web

No habilites la navegación web en juegos para Android TV, ya que la plataforma no es compatible con navegadores web.

Nota: Puedes usar la clase WebView para acceder a servicios de redes sociales.

Redes

Los juegos con frecuencia necesitan un mayor ancho de banda para proporcionar un rendimiento óptimo, y muchos usuarios prefieren Ethernet en lugar de Wi-Fi para obtenerlo. Tu app debe buscar conexiones tanto Wi-Fi como Ethernet. Si tu app es solo para TV, no necesitas verificar el servicio 3G/LTE como lo harías con una app para dispositivos móviles.