Instalar Allegro 4 / Allegro 5

Recientemente el blog ha recibido algunas visitas de búsquedas relacionadas con Allegro (principalmente en su versión 4.x). En posts anteriores escribí la forma de compilar Allegro para Debian Jessie ya que la versión en el repositorio estable era muy antigua pero Debian Stretch ya tiene una versión más reciente en el repositorio estable así que, si eres usuario de Linux, la forma más sencilla de instalar Allegro es instalar los paquetes correspondientes desde el gestor de paquetes de tu distro.

Para Allegro 4 basta con instalar los paquetes liballegro4.4 y liballegro4-dev.  También se pueden instalar las librerías de soporte para Allegro 4 como liballeggl4.4, libguichan-allegro, libjpgalleg4.4, libloadpng4.4, liblogg4.4 y sus respectivos paquetes de desarrollo *-dev. Nota que también está en el repositorio el paquete libopenlayer que ofrece acelaración por hardware para Allegro 4 pero si quieres acelaración por hardware deberías optar mejor por Allegro 5.

Para instalar Allegro 5 debes instalar todos sus paquetes y addons: liballegro5.2, liballegro-acodec5.2, liballegro-audio5.2, liballegro-dialog5.2, liballegro-image5.2, liballegro-physfs5.2, liballegro-ttf5.2, liballegro-video5.2 y sus respectivos paquetes de desarrollo *-dev.

También puedes instalar la documentación instalando los paquetes allegro4-doc y allegro5-doc.

Ahora bien, si eres usuario de Windows, puedes compilar Allegro manualmente o puedes descargar las librerías precompiladas desde esta página. Nota que estos archivos contienen las librerías para compilar programas usando Allegro y también contienen los archivos DLL necesarios para ejecutar los programas de Allegro. Yo solía usar estas versiones cuando usaba Windows y el compilador MinGW. Notarás que estas librerías precompiladas de Allegro son un poco antiguas, con la versión 5.0.10 de Allegro 5 y se pueden instalar en versiones viejas de MinGW o MS Visual Studio. Para versiones más recientes de Allegro o para instalar en compiladores más recientes puedes usar las versiones precompiladas directo de la página de Allegro que incluye varias opciones para instalar las versiones más recientes de Allegro en compiladores recientes.

Tarea de programación C: El juego de la vida de Conway

El juego de la vida de Conway es una tarea clásica de cualquier curso de programación. El juego consiste en un conjunto de reglas sencillas que definen si las células en un tablero viven o mueren. Es interesante observar cómo estas sencillas reglas pueden formar patrones complejos.

conway

La versión del juego de la vida en este post fue escrita en C con Allegro 5 como un reto de programación de 24 horas y decidí usar un tablero de tamaño relativamente grande, una ventana de 800×600 pixeles donde cada pixel es una célula, ya que algunos patrones complejos son difíciles de observar si se elige un tablero muy pequeño.

Hay que tener en cuenta que, debido al límite de tiempo, sólo estaba enfocado en terminar el reto aunque el código no fuera muy eficiente, por lo que esta versión puede fácilmente llevarse el 100% del CPU. Tengo algunas ideas para optimizar el código, editaré este post cuando aplique los cambios.

Para compilar en Linux simplemente descarga el código desde github y compila usando cmake y make:

monstruosoft@debian:~/life$ mkdir build
monstruosoft@debian:~/life$ cd build
monstruosoft@debian:~/life/build$ cmake ..
monstruosoft@debian:~/life/build$ make

El programa también debe compilarse correctamente en Windows si tienes Allegro 5 instalado.

[EDIT:] He actualizado el código en github. Las optimizaciones que hice no ayudaron mucho a reducir el uso del CPU durante la simulación pero al menos se corrigió el uso del 100% del CPU cuando la simulación estaba inactiva.

Reto de la toja azul – monstrominos

monstrominos es mi propio proyecto para el Reto de la toja azul de monstrochan. Se trata de un clón de Tetris que cuenta con dos versiones, una usando Allegro 5 y otra usando ncurses que permite correr el juego desde la terminal. Las instrucciones para compilar en Linux están incluídas pero compilar la versión de Allegro 5 debe ser fácil en Windows. En el futuro espero poder agregar la opción de compilar en Windows usando CMake así como incluir más efectos, sistema de puntuación, previsualización de la siguiente pieza, etc..

monstro-1

Instalar Allegro 4 y Allegro 5 en Debian Stretch

En posts anteriores explicaba la forma de compilar Allegro en Debian Jessie debido a que las versiones de Allegro en el repositorio estable de Debian Jessie eran considerablemente viejas pero ese ya no es el caso en Debian Stretch que cuenta en el repositorio estable con la versión 4.4 y 5.2 de Allegro por lo que podemos simplemente instalar los paquetes de Allegro, liballegro4-dev y liballegro5-dev, desde el gestor de paquetes. También puedes instalar desde el gestor de paquetes otros paquetes relacionados con Allegro como por ejemplo libloadpng4-dev, libjpgalleg4-dev, liballeggl4-dev, y los addons de Allegro 5, liballegro-*-dev.

Por supuesto, si quieres usar la versión más reciente de Allegro 5 aún puedes compilarlo manualmente usando las instrucciones publicadas anteriormente en el blog.

Compilar la librería LoadPNG de Allegro 4

En un post anterior compilamos manualmente Allegro 4 en Linux y al hacerlo únicamente lo compilamos con las opciones predeterminadas, es decir que es probable que al compilarlo obtuvieras mensajes como los siguientes:

-- Could NOT find ZLIB (missing: ZLIB_LIBRARY ZLIB_INCLUDE_DIR)
-- Could NOT find PNG (missing: PNG_LIBRARY PNG_PNG_INCLUDE_DIR)
-- Could NOT find VORBIS (missing: OGG_INCLUDE_DIR VORBIS_INCLUDE_DIR OGG_LIBRARY VORBIS_LIBRARY VORBISFILE_LIBRARY)

Estos mensajes indican que no se pudieron encontrar ciertas librerías que complementan Allegro pero que no son indispensables para su funcionamiento.

Si bien dichas librerías no son indispensables, en esta ocasión tengo un proyecto que requiere la librería LoadPNG que viene integrada como parte de Allegro 4.4 y que sirve para cargar imágenes en formato PNG pero que requiere la librería libpng para poderse compilar. Podemos descargar el código de libpng y compilarla manualmente pero también se puede instalar fácilmente desde el gestor de paquetes de tu distro de Linux. Esta vez tomaré el camino fácil :P. Al revisar en mi distro de Linux, pude ver que ya tenía instalado el paquete libpng12-0 pero en este caso necesitamos instalar también el paquete para desarrolladores, libpng12-dev.

Una vez que hayas instalado los paquetes de desarrollo de libpng, estás listo para compilar la librería LoadPNG de Allegro; para hacerlo, simplemente hay que ir a la carpeta en la que compilamos previamente Allegro y volver a ejecutar los comandos para compilar Allegro, por ejemplo:

monstruosoft@PC:~$ cd ~/allegro-4.4.2/build
monstruosoft@PC:~/allegro-4.4.2/build$ cmake ..
monstruosoft@PC:~/allegro-4.4.2/build$ make
monstruosoft@PC:~/allegro-4.4.2/build$ make install DESTDIR=/home/monstruosoft/libs

Nota que el proceso será más rápido ya que sólo unos cuantos archivos tendrán que ser compilados. Una vez que el proceso termine, podrás ver que la librería LoadPNG está instalada y la puedes usar como el resto de las librerías de Allegro.

Compilar tu primer programa de Allegro 5 en Linux

En un post anterior hablamos del proceso para compilar tu primer programa de Allegro 4 en Linux. Compilar tu primer programa de Allegro 5 no es diferente; de hecho las reglas básicas para compilar son siempre las mismas así que no repetiré los detalles ya que si encuentras problemas puedes usar el post sobre Allegro 4 como referencia. Recuerda que en la mayoría de los casos, si encuentras errores durante la compilación, es posible que se deba a que no tienes bien definidas las rutas de las librerías que usa tu programa. Eso o que tu código tiene errores, claro :P.

Read More

Compilar tu primer programa de Allegro 4 en Linux

Si has seguido los posts anteriores sobre Allegro es probable que ahora lo tengas instalado en tu distro de Linux. Si lo instalaste desde el repositorio de software de tu distro entonces no deberías tener problemas para compilar tus programas pero si lo instalaste manualmente en una carpeta personal entonces tal vez te encuentres con algún error al intentar compilar tu programa. Este post describe algunos de los errores más comunes al intentar compilar tus programas desde la línea de comandos en Linux.

Read More