¿Dónde está la mosca?

Introducción

Dos desarrolladores y un perro, un cuarto lleno de trastos, una buena dosis de ilusión y otra de incertidumbre y casi dos meses de desarrollo, publicamos nuestro primer juego (por ahora para Android): ¿Dónde está la mosca?. Un juego sencillo y sin grandes pretensiones, de tipo "casual" y apto para todos los públicos.

Antecedentes

Trata un tema que no distingue entre clases: la típica mosca y/o mosquito que te quita el sueño durante la noche rondándote la oreja hasta que decides encender las luces y acabar con el asunto. Y sin embargo nada más encenderlas y aún con los ojos entreabiertos la mosca deja de hacer ruido y desaparece misteriosamente.

Juego

Abres la aplicación, pulsas el botón de "Jugar" y comienza el juego. Debes mover el móvil a tu alrededor buscando donde el sonido del insecto se hace más intenso hasta que aparezca en la pantalla. En ese momento, y con un golpe seco hacia delante, agitas tu dispositivo como si fuera un matamoscas real y si lo haces bien aplastarás al bicho.

Tienes 50 segundos para aplastar a todos los bichos que puedas, estos pueden estar abajo, detrás, encima de ti... en cualquier lugar y no hay trampas, siguen trayectorias bien definidas.

Hay diferentes tipos de bichos, desde moscas comunes a moscas tsetse, y cada una tiene un valor en puntos y una dificultad diferente para acabar con ella. Con los puntos puedes comprar diferentes armas que te harán menos ardua la tarea, comprar tiempo adicional o incluso quitar el baner de publicidad (sin tener que pagar dinero de verdad).

        

Fundamentos físicos y Realidad aumentada

 La Realidad aumentada es una tecnología que se basa en "aumentar" la información que proporciona la realidad, con otros estímulos sensoriales como sonidos, imágenes... En este caso aprovechamos los acelerómetros y sensores magnéticos de los dispositivos para crear un sistema de referencia donde "volará" la mosca.

De esta forma podemos situar la mosca con unas coordenadas con unos ejes ortonormales apuntando al norte magnético y al centro de gravedad de la tierra (al norte y hacia abajo) y con centro en el dispositivo móvil. Estas coordenadas las transformamos a otro sistema de referencia con origen en el dispositivo móvil pero ya con los ejes coincidentes con la pantalla. Y a partir de estas coordenadas 3D, de la apertura focal de la cámara y del tamaño del insecto lo podemos transformar en un Sprite que por fin podemos pintar en pantalla.

Los insectos siguen trayectorias espirales (el propio logo de ITIOX sigue la formula de una espiral) con un factor de probabilidad para cambiar de dirección y velocidad según la fase del juego (cada vez vuelan más rápido).

Y al igual que en la realidad, los bichos sienten cierta atracción por la luz, así que la luminancia que capta la cámara también se tiene en cuenta, ¡pero esto es un truco del juego, por lo que no se puede decir más!

Desarrollo

Gráficos, sonidos, música y ¡a parte el código! Ha sido intenso y muy divertido al mismo tiempo.

Es un juego (o aplicación), que pese a no utilizar demasiados recursos (no consume ni el 10% que otros juegos hechos con motores gráficos y además apenas ocupa 5MB), sí que utiliza casi todos los sensores y cosas que tiene un dispositivo móvil moderno: acelerómetros, sensores magnéticos, cámara, GPS e internet (para los marcadores de google), OpenGL, audio...

También utiliza, después del fallecido Openfeint :'( , lo último de Google, que te permite tener marcadores en tiempo real, logros, etc y todo conectado a través de Google+ (ya no saben que hacer para que usemos Google+ :P) que está muy bien, aunque muy mal documentado, por lo que escribiré algún post sobre esta API en breve.

Conclusión

Un juego, aunque aparentemente simple, lleva su tiempo en completarse (optimizar gráficos, testear, depurar errores, testear, ajustar la dificultad, testear...).

Desarrollar una aplicación simple de entretenimiento con los mismos fundamentos no es muy difícil y en apenas un par de semanas habría estado lista. La diferencia está en convertirla en un juego. Y un juego según mi definición tiene la muchas de las siguientes características: "fácil de comenzar, difícil de dominar", marcadores ("hiscores/high scores"), logros, puntos, variantes de armas y/o monstruos, fases, tiempo, cierta estética y cuidado gráfico/audio...

Por nuestra parte y con el conocimiento de que es un juego muy modesto, nos lo hemos pasado muy bien al desarrollar nuestro primer videojuego. Y sin más dejamos a los usuarios tener la última palabra.