¿Qué herramientas puedo utilizar?
El framework de android es bastante
extenso y generalmente puede resultar confuso. Lo positivo de esto es
que hay una API para cualquier cosa que se nos ocurra, además podemos
usar una serie de SDK’s que están potenciadas para la creación de
juegos.
Lo primero que tenemos que tener
en cuenta para la creación del juego es que si este va a ser 2D o 3D,
conociendo esto ya recein podemos decidir que SDK es el que nos
convendrá usar para que nos brinde los mejores resultados.
Para desarrollar juegos en
android existe un conjunto de herramientas y entonrnos de desarrollo que
podemos utilizar para crear juegos en Andorid. Entre los mas conocidos o
mas populares están:
Corona SDK: Lo
que destaca de este SDK es con la facilidad y rapidez con las que se
pueden empezar a crear juegos, dentro de lo más interesante de este SDK
es que tiene un motor de física muy avanzado que permite crear juegos
con tan sólo escribir unas pocas líneas de código. Además nos permitirá
crear aplicaciones rápidas, poderosas y multiplataforma que tienen
acceso a API’s de otros frameworks que nos permitirán manipular
componentes de hardware como la cámara, GPS y acelerómetro.
Entre sus características principales cuenta con:
Integración automática con OpenGL-ES: No habrá necesidad de llamar a un sin número de clases y funciones para crear simples manipulaciones de la pantalla.
Desarrollo Multiplataforma: Corona nos permite crear aplicaciones tanto para iOS (iPhone, iPad) como para Android.
Rendimiento: Corona está
optimizado para hacer uso de las características de hardware de
aceleración, dando como resultado un alto rendimiento en juegos y
aplicaciones.
Características del dispositivo: Posee controles nativos para el acceso al dispositivo y hardware como cámara, acelerómetro, GPS, etc.
Fácil de aprender: Corona utiliza el lenguaje de programación Lua, que es potente y fácil de aprender.
Lo interesante de Corona SDK
es que podemos utilizarlo totalmente gratis. Basta con llenar un
formulario y obtendremos una versión trial que contiene todas las
funcionalidades y que podemos usar por tiempo ilimitado para desarrollar
nuestros videojuegos. Pero si queremos darle uso comercial, ahí es
cuando tendremos que comprar la licencia Indie que cuesta $199 dólares
al año y que nos permite desarrollar únicamente para iPhone o para
Android y $349 al año en la versión que nos permite trabajar con ambas
plataformas.
Dejo un video para que vean lo fácil que es desarrollar con este SDK.
Libgdx:
Este es un framework multiplataforma de desarrollo de juegos para
Windows, Linux y Android. Está escrito en Java con una mezcla de C/C++
para dar soporte y rendimiento a tareas relacionadas con el uso de la
física y procesamiento de audio. De esta forma, sólo hay que preocuparse
por la parte de codificar en lenguaje Java mientras el framework se
encarga de empaquetar todo el código nativo de la aplicacion.
Otra de las cosas interesantes de
Libgdx es que permite escribir, probar y depurar la aplicación en el PC
y utilizar el mismo código para Android. Esto se debe a que uno de los
objetivos principales de este framework es brindar una arquitectura
unificada para trabajar, garantizando el mismo comportamiento en todas
las plataformas para las cuáles se ha creado el juego. Pero aun con
esto, hay ciertas cosas que se deben tomar en cuenta cuando se está
trabajando un mismo juego para PC y para Android, ya que el rendimiento
puede ser muy bueno en PC y muy malo en Android.
Dentro de las herramientas que nos brinda Libgdx son las siguientes:
Un framework: Que nos permitirá manejar el ciclo de vida (creación, pausa, reanudación y destrucción) de nuestra aplicación.
Un módulo de gráficos: Que nos proporciona una forma de dibujar objetos en la pantalla.
Un módulo de audio: Para reproducir música y efectos de audio.
Un módulo de entrada: Para recibir toda la información del usuario proveniente del mouse, teclado, pantalla táctil, acelerómetro, etc.
Un módulo de I/O: Para leer y escribir datos como texturas, mapas o archivos de configuración.
AndEngine: Este
SDK es que es de código abierto y que en sí, se trata de una
implementación 2D de OpenGL para Android por lo que se utilizara
puramente el lengaue Java, a diferencia de los motores Unity3D y Shiva3D
con los que podíamos trabajar con lenguajes como C#, Python, o incluso
Javascript.
En AndEngine se usa una terminología propia, explico aquí los conceptos más básicos:
BaseGameActivity:
El BaseGameActivity es la raiz del juego, que contiene el motor y crea
la vista donde se va a dibujar todo. Hay siempre exactamente un solo
Engine por cada BaseGameActivity.
Engine: El Engine es el motor
interno del juego, se encarga de ir dibujando en pantalla y actualizando
objetos en la escena, que contiene todo el contenido que tu juego
lleva. Normalmente hay una escena por por Engine, a menos que vayas a
usar un SplitScreenEngines.
IResolutionPolicy: Una
implementacion de IResolutionPolicy interface es parte del
EngineOptions. Te hace abstraerte de la resolución del terminal, tú
trabajas para una resolución y el AndEngine se encarga del resto.
Camera: Un objeto Camera define
el rectangulo visible actualmente de la escena actual, no tiene porqué
ser la escena completa. Normalmente hay una cámara por escena. Hay
subclases específicas que permiten hacer zoom y mover la cámara
suavemente.
Scene: La clase Scene es el
contenedor para todos los objetos que se van a dibujar en la escena. Una
escena puede tener Layers, que son capas para ordenar objetos. Hay
subclases de la Scene como CameraScene/HUD/MenuScene que tienen
comportamientos específicos.
Entity: Una entidad es un objeto
que puede ser dibujado, como Imagenes, rectángulos, Texto, Líneas. Una
entidad tiene posición/rotación/zoom/color...
Texture: Una textura es una imagen que se guarda en memoria. En Android, las imágenes deben ser una potencia de 2.
ITextureSource: Una implementacion de ITextureSource-interface se encarga de cargar una imagen en una posición en la textura.
TextureRegion: Una TextureRegion
define un rectangulo en una imagen. Las TextureRegion se usan por
Sprites para usar una imagen grande en la que guardamos muchas imagenes.
PhysicsConnector: Motor de físicas integrado en el Engine.
Aca hay un video de la física de AndEngine.
Unity3D:
Con este motor de videojuegos se pueden desarrollar juegos en 3D
implementar física avanzada, crear escenarios rápidamente con el editor
de terrenos y crear scripts en tres lenguajes de programación distintos,
Python, JavaScript y C#. Aunque la versión la gratuita permite publicar
los juegos para Windows y para la web, la versión para publicación en
Android tiene un costo de $400 dólares.
Por otro lado, Unity3D soporta
una amplia variedad de formatos de diseños 3D como Blender, Cinema 4D,
Maya y 3ds Max, por lo que los diseños se pueden importar a un escenario
en Unity para luego armar un juego con gráficos de última generación.
Lo mejor es que no es necesario escribir código distinto para cada
plataforma, si no que una vez desarrollado el juego podemos exportarlo a
Xbox360, Playstation 3, Nintendo Wii, MacOS, Windows, iPhone y
obviamente juegos web que se reproducen a través de un plugin.
Y un video de un demo desarrollado con Unity3D.
No hay comentarios:
Publicar un comentario