sábado, 7 de julio de 2012

Videojuegos en Android, para donde voy?

Si estás interesado en desarrollar un videojuego para Android, prepárate porque hay muchas cosas que necesitas conocer. Si ya tienes experiencia desarrollando aplicaciones para la plataforma Android, un recurso muy enfocado al desarrollo de un videojuego y que te resultará utilísimo es el siguiente: The Light Racer 3D Development Journal, explica el día a día del desarrollo de un videojuego desde el primer momento.
Programando una App de Android en 6 horas.
Para los que estan más verdes, explicaremos que las aplicaciones para Android se desarrollan en Java. Así que si ya tienes una base de Java, tu vida será mucho más fácil. De todas formas, otra opción que cada día es más viable, es tirar por frameworks multiplataformas, como el combo Phonegapp, Html5 y jquerymobile.
Pero bueno, por ahora nos basaremos en desarrollar una aplicación / juego como se ha hecho hasta ahora para android. Lo que necesitas es lo siguiente:

Obtener el SDK
El primer paso es descargarte el SDK (Software Development Kit) de la plataforma Android : Descargar Android SDK. El SDK contiene librerías, un emulador, herramientas y código de ejemplo. Y ya que te pones a descargar, sigue con lo siguiente:
  • Java SE Development Kit (JDK), si nunca antes habías desarrollado para Java y para que Eclipse funcione.
  • Eclipse, Eclipse IDE for Java Developers. Lo primero a instalar. Es tan sencillo como descomprimirlo en donde quieras colocarlo. El paquete incluye el plugin JDT.
  • ADT Plugin for Eclipse. Antes de instalar el ADT(Android Development Tools), has de instalar el SDK de Android.
En función de la versión de Android para la que queramos desarrollar, nos tendremos que descargar el SDK Target para la versión de Android que nos interese. Si tenemos el plugin de Eclipse instalado, esto es muy sencillo: desde Eclipse debemos acceder al menú “Window / Android SDK and AVD Manager“, y en la sección Available Packages seleccionar e instalar todos los paquetes deseados.
En la web de desarrolladores de Android, hay un buen manual que explica en detalle como instalar todo esto: Installing the SDK. Si te cuesta el inglés, en el foro del portal android.es hay un tutorial en español:
Como instalar el SDK de Android.

Segui la siguiente guía para completar la instalación y probarla con el típico ‘Hola mundo’: Entorno de desarrollo Android.

Aprender la arquitectura de una aplicación para Android

Es muy importante entender la arquitectura de una aplicación en Android, aunque al principio no vais a entender mucho, dadle un par de repasos para que se os vayan quedando los conceptos y el vocabulario. Si conseguís haceros una buena idea, vendrá perfecto para la hora de diseñar inicialmente vuestro juego / aplicación y evitar así problemas que sean dificiles de resolver posteriormente. Deberás entender las ‘Applications’, ‘Activities’, ‘Intents’ y como están relacionados entre ellos. ESto te debería llevar a comprender porqué tu juego ha de consistir en más de una ‘Activity’ y lo que esto significa a la hora de diseñar un juego que ofrezca una buena experiencia al usuario.
Enlaces para profundizar sobre lo hablado en esta sección:
Aprender el ciclo de vida de las ‘Activities’
El ciclo de vida de las ‘Activities’ es gestionado por el sistema operativo de Android. Tu ‘Activity’ será creada, pausada y destruida tal como dicta el sistema operativo. Manejar estos eventos correctamente y comprender como funcionan antes de empezar a diseñar tu videojuego te ahorrará dolores de cabeza posteriormente.

Main loop
Dependiendo de qué tipo de videojuego está haciendo, necesitarás o no un ‘Main Loop’. Si tu juego no depende del tiempo o solo responde a las acciones del jugador, puede que no necesites un ‘Main Loop’. Pero si estás programando un juego de acción, o cualquier tipo de juego que tenga animaciones, disparadores, timers, etc. seguramente necesitarás montar uno.
El ‘Main loop’ o bucle principal, de un juego simplemente es un bucle que actualiza los subsistemas del juego cada pocos milisegundos en un orden concreto. El orden de ejecución habitual de los subsistemas de un juego es el siguiente: State (Estado), Input (Entrada), AI (Inteligencia artificial), Physics (Físicas), Animation (Animaciones), Sound (Sonido) y Video.
Un ejemplo de bucle principal podría ser este:
public void run() {
while (isRunning) {
while (isPaused && isRunning) {
sleep(100);
}
update();
}
}
private void update() {
updateState();
updateInput();
updateAI();
updatePhysics();
updateAnimations();
updateSound();
updateVideo();
}
3D or 2D?
Antes de empezar un juego, has de decidir si vas a hacerlo en 3D o en 2D. La curva de aprendizaje de juegos 2D es mucho menor que la de juegos en 3D. Además que necesitarás modelar con 3D Studio o Maya. Si estás aprendiendo, esto es algo a considerar seriamente.

Desarrolla métodos de mucha calidad y simples
Trata de modularizar en lo posible el código de tu aplicación o juego. Cada método debería resolver una tarea muy específica, así además te será más sencillo controlar y debugar los errores que en un programa monolítico de miles de líneas.

Eficiencia
El mayor problema que nos encontramos al desarrollar un videojuego es el del rendimiento del mismo. El juego debe ir suave y responder rápidamente al usuario, sinó estaremos a 3 segundos de que el usuario desisntale nuestro juego.

Comentarios finales
Si querées continuar a partir de aquí, os recomiendo leer el artículo en inglés en el que me he basado para crear este: Getting started in Android Game Development. A continuación una guía completísima del mismo autor que explica desde el día cero, como ha ido desarrollando un juego para Android: The Light Racer 3D Development Journal.

No hay comentarios:

Publicar un comentario