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
15. FRAMEWORKS: ¿CUÁL?
● "Nativo" vs Multiplataforma
● Lenguaje de Programación/Entorno de Trabajo
● ¡Cuidado con proyectos abandonados!
"Danger of cool things"
16. FRAMEWORKS: 3 FLAVORS
● Juan Palomo
● Game Frameworks (low-level)
● Game Engines (high-level)
18. JUAN PALOMO
...no significa rehacerlo todo desde 0
Librerías para desarrollo de videojuegos:
box2d física y colisiones,
gráficos 3D,
Inteligencia Artificial, Matemáticas, Networking...
19. 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!
20. 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
25. 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
26. GAME FRAMEWORKS
El objetivo es ofrecernos una ESTRUCTURA y una
serie de HERRAMIENTAS para asistir en la
creación de videojuegos
28. STARLING
ActionScript 3.0 (Flash y AIR): Multiplataforma
(excepto Windows Phone)
Además: NATIVE EXTENSIONS C++
para lo que AIR no llega
29. 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
30. STARLING
Comunidad muy activa: Starling Extensions
● GUI - FeathersUI
● Sistemas de Partículas
● Skeletal Animation - DragonBones
● ...y más
32. HTML5 + JS (+ PHONEGAP)
Hay muchísimos frameworks HTML5 + JS para
desarrollo de videojuegos
● Impact
● Akihabara
● Crafty
● Melon
● ...
33. 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
34. 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 :)
35. LIMEJS
Utiliza la Closure Library de
Lo más parecido a JS Orientado a Objetos
Nos proporciona mecanismos para simular:
● Namespaces
● Herencia
● Eventos
36. 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
37. LIMEJS
Además nos ofrece:
● Abstracción Canvas/DOM/(WebGL)
● Integración con Box2D (física, colisiones)
● Abstracción eventos Touch
● Motor de Tweens
40. RECURSOS PARA DESARROLLO DE
VIDEOJUEGOS
● html5gamedevs.com (aglutinador de artículos)
● emanueleferonato.com (desarrollo de juegos)
● wildbunny.co.uk (matemáticas para juegos)
41. 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!!
Nos vamos a centrar en las tres flechas de abajo (aunque algunos frameworks nos ayudan mucho con la TEMIDA flecha roja) RELEASE: distribución y venta
Vamos a hablar de "MOBILE" en lúgar de móvil ya que los tablets son dispositivos FUNDAMENTALES en el mercado actual de los videojuegos y no son móviles, aunque llevan los mismos Sistemas Operativos y por tanto se programan igual olada de tablets "low cost" nuevo kindle fire, nueva tablet samsung galaxy note 2 IPAD MINI
Como todo programador sabe, un bucle infinito no es bueno :P Cuantas más operaciones ejecutemos dentro de nuestro bucle infinito, Más recursos consumiremos!!
Por supuesto, estas dos cosas son casi opuestas!! FRAME RATE estable: Hay que cuidar la experiencia de usuario, no hay nada peor que juegos que se ralentizan al haber muchos elementos en pantalla, o peor se saltan frames al no poder mantener el frame rate (lags y saltos) CPU muy poco potente: en dispositivos mobilie es FUNDAMENTAL utilizar técnicas de aceleración por GPU de los gráficos (BLITTING, spritesheets etc)
Final de la intro a características de los videojuegos mobile. Pasamos al meollo de la cuestión, los frameworks!!
recomiendo nuestro lenguaje favorito... pero no nos cerremos a aprender nuevos!!! entorno de trabajo: lo principal WIN / MAC / LINUX Tendremos en cuenta que nos faciliten el acceso a técnicas para resolver los dos problemas específicos del mobile que hemos comentado antes: falta de potencia de CPU y el INPUT de usuario particular que presenta el mobile Comentar el danger of cool things por ejemplo: motores JS que emulan la displaylist de flash he perdido ya la cuenta de los que he visto... en cuanto te metes un poco a investigar... buff el último era un blog ruso cuya ultima entrada era 2010
No hay acuerdo en la comunidad de Game devs sobre qué es un framework y qué es un engine. Por eso hago la distinción entre la nomenclatura de Framework y Engine refiriéndome a un Framework como low level y un engine como un framework high level, que voy a usar en toda la presentación
Impact Akihabara Crafty Melon (lista no exhaustiva)
http://phonegap.com/about/feature otras soluciones para pasar de JS a APP (DE PAGO) http://ludei.com/tech/cocoonjs http://www.mosync.com/ http://www.appcelerator.com/platform/titanium-sdk
rendimiento: 15fps en el ipad3... todavía no es suficiente! (para cierto tipo de juegos quizás!) Confiemos en la ley de Moore :D Hablar sobre la importancia de la POO en programación de videojuegos Vamos a ver un framework JS que me ha gustado mucho (y en seguida sabréis por qué ;)