add etrelay UDP relay + etmasters script + update README

This commit is contained in:
rmanach
2026-09-26 14:53:52 +02:00
parent 002289fd35
commit 6b9d14f86b
22 changed files with 1106 additions and 9 deletions
+33 -9
View File
@@ -12,18 +12,18 @@ One to launch a Jaymod server:
## Requirements
Wolfenstein ET is built on a 32 bits arch. So, 32 bits librairies must exist to run the game.
Wolfenstein ET is built on a 32 bits arch. So, 32 bits libraries must exist to run the game.
```bash
# add the i386 architecture
sudo dpkg --add-architecture i386
# do update to fetch i386 librairies
# do update to fetch i386 libraries
sudo apt update
# install the 32 bits compatible librairies
sudo apt install ia32-libs (mint)
sudo apt install lib32z1 (ubuntu)
# 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
@@ -65,11 +65,11 @@ cd /usr/local/games/enemy-territory
Enjoy !
**NOTE** : Some librairies may be missing, you need to install it one by one (test to launch ./et.x86 and see missing libs).
**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. Todo so :
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](./service/launch_server.bash)** wherever you want (ex: /opt/games/enemy-territory/server/linux).
* put the **[wolfenstein-et.service](./service/wolfenstein-et.service)** file in **/etc/systemd/system** directory (must be **root**).
@@ -87,9 +87,33 @@ sudo service wolfenstein-et start
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.
* **[relay](./relay)**: `etrelay`, a small Rust UDP relay running on the front. It proxies players and sends the master heartbeats from the front public address. Build, deploy and usage: [relay/README.md](./relay/README.md), how it works (with diagrams): [relay/ENGINE.md](./relay/ENGINE.md).
* Disable the server's own heartbeats in `server.cfg`, the relay sends them:
```cfg
set sv_master1 ""
set sv_master2 ""
set sv_master3 ""
set sv_master4 ""
set sv_master5 ""
```
### List the servers known by the masters
**[etmasters.py](./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.
```bash
./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 informations : https://wiki.archlinux.org/title/Wolfenstein:_Enemy_Territory.
More useful information: https://wiki.archlinux.org/title/Wolfenstein:_Enemy_Territory.
### Set screen size in **1920*1080**
* Open the player configuration file:
@@ -126,7 +150,7 @@ You must install the corresponding 32 bits library:
sudo apt install libasound2-plugins:i386
```
### Keyboard inputs does not work
### 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**.