26 de Febrero, 2012

Programando juegos en Javascript

Desde mi fracaso en mi primera pyweek no he vuelto a hacer nada relacionado con juegos; y parece que ya me pica el gusanillo.

Aunque estoy bastante contento con PyGame (hasta donde controlo la librería, que es poco :D), después de los resultados que estoy teniendo con mi web de crucigramas, no puedo evitar preguntarme si no merecería la pena echarle un vistazo a alguna librería que haga uso de esas cosas modernas como HTML5 y Javascript, para que el juego fuera basado en web y conseguir así llegar a más usuarios.

Aunque ya investigué un poco hace tiempo, parece que las cosas han cambiado bastante (para bien), y creo que me quedo con estas tres propuestas:

  • Akihabara: es la primera librería para Javascript que recuerdo haber visto hace un par de años y haber pensado que igual sí hay un futuro para Javascript en los juegos :P.

    Sigue teniendo sus pros y sus contras (como que el sonido no funciona bien en todos los navegadores, o que a veces el rendimiento no es nada bueno), pero lo he incluido en la lista porque es la librería en la que he visto los mejores resultados.

  • GameJS: tiene la ventaja de ser un port de los conceptos y el API de PyGame a Javascript. También he visto problemas de rendimiento (sobretodo con algunas versiones de Firefox), pero parece que se va solucionando según el desarrollo de los navegadores sigue avanzando y mejorando el soporte de HTML5.
  • Crafty: este es el más raro de los tres, aunque es el que me parece más interesante precisamente por eso. Utiliza lo que ellos llaman el paradigma entidad-componente, que es en realidad lo que siempre he acabado implementando en todos los juegos que he escrito (por ejemplo, es lo que usé en dd2; aunque suene a programación orientada a objetos en C). Que la librería te obligue a pensar así es muy conveniente.

En principio cualquiera de las tres propuestas parece buena, compartiendo el punto negativo de que el soporte de los navegadores aún no es perfecto, además de tener que pelearse con Javascript (aunque como cuando trabajas con jQuery, el sufrimiento se minimiza gracias a la abstracción introducida por la librería).

La única pega grave que quizás le veo es que no me cuadra exactamente cómo se implementaría un tema multi-jugador en red; aunque probablemente sea mirar muy al futuro cuando realmente no tengo ni una linea de código escrita :P.

No sé si alguien tiene experiencia con alguna de las librerías, pero se agradecería cualquier comentario ;).

Anotación por Juan J. Martínez, clasificada en: javascript, programming.

Los comentarios están cerrados: los comentarios se cierran automáticamente una vez pasados 15 días. Si quieres comentar algo acerca de la anotación, puedes hacerlo por e-mail.

Algunas anotaciones relacionadas: