Buenas tardes, este DevBlog consiste en publicaciones acerca del desarrollo de videojuegos para navegadores Web, en HTML5.
El primer desafío consiste en desarrollar 2 prototipos para el día Lunes 14 de marzo del 2016, y para el día Lunes 21 de Marzo del 2016 se espera tener 8 prototipos, los cuales serán publicados en Gamejolt.
Como primer Post he de definir algunas cosas, como la elección de la tecnología que se utilizará para el desarrollo. Entre las opciones se encuentra:
- Phaser(phaser.io)
- Cocos2D-JS (cocos2d-x.org)
- Gdevelop (compilgames.net)
- Unity (unity3d.com)
En primer lugar, Unity queda descartado debido a que ya poseo cierta experiencia y noción con la herramienta y la idea es explorar una completamente nueva. Luego, Gdevelop no despertó mi interés debido al parentesco con Construct 2 (en términos de interfaz) y en mi poca experiencia con Construct 2 no fue muy agradable, por lo cual no intente investigar mucho acerca de esta herramienta y debido al escaso tiempo la descarte. Cocos2D-JS me pareció una herramienta bastante buena, con una comunidad activa (de acuerdo a lo poco que alcance a investigar) pero, debido a temas de tiempo no pude utilizarla para el desarrollo de uno de los 2 prototipos (esta era mi intención en un principio), así que finalmente me decante por Phaser.
Al comenzar con el desarrollo del primer prototipo tenía dos posibilidades trabajar con Cocos o Phaser, que eran las dos herramientas que más llamaron mi atención, utilice Phaser finalmente debido a que tiene una cantidad absurda de ejemplos y una buena documentación que ayuda mucho a acelerar los tiempos de desarrollo. Además cuenta con una comunidad bastante activa que ayuda bastante a la hora de encontrar soluciones a problemas. Respecto a esto último, cuando me encontré antes dificultades en el desarrollo, como por ejemplo elementos que quería programar y no podía encontrar solución dentro del sitio de Phaser, solo me bastó buscar un poco en la web para encontrar soluciones a los problemas, resueltos por otras personas de la comunidad.
Al comenzar con Phaser no tuve problemas en la instalación, sólo se requiere un servidor local (dentro de la muchas opciones existentes, como ejemplo WampServer, incluso existe un opción en la nube) e incluir el archivo phaser.js o phaser.min.js en nuestro archivo index.html.
Durante el desarrollo el lenguaje Javascript que utiliza phaser no me resultó complejo de entender (bastante ameno), lo cual agilizo mi aprendizaje en esta herramienta. También el manejo de estados que proporciona Phaser para separar las partes del juego (la lógica de este), me permitió genera un Flujo de Navegación (Menú > Juego > Game Over ) de juego bastante rápido sin demasiado esfuerzo. También he visto que existen debugueadores en los ejemplos de Phaser, lo cual me pareció bastante interesante, pero no investigue al respecto debido a que me estoy concentrando en desarrollar los 2 primeros prototipos, pero pienso que en un desarrollo más grande valdrá la pena incluirlos.
Respecto a puntos negativos de Phaser, si bien la documentación es bastante completa, en un comienzo fue dificultoso buscar en esta, no entendía muy bien y era un poco confusa, pero una vez que te familiarizas con el lenguaje no resulta engorroso.
Finalmente a modo de concluir, no me arrepiento de haber comenzado a desarrollar con Phaser. La curva de aprendizaje de la herramienta es un poquito lenta en un comienzo, pero una vez se pasa la barrera se vuelve simple programar en esta. Me permitió realizar los 2 prototipos (cuyos links dejaré más abajo) bastante rápido sin sentirme limitado a la herramienta lo cual es bastante agradable.
Link de mi primer prototipo realizado con Phaser publicado en Game Jolt, con un tiempo de trabajo de 3 días aproximadamente.
Link de mi segundo prototipo realizado con Phaser publicado en Game Jolt, con un tiempo de trabajo de 6 hrs aproximadamente.