24 de Junio, 2004

Portabilidad y código abierto

Ni siquiera hablo de Software Libre, aunque todo el Software Libre es siempre código abierto, claro.

Alguna vez me ha dado por perder un poco el tiempo probando jueguecillos que hace la gente. Bueno, no es perder el tiempo realmente, pero por lo general tampoco son juegos acabados. La cuestión es que en ocasiones te encuentras con ideas interesantes de gente con talento.

Hay un par de recursos para encontrar estas pequeñas joyas de la programación en tiempo libre, el primero es el índice de juegos de libsdl.org y el segundo es allegro.cc. También es indispensable ojear The Linux Game Tome, pero no es por ahí por donde voy.

Tanto Simple DirectMedia Layer como Allegro son librerías con todo lo necesario para crear videojuegos, y que además son portables. Con un mínimo de cuidado nuestro programa funcionará en muchos sistemas operativos distintos e incluso en distintas arquitecturas (que no solo de INtel vive el hombre :D).

La licencia de SDL es LGPL, que es Software Libre y además interesante para que se emplee en ámbitos de soft de ocio comercial en los que en ingreso se obtiene por venta del producto, y la licencia de Allegro se podría llamar software libre también, pero bajo una licencia giftware que se parece demasiado al dominio público.

La verdad es que no sé hasta que punto la distinta filosofía detrás de las distintas licencias de las dos librerías pueden condicionar o dejar entrever el perfil de los programadores que desarrollan con ellas. Lo que sí es cierto es que con Allegro me encuentro con demasiada frecuencia que lo que se distribuye es un binario, solo para DOS o Windows (que imagino es el sistema en el que esa persona desarrolla), y sin licencia ni nada, solo con un 'es gratis'.

Es un error no incluir una licencia, aunque solo distribuyamos un binario. Dejamos nuestro trabajo en un terreno ambiguo. ¿Qué puede o no puede hacer el usuario con ese programa?

Hay muchas licencias para Software Libre, unas fáciles de entender y otras no tanto. Para todo aquel que solo distribuye en forma binaria su soft indicando que 'es gratis', normalmente no le hace daño emplear una licencia libre tipo MIT o BSD, ambas muy cortas y fáciles de entender. Se pueden variar, por ejemplo, si deseamos que no se permita la modificación del paquete que de distribuye o si no queremos permitir su venta. No será Software Libre porque no hay código fuente, pero sí deja claro cual es nuestra postura.

Además el no proporcionar el código fuente resulta hasta contrario a las intenciones de este tipo de autor. ¿No distribuye su programa para que la gente lo use? No aportar el fuente, sea cual sea su estado (por favor, no nos avergoncemos de nuestro código :P), es limitar esa usabilidad.

Voy a poner como ejemplo mi Dodgin' Diamond 2, que además me vale para hacerme publicidad ;). Lo estoy desarrollando en C y empleando SDL, con SDL_mixer para facilitarme el tema de la música de fondo y los efectos de sonido.

DD2 es Software Libre (con licencia GPL) y distribuyo 2 paquetes: el fuente con soporte para compilar en cualquier entorno POSIX sano (cualquier sistema tipo UNIX, gracias a las llamadas autotools y algo de curro por mi parte para usarlas) y un binario para Win32 compilado con MinGW (tengo un Windows 98 en un Pentium 166Mhz para estas cosas). Personalmente lo he probado en OpenBSD, FreeBSD (comencé el desarrollo en ese sistema) y Linux (Debian, actualmente donde trabajo en DD2).

Hoy mismo he recibido un correo informándome que la versión 0.2 del juego ha sido portada a la consola Dreamcast :D. Y no solo eso, distintas versiones a lo largo del año y pico que llevo de desarrollo han sido portadas a otras arquitecturas como UltraSparc, PowerPC o la consola X-BOX; a distintos sistemas operativos como Solaris 8 y 9, MorphOS (ni sabía que existía) y Mac OS X.

Y yo he hecho más bien poco, solo pelearme con las autotools para que el tema compile más o menos fácil. Bueno, y parece que accidentalmente todas las 'cosas raras' que tiene el programa funcionan :D (me sorprende que mi 'arte con punteros' vaya en arquitecturas como PowerPC o con 64 bits como UltraSparc), pero la mayor parte del éxito recae en SDL y en que el fuente está disponible.

Así que he cumplido mi objetivo al distribuir mi jueguecillo: que la gente juegue.

Al ofrecer el fuente podemos ya mirar otras licencias más completas (y complejas :(). Por ejemplo, si deseeamos que cualquier modificación hecha a nuestra obra siga siendo libre, pues podemos usar la GPL, que protegen más al autor y sobretodo a su producto (incluso lo protegen del propio autor, ojo).

Es difícil acertar con la licencia, aunque cualquiera de las tres valdría, si nos equivocamos y tenemos que lamentar la decisión, será mucho más adelante :D.

Elegí GPL para DD2 porque en un principio pretendía hacer un motor reutilizable, y obligar con la GPL a que todo desarrollo basado en DD2 fuera libre era bastante tentador. Lamentablemente creo que me he desviado un poco (la IA de los enemigos está programada en C, lo que hace que el motor no sea muy fácil de extender), pero sigo satisfecho con mi decisión.

Un día de estos tengo que soltar un rollo sobre licencias, que es una base muy importante y fundamental que permite la existencia del Software Libre tal y como lo conocemos. Pero no va a ser hoy :).

Anotación por Juan J. Martínez.

Hay 5 comentarios

Gravatar

lo de la definicion de software libre... pues hasta cierto punto es muy subjetivo porque mira la gente de debian que cada vez son mas puristas hasta el punto de que les llaman talibanes...
ahora ni el mozilla quieren meter

por Zootropo, en 2004-06-27 01:20:14

Gravatar

El término "talibán" que tan de moda está me parece de bastante mal gusto. Pero bueno, tendremos que vivir con él....

Debian tiene un contrato social, que te recomiendo que ojees antes de hacer juicios (fuera de lugar con el texto al que has puesto el comentario):

http://www.debian.org/social_contract

En esta vida todo tiene una razón de ser, aunque no estemos de acuerdo :)

Te agradezco el comentario, pero intenta mantenerte dentro del tema del texto.

por Juanjo, en 2004-06-27 02:15:55

Gravatar

he dicho que 'les llaman' talibanes, juanjo.. no que yo creyera que lo son
de hecho yo utilizo debian

por Zootropo, en 2004-06-27 18:05:48

Gravatar

y lo de que no tiene que ver con el articulo.... :| no has comentado las licencias en el articulo? no has dicho que bsd no es una licencia libre? a eso venia el comentario... eso es muy subjetivo.. no tiene porque cumplir todas las libertades para ser software libre por mucho que stallman quiera imponer su punto de vista a los demas

http://es.wikipedia.org/wiki/Software_libre

por Zootropo, en 2004-06-27 18:10:13

Gravatar

Yo hablo de como abrir el código puede mejorar la portabilidad y la distribución de un programa.

Tu, en un principio, arremetes contra Debian (que digas que "lo dicen por ahí" no tiene importancia... porque eso "lo dice tu"), y luego sigues por las ramas con el tema licencias.

Además te agradecería que leyeras otra vez el artículo. En ningún sitio he dicho que la BSD no sea libre. He dicho que al distribuir un software solo en forma binaria, podemos emplear una licencia tipo BSD o MIT, aunque no sería software libre porque no se distribuye el fuente. Bueno... el texto lo dice claramente.

Gracias otra vez por los comentarios, pero te vas del tema del texto :)

por Juanjo, en 2004-06-27 18:52:49

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.