Crear Juegos para iPhone en Flash

En este videotutorial vamos a ver algunas consideraciones importantes en la creación de juegos para iPhone utilizando flash.


Rendimiento: Para comenzar, nunca va a ser lo mismo crear una aplicación en flash que en xCode. Ya que xCode es el IDE nativo de iOS, y siempre va a estar un paso adelante en rendimiento o customización.
La version actual de AIR es la 3.2, que viene en Flash CS6. A diferencia de la version 2.6 de hace unos cuantos meses.
En esta, el procesamiento es el doble de rápido. Sin embargo, el rendimiento de un juego es aproximadamente 30 veces menor que el de uno hecho con xCode. Esto lo pude comprobar armando una aplicación con Box2d en ámbos lenguajes. El touch de una aplicación creada con flash, tiene mucho más delay que una en xCode.


Si se utiliza la librería Starling el rendimiento sube bastante.
Pero lo bueno de flash es su simpleza y flexibilidad para trabajar. En cambio el lenguaje de xCode (objective-c) es mucho más robusto que AS3.

MovieClips: Si tu proyecto esta programado en la Linea de Tiempo a base de MovieClips es posible que tengas problemas con la reproducción del mismo. Por ejemplo, si se esta reproduciendo una animación, en el momento en que aparezca otro movieclip en escena puede que tarde en mostrarse ya que la carga del mismo es asincrónica. En lo posible, siempre hay que evitar utilizar MovieClips.

Preloads: En caso de que quieras tener una PreCarga animada, solamente funciona con archivos externos como imagenes o xml. No se pueden importar archivos swf externos ni hacer una precarga de los elementos utilizados en biblioteca. A veces la mejor solución es usar un splash como precarga. La imágen Default.jpg que muestra por defecto mientras se carga la aplicación.

Fuentes: Por alguna razón la incorporación de fuentes externas no funciona como debería. La única forma que encontre de usar un texto con una fuente externa, es creando un movieclip con un textfield que tenga embebido los carácteres de esa fuente.

Filtros: Los filtros siempre empeoran el rendimiento. Pero en este caso, empeoran muchísimo el rendimiento. Es más, si compilas con el modo de procesamiento GPU, para mejorar el rendimiento gráfico, elimina todos los filtros y aumenta el rendimiento de los movieclips.

Control de Memoria: Es muy importante controlar que todos los objetos en memoria sean borrados adecuadamente. Como puede ser en caso de reiniciar el juego o cambiar de nivel. Ya que si la app supera aproximadamente los 100mb en RAM o hace un procesamiento muy complejo puede crashear. Si quieres saber cual es la mejor forma para controlar los objetos en memoria te recomiendo que veas mi videotutorial anterior: Click para ver el Video

Matemáticas: La matemática puede funcionar diferente en el iPhone.
uint( ((0 - 0.5) / 3) + 1 );
Math.floor( ((0 - 0.5) / 3) + 1 );
En este ejemplo, el resultado de la primer linea es 0. Si lo pruebas desde flash funciona bien. Pero si lo pruebas desde un iPhone el resultado es 1. Por esta razón siempre conviene utilizar la clase Math, como en la segunda linea.

Plugins: Por ultimo, si quieres utilizar gamecenter, facebook, u otraas cosas externas al proyecto. Tienes que agregar plugins en la compilación. Para eso, es conveniente crear un proyecto AIR Mobile AS3 App en FlashDevelop. El cual nos agrega diferentes ejecutables para gestionar nuestra compilación. Si quieres saber como utilizarlo, tienes que seguir las instrucciones del AIR_And

Comentarios

Entradas populares de este blog

Test de Personalidad del Dr. Gary Smalley

HTML - Basic Statements

Control de Objetos en Memoria