Presentación Dispositivos AndEngine

Anuncio
Universidad de Costa Rica
Facultad de Ingeniería
Escuela de Ciencias de la Computación e Informática
CI2354-Dispositivos Móviles
Resumen de exposición de AndEngine
Estudiantes:
Marco Artavia
Rubén Jiménez
Mario Monge Ordoñez
II Semestre - 2012
Exposición AndEngine
1
2
3
4
5
Reseña historica
¿Por qué usarlo? comparación con otras herramientas (Corona, AndEngine, Emo
Framework, E3roid, Unity) ¿Para cuál versión surge?, por ejemplo: versiones
compatibles
¿Cómo instalarlo?, ¿cómo configurar el emulador?
Ejemplos
Preguntas
Introducción
El mercado de los videojuegos es uno de los más importantes en el sector móvil y de los que
actualmente está creciendo más. Según datos de PricewaterhouseCoopers, el sector de los
videojuegos va a ser el mercado de mayor crecimiento en el sector multimedia sólo por detrás
del propio Internet. Con respecto al uso de juegos de video en dispositivos móviles, tenemos
este interesante gráfico en la figura 1 acerca del crecimiento en el uso de videojuegos por tipo
de hardware utilizado:
Figura #1: Estimación del uso de videojuegos
por tipo de hardware utilizado
En el mismo, podemos observar que el mercado movil tiene un potencial alto de crecimiento
para el siguiente año, creciendo en total un 10%.
También, según el grupo NPD, que es un líder en estudios de mercado, sólo en Estados
Unidos el crecimiento en el uso de juegos de video en móviles pasó de representar un 13% en
el 2011 al 22% en este 2012 en el consumo total de juegos. También indica que los usuarios
gastan aproximadamente $16 en contenido digital.
Al ser un mercado creciente, que junto con medios como la conexión con redes sociales, para
aumentar la interactividad y competencia entre usuarios, es importante saber de las
herramientas que disponen los programadores para poder desarrollar sus aplicaciones. En este
caso, se procederá a dar detalles de AndEngine, un motor libre para el desarrollo en Android.
Reseña Histórica
El projecto AndEngine fue ideado por el programador alemán Nicolas Gramlich, como
respuesta a la falta de motores libres para el desarrollo de videojuegos para Android. En el
2010 publica la primera versión de su motor, el GLES1, bajo licencia LGPL.
Con esta licencia, se le permite al desarrollador proteger su código. Los fuentes del juego no
necesariamente tienen que ser publicados, ya que lo único que se debe publicar son los
cambios que se le haya realizado a la librería (al AndEngine).
Ante los logros conseguidos con su motor, la empresa de videojuegos Zynga lo contrató para
que trabaje en el departamento de juegos para móviles y basándose en el motor de juego
creado por él mismo.
En diciembre del 2011, se introdujo un gran cambio al motor, al ser presentada la rama GLES2.
El objetivo de esta rama, según Gramlich, era poder mejorar la eficiencia en algunos métodos
debido a las aplicaciones pesadas que estaba desarrollando en Zynga, demostrando que el
desarrollo de la herramienta sigue en pie a pesar de que él es el único que aporta al mismo.
Extensiones
Periodicamente, Nicolas desarrolla diferentes extensiones para su motor de juego. Las que se
encuentran disponibles actualmente son:
Realidad Aumentada: Permite un mejor manejo de la cámara en el juego.
Live Wallpaper: Permite crear Wallpapers animados con el AndEngine.
Reproductor .MOD: Permite reproducir archivos de música de tipo .MOD y varios similares
con el AndEngine.
Multijugador: Le agrega la posibilidad de conectar varios dispositivos a través de un sistema
cliente/servidor para permitir múltiples jugadores en línea.
Multitouch: permite el manejo de múltiples eventos Touch a la vez.
PhysicsBox 2D: Es un motor de alto rendimiento, basado en una librería hecha por Erin Catto
para el manejo de eventos físicos, por ejemplo, que los objetos “caigan” por la gravedad y se
vean afectados por otros objetos en el escenario.
CocosBuilder: Una extensión para poder utilizar AndEngine con cocos, que es una aplicación
para el desarrollo de interfaces.
AndEngineSVGTextureRegion: Una extensión que permite renderear SVG a texturas.
Componentes Importantes de una Aplicación usando AndEngine
SimpleBaseGameActivity: Las actividades que se realizarán utilizando el motor tendrán que
ser heredadas de BaseGameActivity. Cada SimpleBaseGameActivity tiene un motor.
Engine(motor): Permite que el juego avance en pequeños pasos discretos de tiempo. Ayuda a
sincronizar los dibujos que se realizan periódicamente y también ayuda a actualizar la Escena.
Ejemplo de uso:
new Engine(new EngineOptions(true, ScreenOrientation.LANDSCAPE, new
RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT), this.mCamera))
Scene(Escena): Es el contenedor de todos los objetos que son dibujados en la pantalla.
Ejemplo de uso:
final Scene scene = new Scene(1);
scene.setBackground(new ColorBackground(0, 0, 0.8784f))
Camera: Define el rectángulo de la escena que es dibujada en la pantalla. Hay subclases de
escena que permiten modificar aspectos como el zoom.
Ejemplo de uso:
this.mCamera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT);
IResolutionPolicy: Le dice a AndEngine como lidear con los diferentes tamaños de pantalla de
los dispositivos.
Los diversos tipos que hay son:
●
●
●
●
FillResolutionPolicy : Llena toda la pantalla como pueda sin importar la resolución.
RatioResolutionPolicy : Trata de usar lo más que se pueda la pantalla, pero intenta
mantener la relación que tiene el ancho y largo.
RelativeResolutionPolicy : Usa un X y un Y predefinidos para el escalado y cambia las
dimensiones actuales.
FixedResolutionPolicy : Usa un tamaño fijo.
Entity: Es un objeto que puede ser dibujado.
Texture: Es una imagen en la memoria del chip gráfico que sirve para poner otros objetos en
él. El tamaño debe ser potencia de 2.
Ejemplo de uso:
mTexture = new Texture(256, 256, TextureOptions.BILINEAR);
TextureRegion: Define un rectángulo en la textura. Es usado por sprites para hacer saber al
sistema que parte de la textura se encuentra
Ejemplo de uso:
ballTtextureTegion = TextureRegionFactory.createFromAsset(this.mTexture, this, "ball.png", 0, 0)
Comparación con otras herramientas
Licencia y Precio
AndEngine
LGPL
Lenguaje
Java
API
API de android y
Propio
No
2D
2.2
Multiplataforma
Renderizado
Primera versión de
Android soportada
Otras
características
No posee
documentación.
Unity
$400-$3000(pro,
Android)
$800-$4500(pro,
IOS, Android)
C#/UnityScript
(Javascript)/Boo
API propio
Corona
$200 (android) /
$350 (IOS, Android,
Kindle)
EMO framework
New BSD License
E3roid
New BSD License
LUA
Java
API propio
Squirrel/C/C++/
Objective C/Java
API propio
Si
3D o 2D
2.2 (Parcial 2.1)
Si
3D o 2D
2.2
Si
2D
2.3
Es una de las
plataformas más
utilizadas.
Es muy sencillo de
aprender.
Maneja 5 lenguajes
distintos, sí posee
documentación.
Más fácil que
E3roid.
API de android y
propio
No
2D(3D parcial)
2.1
No ha sido
actualizado desde
el 2011, sí posee
documentación.
¿Cómo instalar AndEngine?
1
2
3
4
Descargar Eclipse de http://www.eclipse.org/downloads/
Instalar Eclipse
Instalar el plugin de Git
Ir al sitio de AndEngine http://www.andengine.org/
5
6
Hacer click en Source. Este link lleva a un sitio que redirige al de GitHub
https://github.com/nicolasgramlich/AndEngine
Copiar el link del repositorio
7
8
Volver a Eclipse
Ir a Archivo, seleccionar la opción de importar
9
Escribit “git” en el texto de búsqueda. Seleccionar “Projects from Git” . Continuar a la
siguiente pantalla
10 Seleccionar URI . Continuar a la siguiente pantalla
11 Pegar el link de GitHub en donde dice URI, escoger el protocolo https. Continuar a la
siguiente pantalla
12 Seleccionar todos los branch. Continuar a la siguiente pantalla
13 Escoger un directorio de destino para AndEngine o dejarlo en el que viene por defecto.
14 Eclipse descargará el contenido del repositorio
15 Seleccionar la opción de “Importar proyectos existentes“
16 Seleccionar AndEngine
17 Hacer click en Finish
18 Con estos pasos el proyecto librería AndEngine debería haber sido importado
exitosamente a Eclipse
19 Si hay errores:
a Verificar que esté seleccionada la versión 1.6 del compilador de Java en las
opciones del proyecto.
b Verificar que el target de Android sea el más reciente.
20 Para utilizar AndEngine en un proyecto propio, hay que ir a las opciones del proyecto y
agregarlo como librería.
¿Cómo configurar el emulador?
1
Añadir la siguiente línea al manifiesto
2
3
Comprobar el sdk mínimo del proyecto sea el 8
Configurar una máquina virtual de la siguiente forma. Para añadir “GPU Emulation” hay
que hacer click en “New”
Bibliografía
http://www.tonylea.com/2011/best-iphone-game-frameworks/
https://store.unity3d.com/products
http://www.coronalabs.com/store/
http://www.andengine.org/forums/gles2/how-to-get-emulator-working-t9456.html
http://www.fiercemobilecontent.com/story/npd-mobile-gamers-now-largest-gaming-segmentus/2012-09-07
http://www.cartagena-capital.com/news-and-events/news/256-online-social-and-mobile-thefuture-of-the-video-games-industry
Descargar