Introducción a ImpactJS: motor de videojuegos html5

Si te interesa el mundo de los videojuegos, y además estas interesado en el desarrollo de juegos para el navegador, ImpactJS te va a interesar y mucho.

ImpactJS es un motor de videojuegos 2d realizado en javascript, con el podemos manipular el elemento canvas de HTML5 de forma eficiente para crear autenticas obras de arte.

El motor trae diferentes herramientas para comprimir el código o un editor de niveles, pero lo que es la librería sin toda la parafernalia extra pesa solo 136kbs, que si lo comparamos con Jquery (252kb) por usar algo de ejemplo, es bastante ligera.

La librería es obra de Dominic Szablewski un crack del Javascript y el HTML5 que ha creado con su librería a modo de ejemplo juegos como Z-Type, Biolab Disaster o Creatures & Castles.

Pero empecemos por lo malo,* ImpactJS es un motor de pago, su precio son 99$, y *no hay demo del motor, es un todo o nada, esto quizás hace que muchos desarrolladores se echen atrás, pero Dominic esta tan seguro de que el motor te va a gustar que en varias ocasiones ha dicho que devuelve el dinero al que no le guste el motor. Unas declaraciones arriesgadas y cargadas de confianza a la vez.

Si me preguntáis a mi si vale la pena los 99$ dolares, diré que depende de cada uno, hay muchas alternativas gratis, algunas de ellas realmente potentes, es tarea de cada cual sopesar si vale o no la pena. En mi caso creo que han sido 99$ bien invertidos, cuanto mas trabajo con la librería más me gusta y me voy dando cuenta de que es muy completa y algunas cosas que consideraba que eran fallos de esta, tienen una razón de ser así.

Lo que te interesa saber es que puedes hacer juegos que funcionen igual en diferentes navegadores sin cambios en el codigo, que es compatible con navegadores móviles, y que los juegos realizados en impactJS pueden exportarse a aplicaciones nativas de móvil y ser subidos a las diferentes stores.

Debes de tener en cuenta que la librería provee de suficientes funcionalidades como para que no tengas que tocar la api nativa de canvas, pero ojo, ¡no te impide que la toques!, si quieres hacer algo directamente en canvas puedes, yo suelo hacer los menús a través de la api de canvas porque me permite personalizarlos mejor.

Algo que me sorprendió gratamente es la eficiencia del sonido. El sonido hoy en día sigue siendo una traba para los desarrolladores a la hora de decidir desarrollar en html5, cada navegador tiene sus “manías”, pero ImpactJS lo gestiona de maravilla, hasta el momento no he tenido ningún problema en cuanto al sonido de los juegos.

Lo que más me gusta de ImpactJS es la capacidad de extenderse y adaptarse al desarrollador mediante plugins, son realmente sencillos de implementar, ademas trae un sistema de debug bastante completo y como no podía ser de otra forma, extensible mediante plugins.

Además la comunidad que se ha formado alrededor de este motor es bastante interesante, y una buena comunidad siempre es un punto a favor.

No voy a extenderme más hablando de las cualidades de este motor, ya que tengo intención de desarrollar algunos juegos sobre el, uno de ellos lo tengo bastante avanzado ya, así que esta no sera la ultima vez que escriba sobre ImpactJS. Incluso me he planteado hacer una serie de pequeños artículos con características, trucos y tips para desarrollar con el, a modo de introducción para los que empiezan y algún que otro artículo más avanzado con cosas que voy haciendo, pero esto será más adelante, cuando disponga de más tiempo para dedicarle al desarrollo de juegos.

Si ahora mismo estáis dudando entre los diferentes motores de videojuegos javascript que hay, os gusta programar, buscáis un motor que funcione en todos los navegadores y podéis permitiros pagar los 99$ os recomiendo que le deis una oportunidad, si no os gusta ¡que Dominic os devuelva el dinero! ;)

Web: http://impactjs.com/
Material sobre ImpactJS: http://www.pointofimpactjs.com/

*Actualización: *Te puede interesar una guia para desarrollar paso a paso el juego Space Invader con ImpactJS.