Mi diario (III): el “set-up” de las herramientas

Ejemplo de Scroll con CPCRSLibEn esta tercera entrega de Mi Diario, Fran Fernández (@ronsonmaria) nos cuenta las herramientas que utiliza para el desarrollo de su videojuego en Amstrad CPC, su uso y configuración. Además, nos aporta interesantes fuentes de información donde acudir para aprender más sobre el funcionamiento del CPC y las herramientas, y nos da unos consejos para ponernos en marcha en el divertido camino del desarrollo de nuestros propios videojuegos.

Configuración y herramientas

Retro Game Asset Studio (RGAS)
Retro Game Asset Studio (RGAS)

Una vez que tenemos claro que videojuego queremos hacer, nos hemos puesto manos a la obra para llevar a cabo su implementación. En cuanto a las artes gráficas, he optado por recomendar a Manuel Ferri el uso de esta herramienta: Retro Game Asset Studio (RGAS). Se trata de un software libre que permite crear gráficos (sprites y tiles) para ordenadores de 8 bits como ZX Spectrum, Commodore y Amstrad CPC. Con esta herramienta Manuel podrá implementar todos los artes del juego propuestos en la fase de diseño.

Algo menos “inmediato” es ponerse a trabajar con la parte del desarrollo de software. He hablado con varios gurús de la programación de videojuegos para este tipo de máquinas y visitado páginas donde se puede uno informar sobre que herramientas / frameworks / librerias usar para llevar a cabo esta tarea. Después de mucho investigar me he quedado con las siguientes herramientas:
  • Como framework principal he optado por CPC-DEV-TOOL-CHAIN. Se trata de un framework desarrollado por cpcitor mediante el cual, haciendo uso de C y ensamblador para el Z80, conseguiremos generar archivos con extensión DSK o CDT para poder usarlos en nuestro emulador de Amstrad.
  • Tal y como os comenté en el Episodio 0, presento un podcast dedicado al mundo Apple y a la tecnonostalgia: como comprenderéis, mi máquina principal donde trabajo es un MacBook Air de finales del 2011. Aparte de este ordenador, tengo un PC de los denominados “Pepinos para jugar” con Windows 8.1. Para usar este framework se necesita Linux o, en su defecto, Windows con Cygwin.
    Ubuntu 14.04 en VirtualBox
    Ubuntu 14.04 en VirtualBox

    Así pues, he decidido hacer uso de VirtualBox, un software de gestión de máquinas virtuales donde crearme un equipo virtual e instalar Linux Ubuntu 14.04 para poder desarrollar con este framework. En la propia página del framework podéis encontrar detalladas todas las instrucciones para dejarlo instalado (en inglés) en vuestra máquina virtual.

Nota: os recomendamos Programando en C para Amstrad CPC en el canal del Profesor RetroMan, para quienes uséis Windows.

  • Como ya sabréis un compilador cruzado es aquel que es capaz de generar código para una plataforma distinta a la que se está ejecutando el compilador. En este caso vamos a usar Small Devices C Compiler (SDCC) como compilador cruzado para generar código para Amstrad en nuestra máquina virtual con Ubuntu 14.04. Es importante que conozcáis que, a día de hoy, existen dos famosos compiladores cruzados dentro del desarrollo de aplicaciones para ordenadores con procesador Z80: Z88DK y SDCC. He optado por el segundo por el tema de la velocidad, rendimiento y tamaño de los binarios. En CPCMania, tenéis un artículo de Oscar Sánchez (Mochilote) con pruebas y testeos de ambos compiladores. Con esta comparativa podéis decidir vosotros con cual os quedáis. Con el framwork de cpcitor podréis generar binarios usando ambos compiladores sin problema.
  • Y ahora,  ¿Cómo vamos a hacer para dibujar sprites y tiles dentro del juego?
    • WinAPE ejecutado con wine en Ubuntu 14.04
      WinAPE ejecutado con wine en Ubuntu 14.04

      Podemos utilizar la librería llamada CPCRSlib, creada por Artaburu de ESPSoft, que permite dibujar sprites y tiles usando código escrito en C. Hay que decir que ahora estoy testeando los ejemplos que vienen en la documentación de las mismas, dentro de la página del proyecto. La versión oficial sólo funciona correctamente si añadimos esta línea

      CFLAGS=−DVFMTSC−>−−DVFMTSC−>−fomit−DVFMTSC−>−frame−DVFMTSC−>−pointer
      

      al fichero cdtc_project.conf de nuestro proyecto en CPC-dev-tool-chain. Sin embargo, algunos gurús de la programación me han pasado una versión que arregla este pequeño inconveniente de la oficial.

  • Como editor de texto para desarrollar en Linux utilizo Geany, que me sirve de entorno de desarrollo (Integrated Development Environment, IDE, en inglés) para crear software en C/C++, y que funciona bastante bien para este tipo de proyectos. Finalmente, para compilar el proyecto, utilizo el terminal de línea de comandos.

Consejos y referencias

Ejemplo de scroll, tiles y sprites con CPCRSLib
Ejemplo de scroll, tiles y sprites con CPCRSLib

Ya hemos visto la configuración de hardware y software con la que voy a usar para llevar a cabo la programación de este videojuego. Ahora conviene verse algunos ejemplos como Save The Humor para ver el funcionamiento básico  de esta librería y así poder adaptarla a nuestro juego. También es útil consultar páginas de programación como Amstrad.es, ESPsoft y CPCMania, donde hay excelentes tutoriales de programación usando toda la tecnología descrita en este artículo.

Para finalizar, os contaré un consejo que un gran amigo mío me dijo una vez: “Es muy importante no pegarse un atracón a leer manuales y manuales de cualquier framework o lenguaje de programación, lo más interesante es aprender tres o cuatro conceptos y aplicarlos en un ejemplo“. Pues eso, diseñad un juego y empezad a implementarlo inmediatamente… ¿A qué estáis esperando? 🙂

Deja un comentario