Doom 1 and 2 Coop

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.

Advertisements

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
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments