Cómo creamos SPACE INVADERS: World Defense, un juego de RA desarrollado por ARCore

SEP 05, 2023
Dereck Bridie Developer Relations Engineer ARCore
Bradford Lee Product Marketing Manager Augmented Reality

Para celebrar el 45º aniversario de “SPACE INVADERS”, colaboramos con TAITO, el desarrollador japonés del juego arcade original, y UNIT9 con el objetivo de lanzar “SPACE INVADERS: World Defense”, un juego inmersivo que aprovecha la tecnología más avanzada de realidad aumentada (RA) basada en la ubicación. Jugadores de todo el mundo pueden salir a explorar sus vecindarios locales, defender la Tierra de los invasores espaciales virtuales que surgen de estructuras cercanas y ganar puntos por derrotarlos, todo con realidad aumentada.

El juego funciona con nuestra tecnología ARCore más reciente: la API geoespacial, la API de Streetscape Geometry y Geospatial Creator. Tenemos muchas ganas de mostrarte cómo se desarrolló el juego y cómo usamos nuestras funciones y herramientas más recientes para diseñar el primer juego de RA global y procedimental de su tipo.

API geoespacial: convierte el mundo en un área de juego

Con la API geoespacial puedes adjuntar contenido de forma remota a cualquier área mapeada por Google Street View y crear experiencias inmersivas más ricas y sólidas vinculadas a ubicaciones del mundo real a escala global. SPACE INVADERS: World Defense está disponible en más de 100 países en áreas con alta cobertura del Servicio de Posicionamiento Visual (VPS) en Street View, lo que permite adaptar el juego a entornos urbanos concurridos, así como a ciudades y pueblos más pequeños.

Para los jugadores que viven en áreas sin cobertura de VPS, hace poco actualizamos el juego para incluir el nuevo Modo Interior, que te permite defender la Tierra de los Invasores Espaciales en cualquier entorno o ubicación, ya sea en interiores o exteriores.

El nuevo Modo Interior de Space Invaders lleva el juego inmersivo a cualquier entorno de interiores de edificios

Creación del flujo de usuarios inicial

Con la API geoespacial de ARCore se utilizan imágenes de cámara del dispositivo del usuario para buscar puntos de referencia y se comparan con imágenes de Google Street View para posicionar con precisión el dispositivo en el espacio del mundo real.

La API geoespacial se basa en el VPS, que cuenta con decenas de miles de millones de imágenes en Street View para que los desarrolladores puedan crear experiencias ancladas en el mundo real de forma remota en más de 100 países

El usuario debe sostener el teléfono y desplazarse por el área de manera tal que se recopilen suficientes datos para posicionar con precisión su ubicación. Para ello, empleamos una técnica inteligente a fin de que los usuarios escaneen el área, lo que requiere que sigan la nave espacial en el campo visual de la cámara.

Para empezar, sigue la nave espacial para escanear tu entorno local

Con este flujo de usuarios, verificamos continuamente si la API geoespacial recopiló suficientes datos para una experiencia de alta calidad:

if (earthManager.EarthTrackingState == TrackingState.Tracking)
{
        var yawAcc = earthManager.CameraGeospatialPose.OrientationYawAccuracy;
        var horiAcc = earthManager.CameraGeospatialPose.HorizontalAccuracy;
 
        bool yawIsAccurate = yawAcc <= 5;
        bool horizontalIsAccurate = horiAcc <= 10;
 
	return yawIsAccurate && horizontalIsAccurate;
}

Transformación del entorno en el área de juego

Tras escanear el área circundante, en el juego se utilizan datos de trama de la API de Streetscape Geometry para lograr mediante algoritmos que cada área de juego diferente sea una experiencia única. Cada ubicación del mundo real tiene su propia topografía y diseño, lo que afecta el juego de una manera única.

Este varía según la ubicación, desde pueblos de la República Checa (izquierda) hasta ciudades en Nueva York (derecha).

En el juego, los SPACE INVADERS pueden surgir de los edificios, por lo que construimos casos de prueba utilizando la geometría de los edificios, que se obtiene de diferentes partes del mundo. Esto garantiza que el juego funcione de manera óptima en diversos entornos, desde pueblos pequeños hasta ciudades bulliciosas.

Una vista de cómo el algoritmo colocaría portales en el mundo real

Entramos a la dimensión de los invasores

Gracias a nuestros estudios de investigación, aprendimos que puede ser agotador para los usuarios mantener las manos en alto durante un período prolongado en una experiencia de realidad aumentada. Este dato influyó en el desarrollo del juego: creamos la dimensión de los invasores para dar a los jugadores la oportunidad de relajar el brazo con el que sostienen su teléfono y aumentar la comodidad.

Nuestro momento favorito que realmente demuestra el poder de la API geoespacial es la transición entre la RA del mundo real y las dimensiones 3D generadas virtualmente.

Transición del juego de la RA del mundo real a la dimensión 3D

Este efecto se logra combinando la transmisión de la cámara con el sombreador de entorno virtual que renderiza los edificios y el terreno en un estilo de estructura de malla distintivo.

La dimensión de los invasores aparece alrededor del jugador en el editor de Unity, lo que produce una transición perfecta entre los dos modos

Una vez que el jugador ingresa a la dimensión de los invasores, la nave espacial del jugador vuela por un camino generado algorítmicamente en su vecindario local. Esto se hace creando una imagen de profundidad del entorno del usuario desde una cámara elevada. En esta imagen, el canal rojo representa los edificios y el canal azul representa el espacio que se podría utilizar para la trayectoria de vuelo. Esta imagen se utiliza para generar una cuadrícula con los puntos que debe seguir la ruta y se utiliza un algoritmo de búsqueda A* para resolver una ruta que cruza todos los puntos.

Por último, la ruta A-Star generada se procesa posteriormente para suavizar posibles giros bruscos, colisiones y jitter.

Para suavizar el camino de la nave espacial, se elimina el jitter haciendo un muestreo del camino en un intervalo establecido de nodos. Luego, determinamos si hay giros bruscos en un camino analizando los ángulos a lo largo del camino. Si hay un giro brusco, introducimos dos puntos adicionales para completarlo. Por último, analizamos si este camino suavizado chocaría con algún obstáculo y lo ajustamos para que vuele sobre ellos si se detectan.

8a-Depth-Composite-8B-3D-Path.png
Una vista del mapa de profundidad y una ruta de ejemplo generada en la dimensión de los invasores

Creación de una experiencia de juego global

Una conclusión clave que obtuvimos de la creación del juego fue que por la complejidad de la generación contextual era necesario realizar pruebas en todo el mundo. Con Unity, incorporamos múltiples entornos en casos de prueba, lo que nos permitió iterar y validar rápidamente los cambios en estos algoritmos. Esto nos dio confianza para implementar el juego a nivel mundial.

Visualización de SPACE INVADERS con Geospatial Creator

Para validar cómo el contenido virtual, como Space Invaders, aparecería junto a puntos de referencia específicos dentro de Tokio en Unity utilizamos Geospatial Creator, que funciona con ARCore y recuadros 3D fotorrealistas de Google Maps Platform.

Con los recuadros 3D fotorrealistas, pudimos visualizar a los invasores en ubicaciones específicas, incluida la Torre de Tokio, en Japón

Próximos lanzamientos y actualizaciones

Desde el lanzamiento del juego, tomamos nota de los comentarios de nuestros jugadores y actualizamos y mejoramos activamente la experiencia de juego.

  • Agregamos un nuevo modo de juego, el Modo Interior, que permite disfrutar del juego a todos los jugadores sin cobertura de VPS o a quienes no quieran usar el modo de RA.
  • A fin de alentar a los usuarios a jugar en RA, las puntuaciones se volvieron a equilibrar para recompensar más a los jugadores que juegan en exteriores que a los que juegan en interiores.

Descarga el juego en Android o iOS hoy mismo, únete a las filas de una fuerza de élite defensora de la Tierra y compite en tu vecindario para obtener la puntuación más alta. Si quieres conocer las últimas actualizaciones del juego, síguenos en Twitter (@GoogleARVR) para saber cómo estamos mejorando el juego. Además, visita nuestros sitios web de ARCore y Geospatial Creator para empezar a crear con la tecnología de RA de Google.