Eraser Bot for Quake 2 on a Modern Ubuntu Desktop
I recently retired Quake.ie (for good this time) but completely forgot to backup the one or two very useful tutorials I wrote on getting old Quake stuff to work on modern systems. One thing that gets people a lot is running old bots for Quake and Quake II, as neither game supported them natively. I myself am a huge Quake II fan, and as it’s nearly impossible to get a game of that online, I like to use Ryan Feltrin’s amazing Eraser bot from way back in 1999 (the author is now a Senior Engineer on the Call of Duty series). Quake.ie had a server running this 24/7, but that now also is gone, so I had to remember how to run it on my Ubuntu laptop.
So, make sure you have Quake II running properly on your system first. I use Yamagi Quake II to run on my 64bit Ubuntu laptop with high resolution. You can do the same and then just copy the pak files from an old PC or a Steam installation of the games. Now download Eraser bot for Linux and see the README file for installation (if you want to play CTF, as detailed in the README, copy your CTF pak0.pak file now also).
You’ll need one more thing, and this is the magic ingredient. R1Q2 (R1CHs Enhanced Quake II Client/Server) is “an enhanced client/server focused on providing stability, security and speed whilst remaining fully compatible with existing mods and other clients”. What’s nice is that the project supplies a GNU/Linux GlibC 2.x Dedicated Server binary designed for running old mods that have binary-incompatible versions of gamei386.so. Eraser bot is one such mod, the binary was compiled with GlibC 2.1 and GCC 2.7.2, or earlier, meaning it will NOT run on your system unless you use this particular server binary. You can download the file you need from here and extract it in the root of your Quake II directory (make sure it is executable).
You are now all ready to go. To get our bot working, we are going to use a bash script (put it in /usr/local/bin, and make it executable with chmod +x) with the following contents:
#!/bin/bash # Script to run Quake2 with Eraser bot on modern Linux Desktop # Be sure you have installed Eraser bot for Linux first... cd /usr/lib/yamagi-quake2 # Run server in background using OLD binaries. See http://old.r1ch.net/stuff/r1q2/ # You could set timelimit, fraglimit etc also in this line if needed exec ./r1q2ded-old +set game eraser +map q2dm1 +set fraglimit 25 +bot_num 3 & sleep 2 #give server a chance to start # Run Yamagi Quake 2 in foreground and connect to bot server by IP address, NOT 'localhost' exec ./quake2 +connect 127.0.0.1 # Game on!
That’s all there is to it, the comments in the script should explain what is happening. Call your script “q2bot” or something, and now all you have to do to play is type that at the command line. Also, anyone else on your LAN can connect to your IP from the Quake II console to join in the game, just like a regular server! I also recommend you you launch by specifying a map (eg. q2dm1) and then modify maps.txt in the eraser directory like so:
q2dm2 q2dm3 q2dm4 q2dm5 q2dm6 q2dm7 q2dm8 q2dm1
to achieve a proper endless mapcycle.
This is a big one for me (I regularly yearn for a blast of Quake II) but as you know, hardly anyone plays online anymore. Hopefully you find it useful too.