daltomi/8bpl
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
$rev.: alpha, game template ╔══════════════════════════╗ 8-bit por Linux - 8bpl ╚══════════════════════════╝ ⬢ Repositorio: https://codeberg.org/daltomi/8bpl ► Introducción: ⚡Importante: proyecto sólo para desarrolladores y/o colaboradores en general. Si usted es un usuario debería obtener el archivo de distribución .tar.gz que contiene el código fuente del juego para ser compilado e instalado en el sistema. ⬢ Descripción: Hacemos juegos para GNU/Linux en el que cualquier persona puede participar. Si eres un programador o creador de cualquier contenido multimedia: audio, gráficos, o si quieres aportar ideas al juego como un nuevo personaje, si quieres ayudar con la documentación o encontrar errores de licenciamiento o ayudar con el testeo del juego, o si quieres unirte al equipo de arte y ayudarlos mientras aprendes cosas nuevas, o al equipo de programación y ayudar a encontrar 'bugs' y mejoras tú habilidades de programación, en fin, cualquier ayuda que quieras aportar eres bienvenido :) El corazón del proyecto es el motor gráfico llamado Tilengine. Visite www.tilengine.org Con éste motor gráfico podemos obtener como resultado juegos de apariencia (y funcionamiento) al estilo retro. El lenguaje de programación que usamos es C (C11). El idioma principal de comunicación es el español pero se mantiene algunas normas ya establecidas en las cuales se usa el inglés, por ejemplo, para nombres de archivos, identificadores de recursos, programación, etc... ► Tecnicismos: ⬢ Licencias: El proyecto usa MPL-2.0 para el código fuente, así como también Tilengine. Por favor, vea las demás licencias en 'lib/'. Si no encuentra el archivo 'LICENSE' indica que es de dominio publico o el autor del proyecto no propuso ningún archivo 'LICENSE' En 'data/assets' encontrará el archivo 'licenses.txt' que indica todas las licencias de los trabajos multimedia o cualquier otro archivo que se use en el juego; es una lista con el nombre de archivo, su 'URL', nombre de autor y tipo de licencia. ⬢ Créditos del desarrollo: Lea el archivo 'CREDITS' ⬢ Dependencias internas: - librerías de desarrollo: SDL2, SDL2-Mixer y afines - compilador gcc (o clang), soporte C11 - depurador gdb - autotools (autoconf, automake, etc) - git Nota: existen otras librerías que ya se incluyen internamente al proyecto como: 'Tilengine', 'pico_headers', etc. Este proyecto utiliza 'git' como 'SCM (Source Code Management)'. Los parches se esperan vía un 'pull request' remoto o como archivo adjunto vía los canales de comunicación de los desarrolladores (email, chat, etc) (ver archivo 'CREDITS') ⚡Importante: antes de enviar cualquier parche, debe hacer un 'git diff --check' y resolver cualquier espacio en blanco que se le indique. ⬢ Funcionamiento básico del motor gráfico Tilengine(*): Se basa en el uso de 'tiilemaps' y 'tilesets' creados con el programa Tiled(**). No siempre se usará 'tilemaps', dependerá el tipo de juego. Para las animaciones de 'sprites' se utiliza un archivo de imagen PNG como 'spritesheet' y un archivo de texto como "recorte" a base se coordenadas: X,Y,Ancho,Alto; una animación por línea de texto. Para la configuración de la animación se utiliza un archivo XML de extensión SQX: identificador de la animación, retraso en fotogramas, etc. Para más información lea el archivo FAQ o directamente consulte el sitio de Tilengine(*) para ver ejemplos. (*) www.tilengine.org (**) www.mapeditor.org ════════════════════════════════════════════════════════════════════ A continuación se indica los pasos para compilar el código fuente del proyecto. ► Pasos a realizar: 1) Autotools: $ autoreconf -fi 2) Configurar: ⚡Siempre defina los siguientes nombres: 'DEVEL' y 'DEBUG'. ⚡Siempre active el 'flag' de depuración. $ ./configure CFLAGS="-g -O2 -Wall -Wextra -Wpedantic" \ CPPFLAGS="-DDEBUG -DDEVEL" La definición 'DEVEL' activa la búsqueda de los 'assets' del juego en el directorio del proyecto: 'data/assets' Sugerencia: si necesita reconfigurar utilice 'config.status' el cual guarda las opciones del 'CFLAGS' anterior, ejecute: $ ./config.status --recheck Para ver la configuración actual: $ ./config.status --config 3) Compilar: $ make Nota: lo primero en compilar son las librerías de uso interno del proyecto, ver 'lib/'. ⚡Éstas librerías muestran muchos mensajes del compilador en forma de 'warning'. No se pretende en éste proyecto "limpiar" el trabajo de otros. Se opta por ignorar los mensajes del compilador para esas librerías externas. De todas maneras una vez compiladas ya no se recompilan al menos que se ejecute 'make clean' ⚡Sugerencia: puede especificar el número de trabajos que 'make' ejecuta simultáneamente con la opción '-j' $ make -j 3 4) Ejecutar el juego: $ ./game Nota: el nombre puede variar al memento de escribir este 'README'. Nota: no olvide definir 'DEVEL' en el paso 2. ════════════════════════════════════════════════════════════════════ ► Editar código fuente: Cualquier editor que soporte UTF-8. Sugerencia: instale el programa 'ctags' y genere el archivo 'tags'. $ make ctags Nota: se busca forzosamente en '/usr/include/SDL2', si fuera necesario edite 'Makefile.am' y agregue otro. Nota: el archivo 'tags' se elimina al ejecutar 'make clean', en ese caso deberá volverlo a generar. ⚡Para el estilo de código lo más importante es usar 4 espacios en lugar de tabuladores. ⚡El ancho de columna del archivo es de 80 caracteres, aunque se permite entre 2 o 3 caracteres más allá de ese límite. ► Testear distribución: Opcional para los colaboradores en general, pero obligatorio antes de distribuir el proyecto al usuario final. $ make ditscheck Si se produce con éxito el archivo distribución .tar.gz lo siguiente es testear el mismo. Nota: el nombre 'game' puede variar al memento de escribir este 'README'. $ tar xzf game.tar.gz -C /tmp/ $ cd /tmp/game $ ./configure CFLAGS="-O2" --prefix=/tmp/test $ make install $ cd /tmp/test $ ./bin/game ► Reporte de errores: - de configuración: Lea los informes del archivo config.log. Si le es posible incluya el archivo como adjunto en su reporte. ⚡Nota de privacidad: éste archivo config.log puede mostrar su nombre de '$HOME' entre otros datos de su sistema. Revíselo antes de enviarlo como adjunto en un reporte. - de compilación: Lea los informes de registro que se muestran en su terminal e inclúyalos en su reporte. - de ejecución: Lea los informes de registro que se muestran en su terminal e inclúyalos en su reporte. - de depuración: Active los siguientes 'flags' de gdb: 'set logging on' 'set logging overwrite on' Luego comparta el archivo de registro: 'gdb.txt' ════════════════════════════════════════════════════════════════════ ► Créditos del desarrollo: Lea el archivo 'CREDITS'