Archiv der Kategorie 'Linux Games'

Playing Quake II under Linux — MultiPlayer

Quake II Multiplayer (MP)
This article explains how to play Quake II MP under Linux. Nowadays, most Quake II server run r1q2 or similar/compatible servers that use an updated version of the Q2 protocol. This means that you need a modern Q2 client to join them. This article explains how to install such a client on Linux. The majority of the quake clients mentioned here do NOT support singleplayer Q2. See this article if you want to play SP Quake II Note that you‘ll need the file pak0.pak from your Quake II CDROM because the Q2 game media is NOT free, only the source code of Quake II is free.

Free Quake II engines
There are quite a few modern Q2 clients, but most of them only have experimental Linux support atm. I tried r1q2, EGL, aprq2 and quetoo in september 2008. Quetoo worked best, that’s why I‘ll use it for this article.

NOTE: This doesn‘t mean that the other Q2 clients are worse than quetoo or that they don‘t work, but I couldn‘t get them to work properly on Linux — may be my fault (I know that r1q2 and EGL both run like a charm on win32, so does the r1q2 server under Linux). I compiled the r1q2 client under Linux, but it segfaults (crashes). EGL wouldn‘t even compile. The aprq2 client compiled and I can play MP maps at remote servers with it, but it segfaults when I try to run a map locally. So here we go, quetoo is what we use.

Preparations
As mentioned above, quetoo (like the other clients mentioned above) is a Q2 engine only and you‘ll need the game media to use it. It’s easiest to have a Quake II directory containing all the game media ready and then just copy the quetoo executables there once they‘re compiled. On Debian Linux, doing the following is enough to prepare the Q2 directory (note that I assume you‘ve got pak0.pak from your Quake II CDROM as mentioned above):

# apt-get install quake2
# cp pak0.pak /usr/local/games/quake2/baseq2/

If you‘re using another Linux distribution, you may want to follow this article to prepare the Quake II directory.

Installing quetoo
The first step is to grab the quetoo source from the quetoo website. I grabbed version 0.6.1 in september 2008, the file should be named quetoo-0.6.1.tar.bz2 or similar. You‘ll then need to extract and compile it. :) Let’s get to work and extract the archive:


$ cd downloads/
$ tar xjf quetoo-0.6.1.tar.bz2
$ cd quetoo-0.6.1/

Ok, let’s now configure, compile and install quetoo. You‘ll have to tell it where the Q2 game media is — that’s the directory we prepared in the last step. On Debian Linux, this is /usr/local/games/quake2/. Locate the file pak0.pak if in doubt — it should be in the baseq2/ subdirectory of the directory you‘re looking for. I‘ll assume the Debian path from now on, adapt to your system if needed.

$ ./configure --datadir=/usr/local/games
$ make
$ su
# make install

Note that the last step has to be done as root (as indicated by the ‚#‘ in front of the command).

Coping with Library terror
If the ‚make‘ command fails, you‘re missing development versions of libraries that quetoo requires (or even a compiler and automake). To install the latter on Debian Etch, type

# apt-get install build-essential automake

You‘ll still need to install the libraries. This can be a bit tricky if this is your first compilation, but do not worry. Here’s how to cope with compile errors:

You should read the README file that comes with the software you want to compile first. It should tell you which libraries you need to compile it. Just install those from the package repository of your Linux distribution. If the README doesn‘t tell you which libraries you need, you‘ll have to find it out the hard way. :| Check the output of the ./configure command first. If this doesn‘t help and the make command fails, scroll up in the console and find the first error. You can often see or at least guess why it fails. Here’s an example error message from make:

gcc -DHAVE_CONFIG_H -I. -I.. -pipe -Wall -Werror -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/include -I/include -g -O2 -MT quetoo-gl_sdl.o -MD -MP -MF .deps/quetoo-gl_sdl.Tpo -c -o quetoo-gl_sdl.o `test -f 'gl_sdl.c' || echo './'`gl_sdl.c
gl_sdl.c:22:17: error: SDL.h: No such file or directory

As you may have guessed, we‘re missing SDL here. So search your package repository for SDL libraries. Here’s an example where I did this for Debian Etch:

# apt-cache search libsdl | grep dev
libsdl-console-dev – development files for libsdl-console
libsdl-gfx1.2-dev – development files for SDL_gfx
libsdl-image1.2-dev – development files for SDL 1.2 image loading libray
libsdl-mixer1.2-dev – development files for SDL1.2 mixer library
libsdl-net1.2-dev – Development files for SDL network library
libsdl-ocaml-dev – OCaml bindings for SDL – development files
libsdl-pango-dev – text rendering with Pango in SDL applications (development)
libsdl-sge-dev – development files for libsdl-sge
libsdl-sound1.2-dev – Development files for SDL_sound
libsdl-stretch-dev – development files for SDL_stretch library
libsdl-ttf2.0-dev – development files for SDL ttf library (version 2.0)
libsdl1.2-dev – Simple DirectMedia Layer development files

So let’s install the libsdl1.2 and libsdl1.2-dev libraries (you most likely already have the former):

apt-get install libsdl1.2 libsdl1.2-dev

Note: You need the development versions to compile, so if you need libsdl, be sure to install both libsdl and libsdl-dev (you could remove the -dev package once the compilation is complete, but you shouldn‘t unless you‘re very low on disk space because you‘ll need it to recompile the application or to compile the next version).

If everything went well, the last lint of the make output should read something like this:

make[1]: Leaving directory `/home/spirit/downloads/quetoo-0.6.1'

Congrats, you‘ve just compiled quetoo. :)

Finally: Running the game
The hard part is done and the # make install command (see above, don‘t forget it if you had trouble compiling and read the last part!) has already copied the quetoo executable to the proper directory. Just type quetoo to play Quake 2 MP.

Troubleshooting
If you don‘t see the enemies in MP you‘re missing the game data that comes with the Quake II 3.20 point release (the player models to be more specific). Get the file from the id Software FTP or a mirror and unzip it. It should be named q2-3.20-x86-full-ctf.exe — it’s not a win32 executable but a self-extracting zip archive though. Copy the pak files and the players/ directory to your quake2/baseq2/ folder.

Playing Quakeworld under Linux (nQuake)

Quake and Quakeworld
Quakeworld is a release of Quake I that has improved netcode and other features to improve the multi-player experience, especially when playing over the internet. The source code of Quake was released by id Software and there are many free implementations of Quakeworld. One of them is nQuake. You need the original Quake media files from your Quake CD to use the Quakeworld engines.

Installing the game
You‘ll have to download the nQuake Linux installer from the nQuake website or a mirror. The file is called nquake13a_installer-linux.tar.gz atm. Unpack the archive and install the game, I installed it to ~/software/nquake/. Then copy the pak0.pak file from your Quake I CD to nquake/id1/.

Configuring and running nQuake
You‘re ready to play Quakeworld now. To start the game, do the following:

cd ~/software/nquake/
./ezquake-gl.glx

The config files are stored in the directory you installed nQuake to.

Installing a dedicated Quake II server on your Linux server (r1q2)

I‘ve described how to do that in detail before and am too lazy to reformat all that for wordpress atm. See the following website:

The Quake II linux dedicated server HOWTO

Playing Quake II under Linux — SinglePlayer

Quake II — Single versus Multi-player
Though Quake II is more than 10 years old by now it’s still great fun and I enjoy playing Quake II single player (SP) mode once in a while. The game is still sold and copyrighted by id Software, so you‘ll need a legal copy of it to play the original maps on Linux. What you need is the file pak0.pak from your Quake II CDROM, the rest is available (both legal and free) from the internet.

Note that there are some Quake II total conversion and stand-alone games based on the (free) source code of Quake II that don‘t require the original game media. You won‘t be able to play the original maps with those engines unless you have pak0.pak and they support SP, of course (most don‘t, they are intended for multi-player games only ). These engines come with their own maps and game media. An example is Quake2World. This article is about installing a version of Quake II that needs the original media files (pak0.pak as mentioned above) and allows you to play SP Quake II under Linux. See this article on playing multi-player Quake II under Linux if you‘re not interested in SP Quake II.

Installation
Grab the loci installer for Quake II from the LOCI website. The file should be named quake2_3.21-r0.16.1-english.run or similar. You can install it to your home directory, no need to run it as root. Let’s make it executable and run it:

$ cd downloads/
$ chmod a+x quake2_3.21-r0.16.1-english.run
$ ./quake2_3.21-r0.16.1-english.run

Follow the instructions of the graphical installer. When it’s done, copy pak0.pak from your Quake II CDROM to the quake2/baseq2/ directory the installer created.

You‘re done, type quake2 to play the game.

Note: You can also use Jake2 to play Q2 SP under Linux. It’s a Q2 implementation written in Java. I gave it a try and the installation was very easy, too. You‘ll also need pak0.pak, of course.

A few notes to players who want to play MP Quake II

  • Note that most Quake II servers are running the r1q2 server now. They use an updated version of the q2 protocol and thus you need a proper client to connect to them. Installing such a client is described in this article.
  • If you insist on playing MP Quake II using the old client and don‘t see the enemies in MP Quake II you‘re missing the game data that comes with the Quake II 3.20 point release. Get the file from the id Software FTP or a mirror and unzip it. It should be named q2-3.20-x86-full-ctf.exe — it’s not a win32 executable but a self-extracting zip archive though. Copy the pak files and the players/ directory to your quake2/baseq2/ folder.

Playing Quake I under Linux (darkplaces)

Quake I and darkplaces
Quake is a classic. The game is more than 10 years old and runs even on very old hardware. This article describes how to install the darkplaces Quake I total conversion by Lord Havoc. You need the game media files for Quake I that can be found on your Quake CDROM to play the original maps and game. You can also play the darkplaces mod that comes with the engine.

Installing the game
Installing darkplaces (dp) is very easy. Just download the Linux binaries from the darkplaces website. The file is named darkplacesengine20080910.zip atm. Just unzip it, I like to move the folder to ~/software/darkplaces/. Then copy the pak0.pak file from your Quake CD to darkplaces/id1/ if you also want to be able to play the original Quake maps. You‘re ready to play the game now.

Playing and configuring the game
You can play the original Quake by simply starting darkplaces:

cd ~/software/darkplaces/
./darkplaces-linux-686-sdl

You can also play the darkplaces mod:

cd ~/software/darkplaces/
./darkplaces-linux-686-sdl -game dpmod

When you start dp for the first time, it will create the folder ~/.darkplaces/. You can edit the config files in there or use the in-game menu to configure dp.