Post on 12-Jun-2015
description
Frameworks Para Desarrollo de Videojuegos para Móviles
Dani Nebot
WWW.ADWE.ES
PRESENTACIÓN
@daniinebot en
Programador y
www.lostiemposcambian.com/blog
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 DEMO: Construct2
http://www.youtube.com/watchv=5RlSmkSbleI
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
STARLING
Comunidad muy activa: Starling Extensions
● GUI - FeathersUI
● Sistemas de Partículas
● Skeletal Animation - DragonBones
● ...y más
DEMO STARLING
http://www.lostiemposcambian.com/blog/as3/introduccion-a-starling-videojuegos-mobile-en-flash/
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