17 septiembre 2008

Instalar Ultrastar, el clon de Singstar

Este verano he conocido un juego que me sonaba pero que me daba exactamente lo mismo hasta esos momentos, el Singstar, exclusivo de la consola Playstation 2 y ahora de la 3. Para el que no lo conozca es un juego tipo karaoke que puntúa cómo cantas tu solo, contra otro, en equipo, etc. Van saliendo unas barras en la pantalla sobre un pentagrama que te indican cual será la nota que corresponde a la letra que va indicando simultáneamente en la parte inferior de la pantalla. Barras superpuestas de otro color indican lo que vas haciendo. Una cifra numérica va aumentando indicando el nivel que tienes. Sencillo y un auténtico vicio. Sobre todo cuando llegas de primeras al máximo nivel y hay alguna persona que tiene un nivel parecido, porque claro, cuando superas a todos no tiene gracia, ni en este juego ni en ninguno, porque no quieren jugar. Ejem. Dicha la fantasmada, seguimos diciendo que han sacado varios discos, dado el éxito, con más de 15 canciones cada uno. Cada canción incluye el video, que por defecto se ve tras el pentagrama.

En otras consolas van a sacar sus propios clones, pero lo que nos interesa es que existe un clon de singstar libre, el Ultrastar. De éste hay varias versiones por diversas cuestiones: Ultrastar, ultrastar deluxe y ultrastar ng (nueva generación).
El ultrastar es el primero que salió y tiene un aspecto prácticamente idéntico al singstar. Un clon 100%. El deluxe apareció porque hubo un desacuerdo en su desarrollo y tiene bastantes cambios en su aspecto, pero la mecánica es idéntica. Ambos están programados con Delphi. Esto es un problema para la portabilidad, así que surgió otra versión, la ng, realizada desde cero en C++, este sí totalmente compatible con todos los sistemas. El problema es que está muy verde y sólo puede jugar uno: digamos que sirve para practicar. Pero hay buenas noticias, el deluxe está desarrollándose también para linux, gracias a que existe el proyecto Lazarus, un delphi libre.

Tenemos varios lugares donde conseguir canciones, como este (con conversiones de ps2 a ultrastar) y su sitio dedicado con contribuciones de la gente. Pueden encontrarse más, pero aquí ya hay de sobra.

Si queremos usar el ultrastar o el ultrastar deluxe en toda su gloria tendremos que tener windows. Dicen que funciona con Wine, pero no en mi caso. Si os funciona, comentadlo. Vamos a ver ahora las versiones nativas de Linux.

En Ubuntu Hardy tenemos una versión anticuada de ultrastar ng en los repositorios. El único problema que tiene es que tenemos que ejecutarla desde la consola indicando el directorio donde tenemos las canciones, que no es grave, pero debería poderse elegir en la configuración. En la próxima 8.10 está la última versión, que corrige este problema en parte, pero nos fuerza a crear un directorio .ultrastar y dentro de éste, songs. Después, lo más cómodo será crear un enlace simbólico a este directorio oculto para ir metiendo canciones nuevas.
Para instalarlo en ubuntu y debian, simplemente buscamos en synaptic o en "Añadir o quitar" la palabra "ultrastar", doble clic cuando salga el resultado y aplicar. O en la consola (aplicaciones>accesorios>terminal:
sudo apt-get install ultrastar-ng-gstreamer
Y ya nos podemos poner a cantar llamando a ultrastar-ng directoriocanciones.

Si queremos la última versión en Hardy porque somos unos ansiosos podemos descargarlo desde el repositorio de debian, pero necesitaremos instalar también previamente unas cuantas dependencias. Por este orden, descargaremos e instalaremos estos paquetes desde packages.debian.org:

libasound2_1.0.16-2_i386.deb
libboost-program-options1.34.1_1.34.1-11_i386.deb
libboost-regex1.34.1_1.34.1-11_i386.deb
libboost-thread1.34.1_1.34.1-11_i386.deb
ultrastar-ng_0.2.1-1_all.deb
ultrastar-ng-gstreamer_0.2.1-1_i386.deb


Si queréis hacer el experimento que viene a continuación os molestará el primer paquete por ser de una versión superior a la de los repositorios.

Como tengo lazarus instalado, he probado a descargar y compilar las fuentes de ultrastar deluxe destinadas a linux, que están en un estado alfa, así que muy bien no funciona. Si queréis cacharrear, como voy a hacer yo, están aquí. Para compilar tiene un archivo configure en la raiz que nos dirá lo que nos falta. Lo primero recomendable supongo que será instalar freepascal, así que hay que instalar todo lo que empiece por fp-. Lazarus no es imprescindible para compilar, pero si queréis tocar código, es más que recomendable. Y sobre lo que nos pide ultrastar, a mi me faltaba lo siguiente, así que pongo la linea para instalar:
sudo apt-get install libsdl1.2-dev libsqlite3-dev libavcodec-dev libavformat-dev portaudio19-dev libasound2-dev libsdl-image1.2-dev

Una vez compilado (en el directorio "game") resulta que tiene un problema con mi ATI por falta de memoria, así que a veces falla, como todas las aplicaciones SDL, y me deja el puntero del ratón tonto hasta que vuelvo a entrar. Configurándolo para que sea una ventana parece dar menos problemas. También falla al mostrar los videos, se quedan escondidos. Si tenemos canciones (en el subdirectorio songs) que tengan algo raro, el programa fallará sin entrar siquiera, así que id copiando una a una para ver cual puede ser la responsable.

No hay comentarios: