Comunidad de diseño web y desarrollo en internet

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 versión actual de AIR es la 3.2, que viene en Flash CS6. A diferencia de la versión 2.6 de hace unos cuantos meses. En ésta, 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 ambos lenguajes.

El touch de una aplicación creada con flash, tiene mucho más delay que una en xCode.

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 está programado en la Línea de Tiempo a base de MovieClips es posible que tengas problemas con la reproducción del mismo.
Por ejemplo, si se está 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 imágenes 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 imagen 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 encontré de usar un texto con una fuente externa, es creando un movieclip con un textfield que tenga embebido los caracteres 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 cuál es la mejor forma para controlar los objetos en memoria te recomiendo que veas mi videotutorial anterior.

Matemáticas

La matemática puede funcionar diferente en el iPhone.

Código :

uint( ((0 - 0.5) / 3) + 1 );
Math.floor( ((0 - 0.5) / 3) + 1 );


En este ejemplo, el resultado de la primer línea 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 línea.

Plugins

Por último, si quieres utilizar gamecenter, facebook, u otras 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 cómo utilizarlo, tienes que seguir las instrucciones del AIR_Android_readme.txt

Publica tu comentario

o puedes...

¿Estás registrado en Cristalab y quieres
publicar tu URL y avatar?

¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?

Registrate