martes, 29 de octubre de 2013

Postmortem: Mess – Puzzles

Hace solo unos meses que participé en este proyecto que supuso la segunda vez que mi nombre aparecería por el mercado de Android después de Pixfrogger. Sabía que no iba a ser el juego de mi vida, pero tenía que aprender y seguir avanzando en mis colaboraciones, así que cuando a través de un familiar, contactó conmigo el programador Juan Iñiguez para proponerme esta sencilla idea, no me lo pensé. Era poco trabajo, un proyecto rápido y fácilmente completable.

Comenzaron entonces los planes. El diseño no tenía mucha historia. Un puzle al que le falta una pieza para que se puedan ir deslizando las demás hasta colocarlas en su lugar. Un clásico que, en este caso, tendría nivel fácil (puzles de 4x3 piezas) y nivel difícil (5x4 piezas), guardado de la partida para continuar después y records personales de movimientos para completar el juego.


Manos a la obra

Mi trabajo estaba limitado debido a que el programador del juego tenía pensado usar fotografías libres de derechos para las piezas que formarían los puzles. Así, aunque propuse varias veces usar dibujos ya hechos o crear alguna ilustración para el proyecto, se pensó que podía alargarse el desarrollo, por lo que prácticamente todo lo que tuve que hacer fue un logo, junto con los iconos y botones que se necesitaría para los menús. En este caso lo difícil fue hacer que todo fuera uniforme, así que, tras algunos bocetos, me adapté a unos colores, formas e ideas para conseguirlo. Una vez estuvo todo listo. Juan solo tenía que sustituir los gráficos temporales que el usó en su prototipo, por los definitivos que le iba enviando.



Límites

El juego está hecho para ser simple y terminarse rápido, por eso dejamos de incorporar muchas ideas como tablas de records, tiempos y otras posibilidades.

Programación

No participé en ella pero pude ver algunas cosas. No usó ningún motor, está hecho de cero y diseñado para añadir nuevas imágenes si tenía éxito. Una de las cosas complicadas en este aspecto fue hacer que las imágenes y botones se adaptaran al tamaño de la pantalla de cualquier dispositivo en el que fuera ejecutado. Además, el programador decidió tener las imágenes cortadas en trozos de forma previa, en lugar guardarlas enteras y cortarlas por programación. Le suponía menos quebradero de cabeza, aunque se podía haber ahorrado algo de tamaño del archivo final al no tener dichas imágenes repetidas en dos tamaños de corte (una para fácil y otra para difícil).

Monetización

Esto era básicamente lo que nos interesaba probar. A cuantas personas podíamos llegar y cómo se hacía para publicar y lograr ingresos con una aplicación gratis con publicidad. Dicha publicidad en forma de banner estaría estratégicamente situada para no molestar al jugador.

Pronto vimos que el juego era un fracaso, aunque esperado. No aportaba ninguna novedad que lo diferenciara de otros productos como para atraer descargas, (aunque esperábamos alguna más), pero nos sirvió para aprender cosas como que hay que elegir bien el nombre del proyecto y tener éxito los primeros días para situarlo visible en Google Play Store (Si no se pierde para siempre entre todas las demás aplicaciones). Yo supe desde ese momento que no iba a ser fácil conseguir ingresos para financiar proyectos mejores desde el mercado de Android, pero estaba dispuesto a intentarlo un poco más, aunque aun con mucho por aprender.

Testeo y fallos

Tras probarlo un tiempo solo detectamos alguna incompatibilidad con ciertos dispositivos (sobre todo tablets) que, por otro lado, ocurre siempre con Android y otro durante el juego que no menciono por que puede suponer una ventaja a la hora de conseguir records de movimientos para el jugador que lo descubra. Ningún error grave.

Resolución de los puzles

Nunca fui muy bueno con este tipo de juegos, pero he jugado tanto que he aprendido estrategias para resolver el reto. En mi caso me dedico a colocar las piezas de arriba a abajo, línea a línea. Así, trato de dejar el hueco libre que debe estar abajo a la derecha para el último.

Cuando colocas dos piezas (hablo del modo fácil, pero en el difícil es igual, solo que con mayor número de piezas) en una línea, debes desplazarlas a la derecha y dejar una debajo de la otra para hacer espacio a la pieza que completaría la línea. Con esto, puedes volver a recolocar las otras dos cuando esté la tercera en su sitio.



Lo peor es que a veces se plantea una situación complicada de resolver y es que las últimas piezas salgan cambiadas de sitio. En este caso hay que mover el resto de piezas tratando de no romper una línea que, después, con movimientos de “retorno”, se puedan recolocar en su sitio. Así con un poco de suerte se pueden poner bien esas últimas piezas, aunque a veces lo mejor es empezar de nuevo y ver si sale bien el puzle a la primera y sin ese tipo de inconvenientes por pura suerte.


Mess puzles es un juego sencillo con el que aprendí mucho sobre el mercado de Android y que me hizo poder seguir colaborando con gente en una época en que apenas tenía tiempo libre. Todo gracias a su simplicidad.

Aunque no va a ser la revolución de la industria, se trata de un juego entretenido para partidas cortas mientras esperas en la parada del bus o en la consulta del médico o el dentista (yo aun me pico un poco a veces, aunque ya he resuelto todos los puzles en todos los niveles).

Se puede descargar este juego en el siguiente enlace, espero que os entretenga un ratito:

https://play.google.com/store/apps/details?id=com.movidev.mess


viernes, 25 de octubre de 2013

Calidad artística VS potencia Gráfica

En estos días modernos en los cuales cualquier desarrollador o aspirante, tiene acceso a motores gráficos capaces de mover un montón de polígonos por la pantalla y, donde la industria muestra un poderío gráfico exagerado con modelos muy detallados, es común ver como se deja de lado algo verdaderamente importante dentro del mundo de los videojuegos. Y es que calidad artística es lo que hace realmente atractivo a la vista a un videojuego, lejos de la creencia de que el realismo solo se consigue con una mayor potencia gráfica.

He visto como jóvenes y no tan jóvenes que empezaban en el mundillo creían que por descargarse la última versión del motor más popular dentro de la industria del videojuego iban a crear el próximo gran éxito que vendería millones de copias. Cuando las cosas no salían como esperaban, echaban la culpa a cualquier otro factor que no fuera ellos mismos. Y es que no podía ser, según ellos, que aquel proyecto se viera mal cuando habían usado un superengine y texturas fotorealistas. ¿No será que no es esta la mejor idea?

Una fotografía sin tratar, aplicada como textura no resulta casi nunca tan realista y vistosa como esperamos. Siempre hay que adornarla o modificarla de alguna forma, encajarla con sus compañeras texturas que poblarán el resto del entorno y, sobre todo (y esto también se aplica a todo el juego), añadirles algo de interés.

La esencia de aprovechar la potencia gráfica que tengamos, sea poca o mucha, para mostrar unas imágenes bellas y/o atractivas para el usuario, está en dotarlas siempre de interés creatividad y uniformidad. Además, es en esos acabados especiales en los que distinguimos a un artista profesional de uno que no lo es.

Como ejemplo podemos pensar en un personaje: Si pensamos en el protagonista de nuestro juego y es un tipo sencillo, que va vestido con vaqueros y camisa y lleva un peinado normal, no va a destacar ni a causarnos ningún tipo de impresión. Además, en este caso seguro que tenemos la tentación de coger una foto de una textura vaquera, dejar la camisa en blanco (por que es blanca) y ya está. Este personaje que acabamos de inventar puede tener millones de polígonos y estar muy bien modelado, pero ¿Se verá realista? Y sobre todo ¿Tiene calidad artística? Es evidente que no. Y es que le falta trabajo creativo, personalidad y un largo etc.

Vamos a añadirle complementos que nos indiquen como es y le den vida, a cambiar esa vestimenta tan simple por algo que no vemos todos los días en la calle, un peinado chulo, tal vez unas gafas y algún objeto que siempre lleva consigo. Tendremos que trabajar bien las texturas y el modelado para que todo quede en su sitio y sea uniforme y, con todo esto, si que nos estaremos acercando a algo más realista e interesante.

Para ilustrar lo que quiero decir siempre me gusta usar como ejemplo la trilogía de juegos Metroid Prime de Retro Studios. Este juego hacia quedar mal a muchos con tecnología más novedosa, shaders más complejos, mayor número de polígonos, luces más avanzadas, etc. Su gran ventaja era sin duda su calidad artística. Y es que en aquellos tiempos donde las consolas de Nintendo empezaban a apostar por el control o el Gameplay en vez de más y mejores gráficos, Retro Studios supo destacar por su buen trabajo y el cuidado de cada detalle. Todo estaba pensado para que la inmersión del jugador en el entorno fuera absoluta y se sintiera dentro de la historia que nos estaban contando. Tenía una calidad artística grandísima que hacía sentir que de verdad recorrías una nave abandonada en el espacio o explorabas un desolado planeta que antes habitaba una sabia raza alienígena que supo combinar la tecnología y el respeto por la naturaleza.

En resumen, que no importa que tengas lo último para mostrar más polígonos y shaders más complejos con tu proyecto, si no que los entornos, historias y personajes que formen parte de él, sean tan atractivos e interesantes que de verdad inviten a la imaginación del usuario a jugar con ellos. Hay que trabajar los pequeños detalles, aunque puedan llevarte mucho tiempo de desarrollo.



domingo, 20 de octubre de 2013

Pruebas de gráficos

Normalmente cuando se nos ocurre un nuevo juego (al menos a mi me pasa) se nos aparece en nuestra mente una imagen del proyecto terminado, con sus acabados, sus mecánicas, etc. Es decir, todo funcionando, como si creáramos todo de forma automática en cuestión de segundos. Por desgracia si nos ponemos a hacer un recorrido mental completo por nuestra idea veremos que faltan cosas, no tenemos un mando o control del dispositivo final elegido para probar si las mecánicas funcionaran y son divertidas, y nos empezamos a plantear si ese aspecto gráfico sería el mejor. Comenzamos a darle vueltas a las ideas, a cambiar cosas, hasta que somos conscientes de que hemos llegado a la etapa en la que hay que probar.

Igual que a nivel de programación y mecánicas tenemos el prototipo, a nivel de gráficos se pueden hacer pruebas. ¿Qué nos conviene más? ¿Pixel art, 3D poligonal, prerenderizado, vectorial? A veces basta con ver unas capturas de otro título y decir “Quiero que mi juego luzca como este”, pero otras tendremos que ver pequeños ejemplos de cómo podría lucir nuestra idea y elegir la que nos convenga. Y que quede claro que ya no hablamos de concepts o bocetos. Se supone que esa parte ya está superada y estamos pensando en el acabado que queremos para nuestro proyecto.

Las pruebas que hagamos no necesitan estar entre lo conocido. Se puede experimentar con distintos tipos de arte para ser innovadores. Pueden darse casos en que todos los gráficos se hagan con lápiz y papel, en modo sombras, con acuarelas, etc.



¿Tenéis ya todas las pruebas? Llega el momento de elegir el aspecto deseado. Conviene decir en esta parte que no hay que fiarse del gusto personal, también hay que fijarse en lo que está funcionando dentro de la plataforma a la que nos dirigiremos con el juego y el público objetivo. Por ejemplo en mi caso, aunque soy un enamorado del pixel, soy consciente de que no siempre el Pixel art es la mejor opción. Esto también se puede aplicar al número de polígonos en el caso de los juegos 3D. Un elevado número de triángulos junto con texturas fotorealistas no son siempre la respuesta. Tiene que haber variedad de juegos. No los hagamos todos iguales.

jueves, 17 de octubre de 2013

Tiles: Para crear escenarios

Los tiles o “baldosas”, son algo así como trozos que se repetirán una y otra vez para formar un escenario o parte de él. Normalmente son cuadrados (o cúbicos si son en 3D), para simplificar su colocación y manejo por parte de los programadores, sin embargo, ya hace tiempo que se hacen tiles de muy diversas formas.

Para crear tiles la clave está en pensar que materiales o partes del escenario debemos cubrir. Por ejemplo podemos tener un tile de agua, otro de tierra, y los que necesitamos para el paso intermedio de tierra a agua. Además, es imprescindible que las baldosas que creemos se puedan repetir sin que se aprecien cortes y a ser posible, que no se note demasiado la ya mencionada repetición.

Gracias a este tipo de elementos propios de un videojuego, podemos conseguir acelerar enormemente el proceso, tanto a nivel de grafismo, como a nivel de programación, pero lo más importante es que nuestro juego ganará en rendimiento. ¿Por qué? Si necesitamos un mapa gigante de 50000 pixels por 50000 pixels, el dispositivo encargado de mover semejante imagen tendrá mucho trabajo (y el grafista que tiene que pintarla ni os cuento), pero si recurrimos a los tiles, podemos crear nuestro escenario pintando solo las partes que aparecerán en pantalla, por lo que nuestra imagen de 50000 pixels se irá “dibujando” en tiempo real solo con las zonas que se necesiten.

Prácticamente todos los juegos que se creaban en los 80-90 recurrían al sistema de tiles y en los años posteriores hasta hoy, poco ha cambiado. Los editores de niveles que se usaban para colocar las baldosas cuadradas son, en nuestros días, complejos editores de niveles 3D o motores para gestionar toda la geometría del nivel. La base (una rejilla con la que orientarse y ajustarse a las medidas y posiciones deseadas) sigue permaneciendo.

Si hablamos de programación, este sistema permite cosas como la generación de niveles de forma aleatoria por código, la búsqueda de caminos para los personajes y enemigos que caminarán por el escenario o la posibilidad de saber sobre que superficie se encuentra caminando el protagonista.

A continuación algunos ejemplos de tiles y su aplicación en algunos proyectos en los que participé.


  

 

sábado, 12 de octubre de 2013

Evaluar la complejidad de nuestro próximo proyecto

Ahora que acabé Memory GCards, un juego completo, en este caso para Android, no hago más que dudar entre varias ideas para ponerme en marcha con el próximo. Dado que no tengo una empresa con un montón de grafistas, músicos, guionistas y programadores, tengo que pensar bien cuál será mi elección en función de lo que me costará desarrollarla, y hablo tanto a nivel de esfuerzo, como a nivel de tiempo. Así, un terminar un proyecto puede ser más o menos complejo dependiendo de muchos factores:

1. Según su género

A nivel general, unos géneros de videojuegos son más costosos o largos de desarrollar que otros, dependiendo eso si, de cuanto queramos complicarnos. Por ejemplo, es más fácil crear un juego de puzle que un RPG o un plataformas. Esto es debido a una serie de cosas que iremos viendo en otros puntos de este post.


2. 2D o 3D

Añadir una dimensión a la ecuación, alargará generalmente el tiempo que tardemos en terminar nuestro proyecto, y no me refiero necesariamente a dimensiones en las que se pueda mover el usuario dentro del juego, también lo digo para los casos en que la parte gráfica se elabore con un software 3D. El porqué de esto es bien sencillo. Un gráfico 2D, generalmente se realiza en menor tiempo (aunque dependerá de la técnica que usemos), que otro 3D, por algo evidente: El 3D implica un modelado y un texturizado, lo que se puede considerar prácticamente el doble de trabajo, o incluso más si vamos a añadir texturas avanzadas y shaders como Normal o Specular Mapping.

3. Animaciones

En el caso de las animaciones la interpolación que se usa en el 3D, puede facilitarnos las cosas, así que podemos ganar aquí el tiempo que perdimos al elegir usar un grafismo basado en modelado y texturizado. Aunque antes comentaba que es más rápido dibujar un gráfico que modelarlo y pintar su textura, esto puede darse la vuelta si pensamos en dibujar 400 fotogramas de una animación, los cuales la interpolación, cámaras o puntos de vista que se manejan fácilmente en un software 3D nos ayudará a obtener rapidamente si ya tenemos el modelo hecho. Por otro lado, el que no existan animaciones o sean muy pocas, es sin duda lo más corto de cara al proceso de nuestro desarrollo.

Como ejemplo de juego sin animaciones está mi reciente Memory GCards, donde cualquier movimiento se realiza por programación, consiguiendo reducir bastante el trabajo gráfico.

También se pueden pensar otro tipo de juegos que no lleven animaciones o si llevan, sean muy pocas como los puzles, juegos de cartas, novelas visuales, etc.


4. Historia

Por supuesto que un guión complicado y largo, hará más difícil nuestra producción. Necesitaremos buscar fórmulas para contar la historia a los usuarios, proporcionarle los caminos que podrá elegir e incluso las secuencias, interactivas o no, que puedan ser requeridas, para que todo sea narrado y entendido perfectamente.Y eso es un trabajo extra.

5. Localizaciones

Una acción que se desarrolla dentro de un tablero de juego de unos pocos centímetros cuadrados nos llevará menos trabajo que la que ocurra en el entorno de una gran isla desierta. Además, esto es así en todos los niveles, ya sea sonido, programación, grafismo, etc. Un entorno más grande necesita que se inviertan más horas en él.

6. Reutilización

Empezar de cero es más costoso, eso es lógico. Si tenemos músicas, scripts programados o gráficos de proyectos anteriores que podamos usar en el nuevo, terminaremos mucho antes su desarrollo y nos ahorraremos esfuerzos, aunque sea en algún área concreta.

7. Lenguaje de programación o motor

Será siempre más sencillo para nosotros trabajar del mismo modo que en nuestro anterior título, que tener que aprender la sintaxis de un nuevo lenguaje o tratar con un motor en el que no hemos tenido un periodo de aprendizaje.

8. Detalles

Todos los pequeños detalles que se nos ocurran para hacer nuestro juego más interesante y profesional nos van a llevar un tiempo precioso que muchas veces no tenemos en cuenta.

Se nos puede ocurrir que la nave de nuestro matamarcianos emita destellos de luz al disparar y que tiemble toda la pantalla cuando se tira una bomba; o que al pasar al modo francotirador en nuestro First Person Shooter, aparezcan unos números que nos indiquen la precisión, hacia donde estamos apuntando, la cantidad de luz, etc. Como es lógico estas pequeñas cosas añaden más líneas de código, gráficos extra o animaciones que hay que crear, e incluso sonidos.

9. Complejidad gráfica

Elegir unos personajes y escenarios muy detallados va a requerir más trabajo para vuestros grafistas (o para vosotros). Si pensamos por ejemplo, en un personaje humano sin animaciones, cada paso que añadimos lo hará más complejo, empezando por darle color, luego sombras, luces, añadirle detalles, texturas, etc. Por supuesto este sacrificio merecerá la pena si buscamos un acabado más trabajado, realista o artístico.


10. IA

¿Hay aliados controlados por la máquina? ¿Los enemigos deben detectarnos, encontrar el camino más corto a un punto, abrir y cerrar puertas? Una IA más complicada significa más trabajo para el programador y puede que también para el animador y el grafista, lo que se traduce en más tiempo de desarrollo. 

Y Para finalizar el post, solo comentar que, teniendo en cuenta estos y otros factores, podemos pensar en qué tipo de proyecto queremos, cuantas personas trabajaremos en él y que tiempo nos va a llevar terminarlo para decidir entre algunas ideas que hayamos tenido.

¿Cuál será vuestro próximo proyecto? ¿Un puzle en 2D? ¿Un Matamarcianos 3D? Yo, aun no me he decidido entre 2 o 3 opciones… ¡Y cambio de idea cada día! Tendré que centrarme o me quedaré atascado.

domingo, 6 de octubre de 2013

Proyectos: Memory GCards Android

Hace algo así como un mes decidí empezar a desarrollar para Android, y es que, aunque ya vi publicados un par de proyectos en Google Play Store en los que he tenido participación de alguna u otra forma, no había publicado nada por mi cuenta por estar orientado a otras plataformas como Flash.

Mis dos anteriores apariciones en Google Play Store son:

Pixfrogger y Mess Puzzles

Pero ahora tocaba saber cómo funcionaba todo por mi cuenta, y para eso que mejor que un desarrollo corto, de un mes, aproximadamente, que me permitiera aprender lo básico sobre publicación, promoción, funcionamiento de la plataforma, etc. Empecé por tanto a portar el pequeño juego de memoria con parejas de cartas que tenía hecho en Flash ayudándome, eso sí, de Unity.

La idea de este juego ya expliqué que surgió de un cúmulo de cosas. Que estaba aprendiendo a dibujar chicas manga intentado también darles un toque más personal (por lo que tenía mucho trabajo gráfico hecho), que aprendí también como podía hacer un juego de parejas de cartas cuando intentaba conocer a fondo la programación en Action Script, y por último, que quise hacer un sutil homenaje a la historia narrada en el Manga y Anime de Welcome to NHK, donde el protagonista es un hikikomori que trabaja en el desarrollo de un juego de estilo muy japonés.

Con todo, me volqué en el desarrollo, adaptación y ampliación de la idea inicial de este juego partiendo de los documentos de diseño que tenía, añadiendo más retos, un nivel extra y algún que otro detalle que añadía interés y durabilidad al título. Por otro lado, eso sí, no podía olvidar el modo de sacar algún rendimiento económico con el que poder seguir creando proyectos nuevos, con un poco de suerte, cada vez más interesantes y de más envergadura. Tuve que integrar, por lo tanto, un sistema de publicidad que apareciera en sitios clave, tratando de evitar que molestara al usuario en el momento del gameplay.





Con este primer experimento realizaré una evaluación del funcionamiento de la plataforma Android y de cómo llegar al público para poder hacer más y más juegos en el futuro, que es lo que me encanta hacer. Y es que lo mejor de haber terminado un proyecto es empezar a planear el siguiente.

Vamos ahora con una descripción del juego:

Voltea dos cartas y si las chicas coinciden, encontraras una pareja. Trata de encontrarlas todas en el menor tiempo que puedas para superar los records y acceder a las imágenes de la galería o conseguir los retos que te harán completar el 100% del juego.
Ayúdate de los relojes que encontrarás y te darán tiempo extra y ten cuidado con los candados que bloquearán tus cartas temporalmente si fallas más de 5 veces.

A los que descargueis el juego para echar unas partidas, les agradezco el apoyo y espero que disfruteis de un rato de entretenimiento.

Memory GCards puede descargarse del Google Play Store desde el siguiente enlace:

https://play.google.com/store/apps/details?id=com.Perplex.GCards