Streets Of Doom Arena

En la realización del cursillo Introducció als videojocs del Jedi, tuvimos que programar un pequeño videojuego a elegir entre 2D y 3D. Como yo ya tenía algo de práctica con OpenGL me aventuré a probar las técnicas 2D para el desarrollo de un pequeño videojuego sencillo.

Se suponía que lo teníamos que desarrollar con DirectX pero yo no tengo ningún Hasefroch instalado así que decidí pasar de la base de código que se nos ofrecía para comenzar y me puse a programar desde cero con la librería SDL. Reconozco que al profesor no le hizo mucha gracia el cambio pero los que me conocen saben que a veces me gusta tocar un poco las narices.

La organización y el código en general es un poco caótico y poco estructurado. Pero no teníamos demasiado tiempo (y menos yo que partía con desventaja respecto a los demás) para andarnos con cuestiones filosóficas sobre el diseño lógico.

Descarga

Modo de uso

El objetivo es liquidar a todos los enemigos. El modo de juego es un calco al battle mode del Golden Axe. Para mover el personaje por la pantalla utiliza las teclas de dirección (las flechas) y para displarar utiliza la tecla CTRL.

Lo único a remarcar es que si quieres ejecutar en pantalla completa tienes que pasarle el parámetro -f al binario ejecutable, por ejemplo:

etanol@pescanova:~/soda$ ./soda -f

O en Hasefroch:

C:\Mis Documentos\soda_win32> soda.exe -f

Si quieres editar o añadir niveles puedes editar el fichero round_list.txt que se encuentra en el subdirectorio stuff.

Compilación

UNIX

Para compilar en Linux, por ejemplo, basta con descomprimir y ejectuar make en el directorio creado. Se creará un ejecutable. Necesitas tener instalada la LibSDL y su versión de desarrollo. En Debian Sid basta con ejectuar:

etanol@pescanova:~# apt-get install libsdl1.2-dev

Tienes la opción de compilar con optimizaciones propias de tu procesador. El Makefile se puede modificar fácilmente para que esto sea así. Si editas este fichero y vas a la línea 10 te encontrarás algo como lo siguiente:

ARCH :=

Pues basta que pongas cualquier secuencia de flags para el GCC que sean específicas de tu procesador. Por ejemplo, si tienes un Centrino puedes poner esto:

ARCH := -march=pentium-m

Win32

Esta versión se compila con MinGW. Aquí voy a explicar cómo compilar desde Debian Sid el ejecutable para Win32. Es sencillísimo.

Primero debes tener el compilador cruzado instalado. Basta con hacer:

etanol@pescanova:~# apt-get install mingw32

Esto debería instalar los paquetes adicionales mingw32-binutils y mingw32-runtime. Seguidamente necesitas la versión de LibSDL para compilar con MinGW que la puedes descargar aquí. Tal y como viene el Makefile debes extraer el paquete en tu $HOME de forma que se cree el directorio $HOME/SDL-1.2.9.

Finalmente vuelve al directorio con el código fuente del juego y ejecuta alguno de estos dos comandos:

etanol@pescanova:~/soda$ make soda.exe
etanol@pescanova:~/soda$ make windist

El primero sólo crea el ejecutable. El segundo ejecuta al primero y luego crea un fichero comprimido llamado soda_win32.zip que ya contiene la librería dinámica de LibSDL.

Mac OSX

Antes de compilar hay que parchear el código fuente. En realidad, del código fuente no se modifica nada; el parche únicamente modifica el Makefile, añade algunos ficheros necesarios para compilar con SDL en Mac OS X y un script para ejecutar el binario resultante. Para parchear es tan sencillo como:

etanol@pescanova:~$ unzip soda.zip
etanol@pescanova:~$ cd soda
etanol@pescanova:~/soda$ zcat ../soda_osx.patch.gz | patch -p1

Descarga la versión 1.2 de SDL para Mac OS X; lo más sencillo es utilizar la versión compilada. Una vez montada la imagen, copia el directorio SDL.framework al directorio que contiene el código de SODA. A partir de aquí, ya se puede ejecutar make.

NOTA: El binario resultante de compilar se llama soda.bin. Para ejecutar el juego el parche incorpora un script para utilizar la versión de LibSDL que te descargaste. Así pues, no olvides ponerle permiso de ejecución (chmod u+x soda) antes de intentar ejecutar.