cocos2d-iphone with javascript: El entorno

0 comentarios

Después de un tiempo usando esta tecnología, y como no podía ser menos, ya estamos en disposición de colgar en el blog las primeras experiencias e impresiones.

Hoy me gustaría hablar del ENTORNO de PROGRAMACIÓN, EJECUCIÓN y DEPURACIÓN.

  1. ENTORNO de PROGRAMACIÓN
    Todos los que nos dedicamos a ésto, estamos acostumbrados a IDE's de tipo Eclipse, Visual Estudio, etc, herramientas que en general nos facilitan las cosas. Temas tan habituales como errores de sintaxis, errores de compilación, etc, se hacen fáciles de detectar y corregir. Incluso programando en ObjectiveC con Xcode la experiencia es semi-agradecida. Pues bien, olvidaros de todo eso. Usar Xcode con JavaScript es la muerte, así que hay que buscarse la vida con herramientas alternativas. Particularmente he decidido usar la misma herramienta que el autor de cocos2d-iphone: SublimeText. Este pequeño editor nos ofrece algunas facilidades programando en JavaScript que seguro agradecerás, como el autocompletado, codesnippets, etc.

  2. ENTORNO de EJECUCIÓN
    Una vez encontrado el editor, hay que ejecutar el código que desarrollamos. Aquí es donde viene el segundo problema. JavaScript es un lenguaje interpretado, así que los errores de sintaxis no se detectan cuando se programa, si no cuando se ejecuta. El ciclo de pruebas es por tanto: programa, ejecuta, error, revisa el código. Pero claro, ¿cómo reviso el código en busca de errores de sintaxis? ¡VISUALMENTE! Consejo: no tires muchas líneas de código antes de probar las cosas, te volverás loco.

  3. ENTORNO de EJECUCIÓN
    Otro de los típicos problemas son los errores de la lógica que estás desarrollando, para lo que usualmente debugamos. Esta tarea todavía está muy atrasada en cocos2d-iphone, y aunque actualmente están implementando un debugger, todavía no está listo. Volvemos pues, tiempo atrás, donde el JavaScript más arcaico lo depurábamos con los típicos 'alert'

En definitiva, y respecto al tema del post, mi opinión es #FAIL, porque una cosa es acostumbrarse y otra que de un inicio te faciliten tu trabajo.

M.

Cross-platform development to the next level: cocos2d-iphone with JavaScript

2 comentarios

Después de alguna que otra prueba con Unity y con CoronaSDK para desarrollar juegos en modo "cross-platform", esto es, desarrolla una vez y despliega en iOS y Android, hemos decidido darle una oportunidad a una nueva tecnología que promete y mucho: cocos2d-iphone with JavaScript.

La teoría es la siguiente: utiliza javascript para desarrollar tu juego, y luego una máquina virtual de javascript interpreta tu código (SpiderMonkey) y acaba invocando el código nativo (cocos2d-iphone).

Esta interpretación y ejecución de código nativo se produce gracias a unos "proxies" o "glue code" que están incorporados en cocos2d-iphone a partir de su versión 2.1. Este código se autogenera gracias a un proyecto del creador del cocos2d, Ricardo Quesada, y que está disponible en github: JSBindings

Bonito y sencillo, ¿no? Bueno, pues no es oro todo lo que reluce. Para que puedas programar en JavaScript 100%, necesitas que todo el código nativo que vayas a utilizar tenga su correspondiente "glue code" o "proxies". Y claro, quién pueda desarrollar un juego sin crear sus propias clases para comportamientos particulares que tire la primera piedra.

La buena noticia: es posible generar tu propio "glue code" o "proxies" para tus objetos javascript.

La mala noticia: el proceso es para "machos" y la documentación es escasa.

M.