Header Image - Quake On LAN

Eraser Bot for Quake 2 on a Modern Ubuntu Desktop

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.

This is not a Raspberry Pi related tutorial, I know, but as you can’t run Quake II mods on the Pi without recompiling their source code, this will have to do for now. In a future post I’ll likely have a go at compiling Eraser bot for ARM processor (if I can ever track down the source code), and hopefully that will lead to a new image release. I’d also very much like to do one for Lithium II mod, of which I’m a big fan and would love to play locally – the source for that one is actually available).

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.

The server will keep running afterwards, even if you close the terminal window. As you can’t send the server command to /dev/null in your script, remember to use the process KILL command later on to stop the server completely.

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.

RawShark has been dabbling in all things Quake since day one. He has reviewed maps, written mods, hosted servers, hacked code and even played a few games. These days he comes up with solutions for people sitting at home yearning for a blast from the past...

Comments ( 16 )

  1. RawShark
    If anyone happens to find a working link to the Eraser source code, please let me know. All links I've found myself are dead :(
  2. quakefan
    I looked, too, and there is no available source code, but there are a couple of binaries from others. So the source code must have been shared at some point. Have you had luck contacting Ryan Feltrin, the author of Eraser?
  3. RawShark
    The worst part is I DID have a copy of the source code years ago (I used it to create my own bot for a hobby project) but it was lost in the great PC crash of 2004. I looked up Ryan Feltrin, he seems like a really busy guy these days, but have not yet attempted t contact him. Perhaps you are correct, that is the next logical move...
  4. quakefan
    The 3zb2 bot has source code available for version 0.97 (http://users.jp.tri6.net/~ponpoko/3zb2src97.zip), but it is not the latest version 0.97d which is a binary release only and has bug fixes (http://users.jp.tri6.net/~ponpoko/3zb2097d.zip). I noted bugs in 0.97 which do not appear in 0.97d, but only tested with capture the flag. Hopefully the deathmatch maps are not affected. So far, the reproducible bugs in 0.97 consist of rapid weapon firing where many bots are on screen and severe slowdowns on q2ctf7. I much prefer the stable Eraser bots which seem more human-like than 3zb2, at least from limited testing and modification of configuration files, and they have decent support for capture the flag, too.
  5. RawShark
    My new mission in life is to track down the Eraser source and compile on the Raspberry Pi. Stay tuned for progress!
  6. Paril
    Weapons Factory includes a modified Eraser bot in its archives: http://q2wf.com/wfsource425e.zip I'm beginning to use that for my own project, will be ripping Eraser out of it best that I can.
  7. RawShark
    Great stuff, thanks for letting us know! If you manage to isolate the Eraser source, please come back with a link.
  8. f
    This worked for me on Debian 8. At least after shuffling some files between /usr/share/games/quake2 and /usr/lib/yamagi-quake2
  9. quakefan
    Perhaps this source code would work with p_trail from wfsource425e: https://web.archive.org/web/20120701054519/http://www.btinternet.com/~AnthonyJ/EraserULTRA/
  10. RawShark
    Excellent find. I was actually trying to find a download for Ultra Eraser at one point, as I loved playing Lithium II mod. Will try the source out at nearest opportunity, keep an the on the blog! Thanks again.
  11. kosmo
    Try this, it is 1.0 not 1.01 I believe.. http://www.kosmoverse.com/eraserbot/pro-eraser-1.0.source.zip
  12. RawShark
    Thanks, very useful! I think I have everything I need for my next project now :)
  13. RawShark
    Looked into compiling the various bot sources for RPi... totally possible, but I'm pretty sure the amount of work required is not justified for all the downloads it would get. I could be wrong, but who even plays Quake 2 anymore? If someone else can easily compile Pro-Eraser (http://www.kosmoverse.com/eraserbot/pro-eraser-1.0.source.zip) and send on the game.so, we'll gladly do the rest and throw out an image asap....
  14. RawShark
    Had a shot at compiling the Ultra source code, that took a whole day of fixing, compiling, fixing etc. until finally I had a game.so file. However, it won't run on the Pi still execing cycle.cfg -------- game initialization ------- LoadLibrary("game.so") LoadLibrary (./ultra/game.so): undefined symbol: DMGame ******************** ERROR: failed to load game DLL ******************** just spent another day on it. I don't feel it's worth any more effort. Like I said above, if someone else wants to do the work on this, I'll finalise the image for release and host on this site....
  15. quakefan
    The p_trail.c file is absent from the above archives, so instead they use an object file (p_trail.o) to compile the binary.
  16. RawShark
    Ahh, that make sense. Will keep in mind for future attempts. Or maybe you'd like to help put on this one and do the compile yourself? I'll do the rest, just need the final, working, game.so file from you if you can do one easily? I'm pretty busy with a few other things currently....

Leave a reply

Your email address will not be published.

Time limit is exhausted. Please reload CAPTCHA.



Quake On LAN is in no way affiliated with id Software.