If you found our last Tutorial helpful about creating a Deathmatch Doom Server, you’ll be probably be interested in how to play cooperative. So here you go.
Requirements
This Tutorial is based on an Rasperry Pi 4 Installation with Ubuntu minimal Server 64 Bit – It should also work on all other 64 Bit Distributions.
- Rasbperry Pi 4 (Rapberry 3 should work too)
- SD Card with installed Ubuntu or Raspbian 64 Bits
- SSH Access
- Remote File-Transfer Tool (i.e. WinSCP for Windows, or Cyberduck for MacOS)
- A Copy of Doom 1, Doom 2 (I.e. GOG Version)
System Preparation
Before we begin, make sure your System is installed and updated:
sudo apt-get update
sudo apt-get upgrade
You’ll need an editor to change some Configuration files – I prefer to use nano – get it with:
sudo apt-get install nano
Doom COOP Server Installation
We’ll use “Zandronum” as dedicated Server Software. Follow my previous Guide on Zandronum about installing the Deathmatch Server here. Progress the Tutorial including the WAD-File Installation – You can skip the Installation of Deathmatch Maps, if you don’t want to run a Deathmatch Server also.
We’ll now continue with the Coop Server Config File.
Server Config File
We need to create a “.ini” Config-File containing our Coop-Server Settings. If you installed Zandronum as described here, you should create the Config File in the Zandronum Users Home-Directory.
Doom 1 Coop Config File
cd
nano -w .config/zandronum/doom1_coop.ini
Paste the following Content into the Editor – Change the bold Settings to your needs:
// Basic Configuration
SV_hostname "servername"
SV_website "YourDomainOptional.tld"
// Password for remote Server Administration
SV_rconpassword "RemoteServerPassword"
//# Allow Jumping
SV_AllowJump 1
// Allow vertical Aiming of BFG
SV_BFGFreeAim 1
// Disable Lump Protection
SV_PURE 0
// Disable Server Broadcast to keep it private
// If set to true, server will appear i.e. at http://doomlist.net/
sv_updatemaster false
// For all available Settings check
// https://wiki.zandronum.com/Server_Variables
Press [CTRL]+[x] and select [y] to exit and save the Configuration File.
Doom 2 Coop Config File
The Doom II Config Fill will contain the same Settings as the Doom I Config – It’s just for keeping server instances seperate and enable flexibility to do specific Settings to each running instance.
Note: the File is “doom2_coop.ini” now
cd
nano -w .config/zandronum/doom2_coop.ini
Now paste the Settings from the Doom 1 Config file into the editor and save and close “nano” as you did before.
Running the Server
Time for some Coop Action – Go to the Binary Folder of your Zandronum Server and fire up the Server.
cd /opt/zandronum
Run Doom 1 by typing:
./zandronum-server -iwad DOOM.WAD -port 10667 +exec doom1_coop.ini
Run Doom 2 by typing:
./zandronum-server -iwad DOOM2.WAD -port 10668 +exec doom2_coop.ini
Note the important Details:
- -iwad: the WAD-File for DOOM or DOOM2
- -port: Each Zandronum instance need its own Port
- +exec: The Configuration File we created before
At this Point you should make sure, the defined Ports are open on your Firewall and if necessary routed correct.
Connecting a Client
Join the Party – Get the Zandronum Client for Windows / MacOS / Linux and run the Client with the following Connection Parameters:
Play Doom 1 Coop:
zandronum.exe -iwad DOOM.WAD -connect IP:10667
Play Doom 2 Coop:
zandronum.exe -iwad DOOM2.WAD -connect IP:10668
Also note the different WAD-Filenames and Ports, to connect to the correct Sessions.
Optional: Creating a Service
You might want to keep the Server running in the Background, also from System Startup? Just create a Systemd Service per Doom Instance – We start with Doom I:
sudo nano -w /etc/systemd/system/zandronum_doom1_coop.service
Paste the following:
[Unit]
Description=Zandronum Server
After=multi-user.target
[Service]
ExecStartPre=/bin/sleep 5
WorkingDirectory=/home/service-zandronum/.config/zandronum/
ExecStart=/opt/zandronum/zandronum-server -iwad DOOM.WAD -port 10667 +exec doom1_coop.ini
Restart=always
User=service-zandronum
[Install]
WantedBy=multi-user.target
Press [CTRL]+[x] and select [y] to save and exit. Now we’ll start Nano to create an Service for Doom II:
sudo nano -w /etc/systemd/system/zandronum_doom2_coop.service
Paste the following:
[Unit]
Description=Zandronum Server
After=multi-user.target
[Service]
ExecStartPre=/bin/sleep 5
WorkingDirectory=/home/service-zandronum/.config/zandronum/
ExecStart=/opt/zandronum/zandronum-server -iwad DOOM2.WAD -port 10668 +exec doom2_coop.ini
Restart=always
User=service-zandronum
[Install]
WantedBy=multi-user.target
Exit Nano with [CTRL]+[x] and select [y] to save.
To enable both Services enter:
sudo systemctl enable zandronum_doom1_coop.service
sudo systemctl enable zandronum_doom2_coop.service
To start the Services type:
sudo systemctl start zandronum_doom1_coop.service
sudo systemctl start zandronum_doom2_coop.service