Frameworks para el desarrollo de juegos para dispositivo móviles

Post on 12-Jun-2015

6,024 views 1 download

description

Conferencia relizada en ADWE Alicante por Daniel Nebot (@daniinebot) en el espacio CAMON sobre diferentes Frameworks para el desarrollo de juegos para dispositivo móviles

transcript

Frameworks Para Desarrollo de Videojuegos para Móviles

Dani Nebot

WWW.ADWE.ES

PRESENTACIÓN

@daniinebot en

Programador y

DESARROLLO DE VIDEOJUEGOS

Uno de los proyectos más

seductores para todo

programador...

... y también más difícil

¿QUÉ ENTENDEMOS POR DESARROLLO DE VIDEOJUEGOS?

VIDEOJUEGOS PARA MOBILE

Dos características del dispositivo lo diferencian especialmente de otras plataformas:

● RENDIMIENTO

● INPUT

RENDIMIENTO EN MOBILE:

GAME LOOP

En esencia, todo videojuego es un bucle infinito

RENDIMIENTO EN MOBILE

Con recursos limitados debemos:

● Mantener un FRAME RATE estable

● Limitar uso CPU (consumo batería)

USER INPUT

TOUCH

MULTITOUCH & GESTURES

ACCELEROMETER

USER INPUT: TOUCH

TOUCH PHASES: Began, Ended, Moved, Stationary

USER INPUT:

USER INPUT: ACCELEROMETER

AccelerationX, AccelerationY, AccelerationZ

HABLEMOS (POR FIN) DE FRAMEWORKS

Googleamos "Frameworks videogames mobile" y...

http://en.wikipedia.org/wiki/List_of_game_engines

http://mobilegameengines.com/

FRAMEWORKS: ¿CUÁL?

FRAMEWORKS: ¿CUÁL?

● "Nativo" vs Multiplataforma

● Lenguaje de Programación/Entorno de Trabajo

● ¡Cuidado con proyectos abandonados! "Danger of cool things"

FRAMEWORKS: 3 FLAVORS

● Juan Palomo

● Game Frameworks (low-level)

● Game Engines (high-level)

JUAN PALOMO

JUAN PALOMO

...no significa rehacerlo todo desde 0Librerías para desarrollo de videojuegos:

box2d física y colisiones,

gráficos 3D,

Inteligencia Artificial, Matemáticas, Networking...

LIBRERÍAS PARA JUAN PALOMO

Compendio de librerías Open-Source para

desarrollo de Videojuegos (en C++)

http://www.ebonyfortress.co.uk/blog/free-game-development-libraries/

la mayoría tiene ports a otros lenguajes... ¡o nos las portamos nosotros!

GAME ENGINES

Ofrecen abstracciones de muy alto nivel para tareas comunes en programación de videojuegos

El objetivo es ayudar al programador facilitando el

PROTOTIPADO y acelerando el DESARROLLO

del videojuego

La mayoría son MULTIPLATAFORMA

GAME ENGINES COMERCIALES

Entornos cerrados con licencias de pago anuales:

Construct2

GAME ENGINES DEMO: Construct2

Caso extremo: ¡no tenemos ni que programar!

GAME ENGINES

GAME ENGINES: DESVENTAJAS

Nos obligan a cambiar nuestra Metodología de Trabajo:

● Nos imponen un lenguaje de programación o una plataforma propia (el CÓMO)

● Nos restringen en QUÉ se puede hacer

GAME FRAMEWORKS

El objetivo es ofrecernos una ESTRUCTURA y una

serie de HERRAMIENTAS para asistir en la

creación de videojuegos

GAME FRAMEWORKS NATIVOS

● Sparrow (Objective-C)

● AndEngine (Java)

STARLING

ActionScript 3.0 (Flash y AIR): Multiplataforma (excepto Windows Phone)

Además: NATIVE EXTENSIONS C++

para lo que AIR no llega

STARLING

Tecnología Punta (FlashPlayer 11.4, AIR 3.3)

● Nos facilita acceso a aceleración gráfica por

hardware (GPU)

● Blitting mediante SpriteAtlas

● Multitouch

HTML5 + JS (+ PHONEGAP)

Hay muchísimos frameworks HTML5 + JS para desarrollo de videojuegos

● Impact

● Akihabara

● Crafty

● Melon

● ...

HTML5 + JS (+ PHONEGAP)

Hablo de PhoneGap porque es bastante completo:

http://phonegap.com/about/feature

Pero existen otras soluciones:● http://ludei.com/tech/cocoonjs

● http://www.mosync.com/

● http://www.appcelerator.com/platform/titanium-sdk

HTML5 + JS (+ PHONEGAP)

● Problemas de Rendimiento: HTML5 is not there... yet

● Entorno de Programación no pensado para desarrollo de videojuegos, sino páginas web

● Ventaja: Adaptación fácil desde el mundo web :)

LIMEJS

Utiliza la Closure Library de

Lo más parecido a JS Orientado a Objetos

Nos proporciona mecanismos para simular:

● Namespaces

● Herencia

● Eventos

LIMEJS

El desarrollo se basa en una Línea de Tiempo que corre continuamente, un Stage principal (el Director) con múltiples Scenes cada una con sus Capas (Layers)

Este esquema se adapta MUY BIEN a la

programación de videojuegos

LIMEJS

Además nos ofrece:

● Abstracción Canvas/DOM/(WebGL)

● Integración con Box2D (física, colisiones)

● Abstracción eventos Touch

● Motor de Tweens

DEMOS LIMEJS

ROUND BALL (Juego Ejemplo)

http://www.limejs.com/static/roundball/index.html

DEMOS LIMEJSVOODOO FRIENDS

http://www.youtube.com/watch?v=oplWbftRloU

RECURSOS PARA DESARROLLO DE VIDEOJUEGOS

● html5gamedevs.com (aglutinador de artículos)

● emanueleferonato.com (desarrollo de juegos)

● wildbunny.co.uk (matemáticas para juegos)

RECURSOS PARA DESARROLLO DE VIDEOJUEGOS (y 2)

● gamasutra.com/blogs - Industria del videojuego

● gamedev.stackexchange.com - Q&A

● http://www.mangatutorials.com/forum/showthread.php?742-The-Ultimate-Indie-Game-Developer-Resource-List

TEH ULTIMATE INDIE GAME DEVELOPER RESOURCE LIST!1!!

... Y FIN