Adrianistán

Secta Sectarium, JavaScript vs Rust

06/03/2015
Acabo de decidirme por el próximo proyecto grande que voy a realizar, se trata de Secta Sectarium, un juego estilo tycoon sobre controlar una secta. Voy a intentar reflejar en este blog todo lo que pueda sobre el desarrollo.

Lenguaje de programación


Todavía no os voy a contar las mecánicas principales del juego así que vamos a ir directamente al tema técnico. Tenía serias dudas de cual usar. Me rondaban la cabeza C++, Rust y JavaScript.

C++



Rust



JavaScript



Al final me decanté por JavaScript (espero usar TypeScript de verdad) porque aunque el rendimiento puede ser peor, es un amigo (y enemigo a la vez, la historia es larga) conocido. Tiene un soporte para publicar juegos real (en contraposición a Rust) y es bastante rápido desarrollar.

Así que la elección de JavaScript es definitiva y de repente me surgen dos dudas:

WebGL o Canvas


Inicialmente pensaba hacerlo en Canvas, una API similar a la que esperaba usar en SFML o SDL con C++ o Rust. Fue cuando estaba viendo el issue tracker de un motor de 2.5D en JavaScript cuando comentaban que sería mejor usar WebGL por rendimiento. Y me surgió la duda. Sé que Canvas 2D es acelerado por hardware en Firefox pero ¿es algo en lo que se puede confiable? y aún siendo confiable ¿es peor el rendimiento de Canvas que WebGL?

Estuve investigando y resulta que WebGL es más rápido que Canvas en operaciones 2D si lo usas bien. Interesante concepto. En principio Secta Sectarium no va a ser muy exigente gráficamente así que acepto el desafío ya que soy algo familiar con OpenGL ES 2.0 y WebGL.

Grunt o Gulp


Luego me surgió una duda relacionada con la construcción del proyecto. Había usado Grunt anteriormente pero el esqueleto de juegos npm me quitaba las ganas de seguir usando Grunt. Era poco claro con tantas configuraciones. Sabía que existía Gulp, así que heché un vistazo y me han quedado buenas impresiones respecto a claridad. Así que uso Gulp.

Seguiré informando


Seguiré informando sobre Secta Sectarium y su desarrollo. Próximamente os enseñaré el proceso de documentación.
Tags: tycoon programacion gamedev gulp javascript secta-sectarium programacion-de-videojuegos nodejs typescript