Bueno en esta ocasión traemos un tema muy interesante, como crear o mas bién, como programar un juego para Android. Bien sabemos que recientemente los juegos en las diferentes plataformas mobiles ya sean tablets o smartphones se han estado haciendo muy populares, incluyendose en sistemas operativos como IOs, Android, Symbian o Blackberry OS. Nosotros estaremos hablando un poco mas enfocados al sistema Android.
Para dar una breve introducción hablemos un poco de lo que se necesita para crear un juego para Android y que opciones tenemos para hacerlo.
¿Que se necesita para programar un juego para android?
Para poder realizar un proyecto de este tipo se necesitan (en terminos de conocimientos) a grandes rasgos 2 cosas. Un cierto conocimiento de diseño gráfico, y un grado avanzado de conocimiento técnico. Hacer un juego no es una tarea fácil, y si es algo que se planea realizar por solamente 1 persona, no es imposible, si se puede hacer, pero requiere que el arquitecto del juego posea tanto habilidades de diseño(dependiendo del juego) y también un cierto grado de habilidades técnicas. Si tu ya posees habilidades de diseño no esta demás decirte que solo se es necesario para crear imágenes que luego serán implementadas por el programador para darle vida al juego, y es preferente que el formato de dichas imagenes se manejen en formatos como PNG que son muy amigables con Android. Así mismo para generar dichas imagenes se pueden usar alternativas tanto gratuitas(GIMP 2.0) o de paga (Photoshop, Corel Draw, Illustrator, Maya) para generar imágenes que puedan utilizarse en el juego, por lo pronto nos enfocaremos un poco mas en la parte técnica que se requiere para hacer un juego para Android.
Antes de continuar quiero especificar que los juegos están compuestos por los siguientes 4 elementos muy importantes.
- Gráficos : se refiere a las imagenes que utilizamos en un juego.
- Audio : musica de fondo, o sonidos del juego.
- Entradas(inputs) : entradas con las que interactua el usuario(botones, acelerometro, teclado, multitouch)
- Game Loop : El ciclo del proceso principal del juego actualizado cada cierto tiempo.
Nota: un juego completa consta de muchos mas elementos pero quiero incluir estos que son bastante esenciales para darnos una idea de que se trata todo esto.
¿Que tengo que saber para programar un juego?
Realmente para programar un juego se tiene que saber una variedad de cosas distintas. La primera si es que planeamos desarrollarlo para Android, es conocer el lenguaje base de programación para el entorno de desarrollo Android, es decir, hay que saber programar en Java. Lo segundo que tenemos que saber es implementar la lógica esencial para programar un videojuego, y para hacer esto tenemos que aprender un poco como funcionan la mayoría de los juegos.
Naturalmente un juego esta pensado como un programa cualquiera, con la diferencia que este tiene que prácticamente saber pensar por si mismo y consta de varias fases de desarrollo.
- Lo primero que tenemos que hacer es un diseño, a papel y a lapíz de cual sera nuestro juego, ya que si no tenemos idea de que vamos a hacer, no hay realmente ninguna forma de pensar en como lo vamos a programar, definir elementos como el personaje principal, los enemigos, e incluso las pantallas que tendrá el juego es una tarea muy importante antes de comenzar a programar.
- Posteriormente tenemos que implementar todo ese diseño en la aplicación. A diferencia de las aplicaciones normales de Android, un juego no suele ser un programa estático que espera que el usuario realice algún tipo de entrada para que el programa funcione, si no que el juego piensa por si mismo, el juego se esta “actualizando” constante y permanentemente, y puede tomar decisiones en base a nuestra actividad o inactividad. Al final lo vemos reflejado en los llamados “frames” que vemos al jugar un videojuego cualquiera.
- Para poder implementar esta lógica debemos construir un llamado Game Loop. Este no es mas que un ciclo, un proceso que se actualiza constantemente durante la ejecución del juego, y en el debemos hacer todos los calculos del juego, registro de interacciones del usuario, y generar una vista final para el jugador. Finalmente se tiene que implementar todos los componentes del juego, sean graficos, audio, e interacciones para obtener un buen juego.
Librerias y frameworks, ¿2d o 3d?
Algo que también hay que mencionar, obviamente tenemos que decidir si un juego va a ser 2d o 3d. De entrada menciono que juegos en 3d son extremadamente laboriosos y se es necesario utilizar librerias gráficas como OpenGL, que realmente son un dolor de cabeza, aunque si lo que queremos es desarrollar un juego sencillo, no hay necesidad de entrar a utilizar librerías avanzadas como Open GL. La verdad es que con el solo framework de Android, es decir, el SDK nativo, tenemos acceso a librerias que nos permitiran dibujar elementos gráficos en 2d, controlar todos los objetos que se encuentran en nuestra aplicación, y manejar todas las interacciones y eventos de programación que se presentan en un juego. Una vez que se este desarrollando, realmente vera que no se hacen uso de tantas librerias como se esperaba.
Nota: De hecho un juego muy exitoso llamado “Replica island” fue desarrollado completamente utilizando solo los recursos nativos del sdk de android, sin necesidad de entrar a utilizar aceleración de hardware para los gráficos(como seria con OpenGL).
En conclusión
Realmente hacer un juego es posible aunque laborioso, y si estas ansioso por comenzar con este tema te recomiendo un libro muy bueno que te ayudará a desarrollar tu primer juego en Android. El libro trata sobre desarrollo de juegos para Android y es del autor Mario Zechner.
Espero que este articulo te haya servido y que te motive para adentrarte al mundo del desarrollo de juegos para android(o almenos para el desarrollo de videojuegos).
No olvides dejar un comentario, y si te interesan algunos tutoriales de android basicos no olvides visitar mi canal de youtube(
http://youtube.com/xymind).