Desarrollo móvil multiplataforma
 

Juego Color Shot para iPhone

Color Shot ha sido mi último proyecto finalizado, un juego desarrollado para iPhone e iPod touch basado en un clásico de los 90 llamado Zoop. Con él que quiero concluir la enumeración de mis proyectos personales finalizados con éxito.

Como he comentado en alguna ocasión el desarrollo de videojuegos siempre me ha apasionado, especialmente en mis inicios en la informática. Por aquella época era posible que una única persona o un pequeño grupo de personas fuese capaz de publicar un juego. Siempre soñé con publicar mi propio juego, pero desgraciadamente nunca le he podido dedicar muchos recursos a este campo, y pude ver cómo el sector se especializaba tanto que hacía casi imposible poder hacer algo decente con pocos recursos.

La llegada de las nuevas plataformas móviles iOS y Android supusieron una nueva revolución en el sector. De pronto volvía a ser posible que una única persona o un pequeño grupo de personas pudiera crear un videojuego y pudiera venderlo con éxito. De hecho, el escenario era mucho mejor que el que había en los años  80 o 90, pues gracias a las tiendas de aplicaciones se te ofrecía hasta el canal de distribución.

Vi claro que era mi nueva oportunidad para subirme a un tren que ya se me había escapado una vez, y me propuse desarrollar un videojuego para alguna de estas plataformas. Aún así me costó encontrar tiempo y no pude empezar hasta el año pasado.

Antes de lanzarme a la piscina, tuve que tomar algunas decisiones:

  1. Programaría mi primer juego para iOS, pues la plataforma era mucho más estable que Android y la segmentación de dispositivos era mucho menor. Además, la App Store superaba al Android Market en volumen de ventas y promedio de ganancias.
  2. Aunque tenía varias ideas a desarrollar, debería empezar por una versión de algún juego simple. Tengo algo de creatividad, pero un juego diseñado desde cero era mucho más ambicioso que coger una idea ya existente y adaptarla. Además, dicho juego debería ser algo simple que no implicase demasiado arte gráfico, y que fuese en 2D.
  3. Aparte de que nunca me ha gustado reinventar la rueda, nunca he tenido experiencia suficiente en programar videojuegos, así que debería apoyarme en algún framework de desarrollo que me ofreciera un marco de trabajo cómodo y que no requiriese conocer técnicas de programación de videojuegos de muy bajo nivel. Ya habrá tiempo de indagar en dichas técnicas.

Para el primer punto, en septiembre del año pasado me compré un MacBook Pro y me descargué el XCode con el SDK de iPhone. Todavía no tenía un iPhone pero me daba igual, pues tampoco tenía cuenta de desarrollador en Apple, así que tampoco podría probar los progresos en un terminal. Como paso previo también me puse a aprender Objective-C utilizando el libro El lenguaje Objective-C para programadores C++ y Java, muy bueno y gratuito.

Para el segundo punto, aunque barajé varias posibilidades, tenía más que claro el juego que debería intentar desarrollar. Zoop fue un juego que me gustó muchísimo cuando salió, y al que he dedicado muchas horas de juego. Las reglas eran sencillas, los gráficos eran muy básicos y no existía versión para iPhone. Además, no sería una copia idéntica del juego porque tendría que adaptarlo para la versión táctil.

Por último, ya que tenía claro qué tipo de juego quería desarrollar y qué tipo de plataforma iba a utilizar, busqué una librería o framework apropiado. Estuve barajando varios framework, algunos 2D y otros 3D, pero ganó por goleada Cocos 2D. Ya había bastantes juegos publicados con esa librería y algunos habían llegado incluso al top ten de ventas en la App Store, lo cual demostraba su madurez. La comunidad de desarrolladores es bastante amplia y cuenta con un foro excepcional. El principal problema que tenía fue que no existía mucha documentación disponible de forma gratuita. Este punto lo pude solucionar con la web Learn & Master Cocos2D Game Development, donde aparte de buenos artículos pude descubrir el libro que el autor tiene  publicado llamado Learn iPhone and iPad cocos2D Game Development. Este sí que tuve que comprarlo, no es gratuito.

Una vez aprendido un poco de Objective-C, y tras haber leído la mayoría de capítulos del libro sobre Cocos 2D, en enero de este año pude empezar el desarrollo de Color Shot. Empecé poco a poco y sin agobiarme, pero intentando encontrar la constancia necesaria para que el proyecto no quedara parado. Desarrollar un proyecto personal por voluntad propia significa quitar horas a tu ocio, a tu familia y muchas veces a tu sueño, pero como suelen decir palos con gusto no duelen.

Fue una sorpresa ver lo cómodo que me encontraba con el lenguaje, el entorno y la librería. Cada vez que implementaba una nueva funcionalidad me provocaba ese estado de excitación que hacía tiempo que no sentía, como cuando empezabas a programar y veías cómo conseguías que el ordenador hiciera por primera vez lo que tú querías que hiciera, como cuando ves que realmente estás aprendiendo cosas que nunca habías hecho antes.

También pude ir bastante rápido porque las mayoría de decisiones a nivel de diseño las cogía del juego original, si bien tuve que adaptar completamente la forma de disparar. Por otra parte los gráficos no eran complicados, pero tuve bastantes problemas para conseguir un aspecto visual decente debido a mis limitaciones como diseñador gráfico. Aún así también disfruté bastante creando cada uno de los elementos gráficos del juego.

Tras 7 meses de trabajo, pude obtener la versión definitiva de la aplicación, y el día 3 de Agosto de 2011 se hizo realidad mi pequeño sueño de infancia: publicar oficialmente un juego.

Es verdad que hasta el día de hoy el juego no ha conseguido desbancar a Angry Birds, pero independientemente del éxito que tenga con este juego he conseguido marcar un hito en mi vida muy importante para mí, y ahora mismo es lo que más valor tiene. He comprobado que el desarrollo de videojuegos me gusta tanto como imaginaba, y gracias a todo lo que he aprendido con la creación de este juego podré afrontar futuros proyectos que ya tengo en mente. Sigo viendo complicado el poder dedicarse a esta actividad de forma exclusiva, pero me conformo con poder disfrutar en cualquier proyecto futuro lo que he disfrutado desarrollando este.

Ahora mismo estoy planteándome hacer una versión para Android, para lo cual utilizaré la librería Cocos2D-X, que es una versión de la librería original pero desarrollada en C++ y pensada para hacer juegos multiplataforma. Ya contaré cómo me va.

Toda la información sobre el juego la podéis ver en la página oficial del juego y en la App Store. Os dejo el vídeo promocional que colgué en YouTube.