Publicidad:
La Coctelera

LENINGRADO

21 Agosto 2006

Instalar el duke nukem 3d en Linux (puerto jonof)

Bueno, en mi afán por expandir el software libre y los juegos geniales, voy a explicar como instalar este juego en Linux, con el puerto de alta resolución, y control por ratón, además del build...

Cosas necesarias (con Debian, se instalan con un simple apt-get install )


-stow
-gcc3.4 (bueno, yo he usado sin problemas el 4.0)
-nasm
-todos los sdl y cl-sdl (si queréis musica y sonido), con la extensión *-dev
-Código fuente del jfbuild
-Codigo fuente del jfduke3d
-Parche para el build
-Parche para el duke
-Fmod (para sonido)
-El archivo duke3d.grp (no puedo añadirlo, porque tiene licencia, pero puedes conseguirlo con el emule, amule, firewire...), te aconsejo el de la version atomica, claro, si tienes problemas, escribeme.


antes de nada hay que instalar las librerías necesarias para compilar el juego. La mas rara de instalar es fmod por lo que vamos a explicarla la primera de todas.
FMOD

Descomprimimos el fichero fmodapi3741linux.tar.gz que nos creará el directorio fmodapi3741linux. Dentro de ese directorio veremos varios mas. Solo nos interesa el directorio api. La manera mas limpia de instalar la librería es utilizando stow. Creamos el directorio /usr/local/stow/fmod y dentro de el toda la jerarquía de directorios necesaria. Esto hay que hacerlo a mano ya que fmod no trae un makefile. Estos son los pasos.

# cd fmodapi3741linux/api
# mkdir -p /usr/local/stow/fmod/include/fmod
# mkdir -p /usr/local/stow/fmod/lib
# cp libfmod-3.74.1.so /usr/local/stow/fmod/lib
# cp inc/* /usr/local/stow/fmod/include/fmod
# ln -s /usr/local/stow/fmod/lib/libfmod-3.74.1.so /usr/local/stow/fmod/lib/libfmod.so
# cd /usr/local/stow
# stow fmod
SDL

Ahora hay que instalar las librerías SDL. En mi caso, uso Ubuntu, sería así de sencillo (sería lo mismo si usas Debian, Molinux, Guadalinex o cualquier otro derivado de Debian).

# apt-get install libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-ttf2.0-dev libsdl1.2-dev
DUKE3D.GRP

Para obtener el fichero duke3d.grp necesitaremos el compresor orange. Así que instalamos orange y para simplificar mas las cosas el descompresor universal unp.

# apt-get install unp orange unzip
$ unzip 3dduke13.zip
$ unp DN3DSW13.SHR

Con esto tenemos disponible el fichero DUKE3D.GRP. Es importante pasar el nombre a minúsculas ya que si no no funcionará. Una manera sencilla es con el comando rename de esta forma.

$ rename 'y/A-Z/a-z/' DUKE3D.GRP

Creo que con esto tenemos todos los ingredientes listos. Si faltase alguna librería decirlo en los comentarios, pero creo que ya está todo lo necesario.
Compilación del juego

Vamos a crearnos una carpeta para meter todo lo que vamos necesitando. Yo he creado un directorio llamado jonof, el nombre da igual. Dentro he puesto el código fuente y los parches de JFBuild y JFDuke.

En primer lugar descomprimimos tanto jfbuild_src_20051009.zip como jfduke3d_src_20051009.zip y después aplicamos los parches. Estos son los pasos.

$ cd jonof
$ unzip jfbuild_src_20051009.zip jfduke3d_src_20051009.zip
$ patch -p0 < jfbuild_src_20051009.patch
$ patch -p0 < jfduke3d_src_20051009.patch
$ ln -s jfbuild_src_20051009 build

Los parches son para solucionar un problema con el sonido en Linux. El autor está trabajando en un sistema de sonido propio para la próxima version (JFAud), pero aun no está disponible y está descuidando la implementación actual. Menos mal que alguien en el foro se curró un parche transitorio para solucionarlo.

Una vez hecho esto tendremos que retocar ligeramente el Makefile de jfduke, pero tranquilos que es tarea fácil. Abrimos el fichero Makefile con el editor de texto que queramos (no con openoffice.org) y en la línea 39 veremos lo siguiente.

-I$(INC:/=) -I$(EINC:/=) -I$(SRC)jmact -I$(SRC)jaudiolib #-I../jfaud/inc

Pues bien lo retocamos para que quede así.

-I$(INC:/=) -I$(EINC:/=) -I$(SRC)jmact -I$(SRC)jaudiolib -I/usr/local/include/fmod #-I../jfaud/inc

Como veis he añadido la ruta donde he puesto la librería fmod, es tan solo esa la modificación que hay que hacer.

Después de todo esto, cruzamos los dedos y ejecutamos lo siguiente.

$ make CC=gcc-3.4

Si todo ha ido bien deberemos tener en el mismo directorio un ejecutable llamado duke3d y otro llamado build. Como habrás adivinado duke3d es el juego y build es el constructor de niveles.

Llegados a este punto lo único que necesitas es el fichero duke3d.grp que obtuvimos antes, tan solo es necesario copiarlo al directorio en el que te encuentras y lanzar el juego con:

$ ./duke3d
Cómo jugar

Si has llegado hasta aquí, ¡enhorabuena! Imagino que ahora querrás jugar con mas gente porque es lo que mas gracia tiene de este juego. Si os fijáis en el directorio donde esta el código fuente hay un fichero llamado releasenotes.html que explica como se lanza el modo multijugador.

Este juego no dispone de un servidor dedicado por lo que será necesario que uno de los jugadores sea el servidor y el resto clientes. Es necesario saber de antemano cuantos jugadores va a haber y que todos estos tengan la mismas versión del fichero duke3d.grp.

Vamos a explicarlo con un ejemplo. Supongamos que queremos organizar una partida entre tres jugadores.

* jugador1 : 66.249.93.104
* jugador2 : 68.142.197.86
* jugador3 : 212.85.32.12

Uno de los tres ha de ser el servidor, por ejemplo el jugador1. Para ello deberá lanzar el juego de esta forma

$ ./duke3d /net /n0:3

Los otros dos jugadores deberán lanzar el juego de esta otra forma

$ ./duke3d /net /n0 66.249.93.104

Hay que tener en cuenta que el jugador que haga de servidor necesita tener habilitada la salida por el puerto 23513 o bien cambiar el puerto por otro mediante el parámetro /pX donde X es el puerto escogido. Obviamente los demas jugadores también deberán poner el valor del nuevo puerto.

Mapas de usuario

Para jugar los mapas, hay dos opciones:

I)Desde el directorio donde hayáis descomprimido un mapa, con el ejecutable del duke 3d: $ ./duke3d -map

II)Desde el directorio $HOME (de usuario), copiar en la carpeta .jduke3d los mapas (es una carpeta oculta), ahí también esta el archivo de configuración del build. Cuando le deis a nuevo juego, elegis "user map", y apareceran todos los mapas de esa carpeta


servido por Iñigo 3 comentarios compártelo

3 comentarios · Escribe aquí tu comentario

josuha

josuha dijo

manda para instalar

21 Septiembre 2006 | 10:37 PM

leningrado

leningrado dijo

No se a que te refieres. ¿Te falta algun archivo?

24 Septiembre 2006 | 01:31 PM

Gabriel

Gabriel dijo

me falta el sonido, tengo solo la musica

10 Julio 2007 | 07:08 AM

Escribe tu comentario


Sobre mí

Avatar de Iñigo

LENINGRADO

Zizur Mayor, España
ver perfil »
contacto »
Una vez me dió por pensar, y me hice comunista. No se como me convencieron para que me hiciera un blog, y lo hice. He nacido para ser distinto a los demas. Aborrezco la mentalidad conservadora, y adoro la mayor parte de las cosas que teme dicha mentalidad: el sexo el heavy, la política, leer, y, en general, usar mis neuronas Free Web Counters
Web Site Counters

Fotos

Iñigo Alvarez Viu todavía no ha subido ninguna foto.

¡Anímale a hacerlo!

Buscar

suscríbete

Selecciona el agregador que utilices para suscribirte a este blog (también puedes obtener la URL de los feeds):

¿Qué es esto?

Crea tu blog gratis en La Coctelera