6 de Agosto, 2014

Sobre distribución

Ya he sobrepasado la mitad del reto de programar un juego al mes (durante el 2014), con 7 juegos. Si añadimos los que había hecho antes del empezar el reto, tengo una buena muestra para analizar.

He trabajado con diferentes lenguajes de programación y diferentes frameworks o librerías, y he probado distintos modelos de distribución, así que voy a comentar aquí algunas conclusiones.

Lenguaje Framework Linux Windows Mac Otros
C SDL 1 Fuente Binario Fuente SDL es muy portable
Python PyGame Fuente/Paquete Binario1 Fuente n/d
Python pyglet Fuente/Paquete Binario1 Fuente/Paquete2 n/d
Javascript Canvas 2D + SoundJS Navegador Navegador Navegador Necesita aceleración hardware
C++ SFML Paquete Binario3 n/d4 Soporte para Android en desarrollo

Notas:

  1. py2exe requiere una máquina con Windows para empaquetar.
  2. Empaquetado como un egg, distribución binaria de AVBin y usa la versión de python 2 instalada en el sistema.
  3. Cross-compiling en Linux, probado con Wine. No hace falta una máquina Windows.
  4. Por ahora un Mac es necesario.

Esta tabla antiende únicamente a la distribución, y en ese aspecto Javascript es la mejor opción, aunque no es cualquer navegador porque la aceleración hardware no está disponible en todas partes. No tiene en cuenta lo fácil o difícil que es el desarrollo o mis preferencias como programador (importante para mi: encuentro más satisfactorio programar en python que en javascript :P).

Además está la estabilidad de la plataforma. Por ejemplo, el resultado con Javascript es bastante variable (depende de la versión del navegador y de si tenemos aceleración en canvas), y en general es más difícil conseguir buen rendimiento. pyglet utiliza OpenGL y aceleración por hardware, y es más autocontenido que PyGame, pero este último es más estable y en general está mejor soportado (gracias a que usa SDL).

Distribuir el código puede ser la mejor opción si el juego acaba incluído en una distribución, pero entre ciclos de desarrollo y procedimientos pueden pasar muchos meses antes de que se obtengan resultados (y es posible que el juego nunca llegue a ninguna distribución).

En el caso de SDL con Dodgin Diamond 2 se puede comprobar que publicar el código fuente permite que el juego sea portado a plataformas que de otra manera sería imposible soportar. En general los ports respetan la licencia, aunque en este caso no lo considero demasiado importante.

Por ahora estoy centrándome en resultados inmediatos, sobretodo cuando se trata de una game jam, que se traduce en: el juego debe funcionar en Windows, luego Linux (porque puedo y porque me resulta fácil, no por el número de usuarios), y si es posible y con muy baja prioridad... Mac.

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

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

Algunas anotaciones relacionadas: