Dev++

18 de junio, 2014
Dev Lavde: Especial — Apuntes sobre realidad aumentada
Colaboración de Juan Peralta – Director de Distance Studio y profesor doctorado en la Universidad Autónoma de Barcelona.

Siempre me han encantado los juegos de mesa «frikis», como Warhammer o Hero Quest. El problema es que había que invertir mucho dinero y tiempo para montar una partida. Además, luego también hacían falta los manuales, que venían con sus respectivas discusiones del estilo de «si una criatura está dentro de mi rango de ataque o no» o «si se aplica este bonus o el otro». Los videojuegos consiguieron sobrepasar esta barrera y agilizar el proceso; son capaces de realizar todo estos cálculos al momento y quitan la parte más tediosa de los juegos clásicos. El problema es que jugar en una pantalla ya no es lo mismo, las facilidades que se nos brindan están muy bien pero se pierde la magia de tener a tu pequeño ejército delante.

Con el tiempo se llegó a desarrollar la realidad aumentada (RA en adelante), una tecnología que consiste en recoger información del mundo real y añadirle «capas de información» generadas por el móvil. Los primeros juegos que hacían uso de la RA te mostraban las imágenes recogidas por la cámara del móvil y luego les añadía enemigos a los que teníamos que disparar; de esta forma daba la impresión de que tenías a los enemigos justo delante, en el salón de tu casa, en la calle o donde estuvieses. Estos proyectos se basan en la detección de esquinas, «Blob», bordes y umbral para reconocer patrones en las imágenes reales sobre los que se puedan dibujar los modelos 3D.

Existe otro tipo de RA que hace uso de un marcador. Un marcador es una imagen o patrón que el juego es capaz de reconocer, además también procesa los cambios de ángulo o posición. Si imprimiésemos un marcador en una hoja de papel podríamos hacer una aplicación que lo reconociese y creara el modelo de una ciudad sobre dicho patrón: al mover el móvil, o el marcador, el modelo también se movería.

Estos avances abren las puertas a hacer juegos de mesa sin gastos de fabricación: podríamos hacer un Monopoly y dar a los compradores únicamente un folio con nuestro patrón, en lugar de dinero, tablero y piezas. Los jugadores se descargarían la aplicación correspondiente y todo el juego aparecería sobre el patrón al mirarlo con el móvil. Sería como tener acceso a una biblioteca instantánea de juegos de mesa para jugar con tus amigos en la mesa del salón. Con semejante tecnología se nos ocurrió hacer un proyecto propio, inspirado en Space Hulk que hiciese uso de la RA. Pero claro, tener la idea es fácil, luego toca trabajar. Nosotros empezamos informándonos todo lo que pudimos sobre la parte técnica y llevamos a cabo algunos ensayos.

A la hora de programar, existen muchas librerías para juegos de RA que usen un marcador. Nosotros estudiamos la compatibilidad con motores de juego, que fuera exportable a diferentes plataformas y, sobre todo, que dispusiese de mucha documentación para aprender. El motor elegido para el desarrollo del juego fue Unity. Existe mucha documentación en la red además de vídeo tutoriales sobre el uso de diferentes librerías de RA bajo Unity, con lo que los lectores no tendrán problema para ponerse manos a la obra.

Para empezar a trabajar, yo siempre recomiendo aprender al detalle cómo funcionan las librerías; no hay nada mejor que desarrollar un proyecto básico desde cero y siguiendo las tutoriales. Así cuando te enfrentes a tu objetivo real tendrás ya una buena base con la tecnología que vas a usar. Todos aquellos usuarios que ya tienen conocimientos de Unity saben que es un motor fácil de aprender a utilizar y no tendrás demasiados problemas; eso sí, hay que tener en cuenta que los resultados que se obtienen no serán comparables a los de CRY Engine o Unreal.

Cuando empiezas a tratar con realidad aumentada en Unity enseguida te das cuenta de que no hay mucha diferencia con un proyecto normal en 3D. El marcador sitúa en el mundo real los modelos y tú te encargas de hacer que interactúen. Realizar un primer proyecto en el que se asocie un marcador a un modelo, compilarlo, ejecutarlo y observar el resultado con tu dispositivo móvil no lleva más de tres minutos. Jugar con diferentes modelos, trabajar con ellos o dotarlos de interacción para que ejecuten las reglas del juego ya es otro cantar. Existen muchos frameworks de RA compatibles con Unity, como por ejemplo: NyARtoolkit, PointCloud, Armedia, ARPA, Catchoom, D’Fusion, IN2AR, Metaio SDK u Obvious Engine entre otros. En cuanto al uso de RA en las distintas plataformas móviles, podemos decir que prácticamente todas las librerías son compatibles con Android, una gran mayoría con IOS y, hasta donde llegan mis conocimientos, ninguna para Windows Phone (aunque varias de ellas ya están tratando de solucionarlo).

Nuestro proyecto, Outsiders, lleva toda la magia del juego con miniaturas a la pantalla de tu móvil, pero te quita los problemas de gastar mucho dinero y de perder horas haciendo todos los cálculos. Al ser una tecnología tan avanzada y fluida, en cualquier momento puedes acercar el móvil al tablero para examinar un personaje o un escenario en detalle, es casi como tenerlos delante. Claro, no todo es tecnología, ahora estamos puliendo la jugabilidad, tomando como referencia al ya citado Space Hulk,pero también a títulos que nos encantan como Fire Emblem o X-COM. Estamos trabajando muy duro para que podáis retar a vuestros amigos y ver cómo vuestros personajes cobran vida y luchan sobre la mesa de vuestra casa. Tenemos un gran proyecto entre manos y un equipo con experiencia de sobra para llevarlo a cabo, permaneced atentos porque en Septiembre sacaremos una demo y luego iremos a por un crowdfunding. ¡Seguidnos en Twitter para conocer nuestras novedades!

Acerca de Dev++


Mi nombre es Dev++, pues somos muchos. indie-o-rama da cobijo a una legión de talentos del desarrollo que colaboran con su experiencia. Si no está hecho, puede hacerse. Si lo está, puede explicarse. Protagoniza el próximo Dev++ clicando aquí.

No hay comentarios