Wolfenstein Enemy Territory

This archive contains all files needed to run Wolfenstein ET 2.60b on Linux. It includes two folders:

One to launch the main game :

One to launch a Jaymod server:

Requirements

Wolfenstein ET is built on a 32 bits arch. So, 32 bits libraries must exist to run the game.

# add the i386 architecture
sudo dpkg --add-architecture i386

# do update to fetch i386 libraries
sudo apt update

# install the 32 bits compatible libraries
sudo apt install ia32-libs  # Mint
sudo apt install lib32z1    # Ubuntu

# after the installation the following lib must be present
sudo apt install libsdl1.2debian:i386

Installation

NOTE: The installation has been tested on Mint 20.04 | Ubuntu 20/22.04.

  • Download the archive
wget http://et.sonak.fr/archives/et_full_linux.tar.gz
  • Extract it
tar xzvf et_full_linux.tar.gz
cd wolfenstein-et
  • Create the main folders
sudo mkdir -p /usr/local/games/enemy-territory
sudo chown 1000 /usr/local/games/enemy-territory && chmod 775 /usr/local/games/enemy-territory

sudo mkdir -p /opt/games/enemy-territory
sudo chown 1000 /opt/games/enemy-territory && chmod 775 /opt/games/enemy-territory

cp -r base/* /usr/local/games/enemy-territory
cp -r server /opt/games/enemy-territory

Launch the game

cd /usr/local/games/enemy-territory
./et-sdl-sound

Enjoy !

NOTE : Some libraries may be missing, you need to install it one by one (test to launch ./et.x86 and see missing libs).

Create a systemd service (server creation only)

In order to launch the server properly, a systemd service is a right solution instead of the serverctl sh script. To do so:

  • put the launch_server.bash wherever you want (ex: /opt/games/enemy-territory/server/linux).
  • put the wolfenstein-et.service file in /etc/systemd/system directory (must be root).
  • replace <linux_user> and <path_to> placeholders with your configuration (<linux_user> must have rights to exec launch_server.bash).
  • enable the service (on reboot the service will autostart).
sudo systemctl enable wolfenstein-et
  • start the service
sudo service wolfenstein-et start
  • check the service status
sudo service wolfenstein-et status

Public server behind a tunnel

When the server runs at home and is only reachable through a front server (WireGuard), its own heartbeats leave through the home box: masters challenge the wrong IP and the server never shows up in the in-game browser.

  • etrelay: a small Rust UDP relay running on the front. It proxies players and sends the master heartbeats from the front public address. Build, usage and how it works (with diagrams): see its repository.
  • Disable the server's own heartbeats in server.cfg, the relay sends them:
set sv_master1 ""
set sv_master2 ""
set sv_master3 ""
set sv_master4 ""
set sv_master5 ""

List the servers known by the masters

etmasters.py (Python 3, standard library only) asks the masters (etmaster.idsoftware.com, etmaster.net) for their server list, then every server for its info: name, map, players, mod. Handy to check the server is listed.

./etmasters.py                        # table sorted by players
./etmasters.py --json servers.json    # JSON file instead
./etmasters.py --master etmaster.net:27950 --timeout 5

Settings

More useful information: https://wiki.archlinux.org/title/Wolfenstein:_Enemy_Territory.

Set screen size in 1920*1080

  • Open the player configuration file:
vi $HOME/.etwolf/etmain/profiles/<username>/etconfig.cfg
  • Override this settings
seta r_mode          -1      // -1 mean we are using a custom screen resolution
seta r_customwidth   1920    // monitor's width
seta r_customheight  1080    // monitor's height

Common errors

"libstdc++.so.6: cannot open shared object file: No such file or directory"

sudo apt install lib32stdc++6

SDL driver error

------- sound initialization -------
SDL audio driver initializing...
ALSA lib conf.c:3722:(snd_config_hooks_call) Cannot open shared library libasound_module_conf_pulse.so (/usr/lib/i386-linux-gnu/alsa-lib/libasound_module_conf_pulse.so: libasound_module_conf_pulse.so: cannot open shared object file: No such file or directory)
ALSA lib pcm.c:2642:(snd_pcm_open_noupdate) Unknown PCM default
SDL_AudioDriverName() = NULL
------------------------------------

You must install the corresponding 32 bits library:

sudo apt install libasound2-plugins:i386

Keyboard input does not work

Try moving to Xorg instead of Wayland... To do so, on Ubuntu, logout, click on the Settings icon and select Xorg.

libGL.so.1: cannot open shared object file: No such file or directory

sudo apt install libgl1-mesa-glx:i386

libasound_module_pcm_pipewire.so

SDL audio driver initializing...
ALSA lib dlmisc.c:337:(snd_dlobj_cache_get0) Cannot open shared library libasound_module_pcm_pipewire.so (/lib/i386-linux-gnu/alsa-lib/libasound_module_pcm_pipewire.so: cannot open shared object file: No such file or directory)
SDL_AudioDriverName() = NULL
sudo apt install pipewire-alsa:i386
S
Description
This repo aims to launch Wolfenstein Enemy Territory on Linux.
Readme
1.4 MiB
Languages
Python 86.4%
Shell 13.6%