Skip to content

daltomi/8bpl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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'

About

8-bit por Linux - 8bpl

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages