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



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
josuha dijo
manda para instalar
21 Septiembre 2006 | 10:37 PM