referencia > ejemplos

Suministrar un nuevo ejemplo

Créditos

  • Autor: Hugo Ruscitti
  • Fecha: Marzo del 2006

¿Por que desarrollar ejemplos?

Cuando una persona comienza a experimientar en el desarrollo de videojuegos espera realizar sus propias prácticas, estudiar el funcionamiento de los programas, alterarlos, imaginar nuevas aplicaciones, divertirse, etc.

Piense en sus primeros días como programador: ¿buscaba ejemplos?, apuesto que sí. Cualquier biblioteca o sistema requiere de ejemplos para que los nuevos usuarios vean que se puede hacer, y cómo.

Lo invitamos a utilizar este espacio para compartir aquello que tanto disfruta, sume su aporte a esta sección. El objetivo de cada ejemplo es cubrir un aspecto básico de los videojuegos, por mas simple que parezca, siempre resultará de utilidad a las personas que buscan referencias para comenzar.

Cómo enviar ejemplos:

A fin de simplificar la tarea de organizar y distribuir los ejemplos de esta sección, he formulado una serie de pautas y recomendaciones a modo de guía.

Utilizaré la palabra `debe` aunque, en realidad, no está obligado a cumplir cada pauta. Aunque quisiera que lo tenga en cuenta, si puede seguir esta recomendación por completo nos evitará muchos contratiempos, de otra manera deberíamos analizar y corregir su programa para adaptarlo a esta estructura.

Como enviar sus ejemplos:

Visite la sección de contacto en la web. Ahí encontrará mi dirección de correo electrónico, yo recibiré su programa y lo subiré a la web; esta tarea podría demorar una semana (como máximo), si no recibe una respuesta por favor comuniquese nuevamente.

Es indispensable que me envíe algunos datos importantes junto a su ejemplo:

  • su dirección de correo electrónico: para que podamos informarle cuando esté disponible la descarga de su ejemplo o consultarle si es necesario.
  • código fuente del ejemplo: envíelo en un formato de compresión como zip o tar.gz (vea mas detalles en la siguiente sección).
  • una captura de pantalla: tome una captura de pantalla (screenshot) de la ventana de su programa funcionando, esto será de mucha utilidad para organizar el índice de ejemplos.

Estructura de directorios:

Esperamos proveer a los visitantes de la web una forma sencilla de buscar y conocer los ejemplos incluidos.

Para ello quisiéramos que todos los ejemplos mantengan una estructura de organización compartida:

Cada ejemplo se encontrará bajo compresión con el mismo nombre del ejemplo en un formato como zip o tar.gz (preferiblemente el segundo). El contenido de ese archivo deberá ser un directorio como el siguiente:

- nombre_de_ejemplo+ doc/ opcional: documentación del programa.+ data/ opcional: recursos utilizados durante el programa, como imágenes y sonidos. + src/ Makefile obligatorio: debe especificar como se genera el programa en GNU/Linux, vea el ejemplo `mouse_event` para mas detalles. *.* obligatorio: código fuente del programa, ya sea en archivos .c, .h, .cc, .py etc. README obligatorio: una breve explicación del programa AUTHORS obligatorio: créditos de los autores del ejemplo e información de contacto. COPYING obligatorio: copia de la licencia utilizada, generalmente será GPL 2

También puede utilizar las herramientas para gestión de proyectos `autotools`, que utilizan un esquema de organización similar.

Evite por todos los medios generar un proyecto dependiente de un entorno de desarrollo, los usuarios que descarguen el programa perderán automáticamente el interés en su trabajo si encuentran indispensable utilizar programas como `kdevelop`, `anjuta`, `dev-cpp` u otros para `compilar` el ejemplo. Usted puede utilizar el programa que desee, pero asegúrese de incluir un archivo `Makefile` funcional para el resto de las personas.

En Internet existe mucha información acerca de cómo generar un archivo `Makefile`, aunque le recomendaría tomar como base el archivo incluido en el ejemplo `mouse_event` y adaptarlo a su programa.

¿ Por que Makefile ?

Porque el usuario simplemente debe ejecutar `make` y el programa se compilará. Make es la herramienta de automatización por excelencia, así que la encontrará en casi todos los sistemas (GNU, Windows, BSD, BeOS ... etc)

Archivos adicionales

Cuando envíe su mensaje intente añadir una captura de pantalla, incluso si su programa no utiliza gráficos, adjunte una captura de la salida en consola, o lo que deberíamos ver en pantalla.

Como formato de imagen preferimos PNG, evite cualquier otro tipo de archivo grafico.

Arte

Si utiliza gráficos, músicas o sonidos que no le pertenecen, deberá asegurarse de que podrá redistribuirlos bajo una licencia como GPL o Creative Common. En ambos casos deberá nombrar al autor original.

Le recomiendo visitar los siguientes sitios web para descargar algunos gráficos de libre uso:

  • SpriteLib GPL, por Ari Feldman: [web]
  • Colección de imágenes y texturas (estilo RPG): [web]

No incluya archivos ejecutables:

Cuando envíe el archivo principal (zip o tar.gz) no adjunte bibliotecas ni archivos ejecutables de ningún tipo (a.out, a.exe etc).

El objetivo de publicar los ejemplos en la web radica en ofrecer a los integrantes del grupo la posibilidad de `compilar` y `estudiar` el programa en detalle de manera sencilla. Adjuntar ejecutables no ayuda en absoluto, solo lograría aumentar el tamaño del archivo.

Licencia

Todo ejemplo debe utilizar una licencia de Software Libre compatible con la Licencia Pública General de GNU (GPL versión 2).

Adjunte una copia de su licencia:

Al principio de cada archivo fuente deberá añadir un mensaje de información acerca de la licencia utilizada.

Este es un ejemplo de encabezado para la licencia GPL 2:

/*
 * Copyright (C) ESTE_AÑO SU_NOMBRE
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 
 * 02111-1307  USA
 */

También debería incluir una copia del archivo COPYING en el directorio principal del programa.

Un consejo, reutilice otros ejemplos:

Como todos los ejemplos se distribuyen bajo la licencia GPL, usted puede utilizar esos códigos para realizar su propio ejemplo, incluso podría crear otros programas a partir de un ejemplo 1.

No crea que deberá empezar de cero cada vez, tome un ejemplo de base y continúe desde ahí, para mejorarlo o cambiar de rumbo; le resultará mucho mas fácil y puede que el autor original se sienta alagado por ello, ya que usted lo deberá mencionar.

Notas:
1 - siempre y cuando respete los términos de la licencia: su nuevo programa deberá ser Software Libre bajo la licencia GPL.

© 2006 Hugo Ruscitti