Add WIP Warcraft III PvPGN server build/install instructions, and port forwarding info
This commit is contained in:
@@ -5,7 +5,8 @@ You will need:
|
|||||||
|
|
||||||
* *Warcraft III: The Frozen Throne* for Windows
|
* *Warcraft III: The Frozen Throne* for Windows
|
||||||
* 32-bit WINE
|
* 32-bit WINE
|
||||||
* Wireguard (not required if playing on the same physical network)
|
|
||||||
|
If all players are not on the same LAN subnet, they each must use a version of the game patches to use alternative battle.net servers. The game host must set up port forwarding, or, if this isn't an option, all players must connect to the same VPN. Instructions for both options follow.
|
||||||
|
|
||||||
## Running *Warcraft III* with WINE
|
## Running *Warcraft III* with WINE
|
||||||
|
|
||||||
@@ -17,19 +18,50 @@ Once WINE is installed, check that it works by using it to run *Warcraft III*, a
|
|||||||
$ cd /path/to/Warcraft_III
|
$ cd /path/to/Warcraft_III
|
||||||
$ wine Frozen\ Throne.exe
|
$ wine Frozen\ Throne.exe
|
||||||
```
|
```
|
||||||
|
*NOTE: If you only want LAN multiplayer, this completes setup. All players must be on the same subnet and its broadcast address must work properly.*
|
||||||
|
|
||||||
## Patching *Warcraft III* for Online Play
|
## Patching *Warcraft III* for Online Play
|
||||||
|
|
||||||
Once you've confirmed that the game works with WINE, it's time to patch it to use different multiplayer servers.
|
Once you've confirmed that the game works with WINE, it's time to patch it to use a chosen PvPGN multiplayer server, instead of (now defunct) battle.net server hosted by Blizzard.
|
||||||
|
|
||||||
|
### Host Instructions
|
||||||
|
|
||||||
|
To run your own PvPGN server, first you must build it from source. ohea.xyz provides a convenient Dockerfile and build script for doing this. The machine hosting the server should have a static IPv4 address.
|
||||||
|
|
||||||
|
#### Using Docker
|
||||||
|
|
||||||
**(TODO)**
|
**(TODO)**
|
||||||
|
|
||||||
|
#### Without Docker
|
||||||
|
|
||||||
## Creating a VPN
|
To build and install:
|
||||||
|
|
||||||
Unfortunately, the patched game seems not to work unless all players are on the same network (the in-game "battle.net" player option). The in-game "LAN" option does seem to require all players to be on the same physical subnet.
|
```
|
||||||
|
$ git clone https://git.ohea.xyz/containers/pvpgn
|
||||||
|
$ cd pvpgn
|
||||||
|
$ sudo ./build.sh
|
||||||
|
```
|
||||||
|
|
||||||
If the players are in different physical locations, Wireguard can be used to create a Virtual Private Network (VPN). This effectively tricks the players' computers into thinking they are all on the same network. One player must host the VPN, and the other players must then connect to it. (Note that this is independent of who hosts in-game.)
|
To run the server:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ sudo /usr/local/pvpgn/sbin/bnetd -D
|
||||||
|
```
|
||||||
|
Use `Ctrl+C` to quit.
|
||||||
|
|
||||||
|
### Client Instructions
|
||||||
|
|
||||||
|
1. Download the [Warcraft 3 Loader for PvPGN](http://pvpgn.pro/w3l.html) and extract the ZIP into the directory containing `Frozen Throne.exe`.
|
||||||
|
|
||||||
|
**(TODO)**
|
||||||
|
|
||||||
|
## Port Forwarding
|
||||||
|
|
||||||
|
The player hosting in-game needs to log into his router and enable port forwarding for TCP and UDP on ports 6113-6119. How to do this depends on the router.
|
||||||
|
|
||||||
|
## Creating a VPN with Wireguard
|
||||||
|
|
||||||
|
Alternatively, if port forwarding isn't practical for your setup, [Wireguard](http://www.wireguard.com) can be used to create a Virtual Private Network (VPN) instead. This effectively tricks the players' computers into thinking they are all on the same network. One player must host the VPN, and the other players must then connect to it. (Note that this is independent of who hosts in-game.)
|
||||||
|
|
||||||
### Host Instructions
|
### Host Instructions
|
||||||
|
|
||||||
@@ -37,16 +69,15 @@ If the players are in different physical locations, Wireguard can be used to cre
|
|||||||
|
|
||||||
### Client Instructions
|
### Client Instructions
|
||||||
|
|
||||||
To connect to someone else's VPN.
|
To connect to someone else's Wireguard VPN:
|
||||||
|
|
||||||
1. First, install [Wireguard](http://www.wireguard.com). It should be available as a package for your Linux distro.
|
1. First, install Wireguard. It should be available as a package for your Linux distro.
|
||||||
|
|
||||||
2. Then, generate a public/private key pair, like so:
|
2. Then, generate a public/private key pair, like so:
|
||||||
```
|
```
|
||||||
|
$ umask 077
|
||||||
$ wg genkey | sudo tee /etc/wireguard/privatekey | wg pubkey | sudo tee /etc/wireguard/publickey
|
$ wg genkey | sudo tee /etc/wireguard/privatekey | wg pubkey | sudo tee /etc/wireguard/publickey
|
||||||
5TdcJwAMCqkYJhj2jWjMNbC8Lx1+oabvW8sd380z6EY=
|
|
||||||
```
|
```
|
||||||
The second line above is your public key. You must send this to the VPN host so he can add it to his setup.
|
|
||||||
|
|
||||||
3. Then create a config file, `/etc/wireguard/wg0.conf` as root:
|
3. Then create a config file, `/etc/wireguard/wg0.conf` as root:
|
||||||
```
|
```
|
||||||
@@ -61,11 +92,11 @@ PresharedKey = ****
|
|||||||
AllowedIPs = 10.0.0.0/16
|
AllowedIPs = 10.0.0.0/16
|
||||||
Endpoint = *.*.*.*:****
|
Endpoint = *.*.*.*:****
|
||||||
```
|
```
|
||||||
* `PrivateKey` should be the private key generated in Step 2. It is the contents of `/etc/wireguard/privatekey`.
|
* `PrivateKey` should be the private key generated in Step 2. It is the contents of `/etc/wireguard/privatekey`. *Do not share this value with anyone.*
|
||||||
* In the value of `Address`, replace the `*` with an 8-bit positive integer (i.e. less than 256) of your choice.
|
* In the value of `Address`, replace the `*` with an 8-bit positive integer (i.e. less than 256) of your choice.
|
||||||
* `PublicKey` should be the public key generated in Step 2. It is the contents of `/etc/wireguard/publickey`.
|
* `PublicKey` should be the public key generated in Step 2. It is the contents of `/etc/wireguard/publickey`. You must communicate this value to the VPN host.
|
||||||
* The VPN host must provide you with the value for `PresharedKey`.
|
* The VPN host must provide you with the value for `PresharedKey`.
|
||||||
* `Endpoint` should be the host VPN's IPv4 address, with the port to use Wireguard on after the `:`.
|
* `Endpoint` should be the host VPN's IPv4 address, with the port to use Wireguard on after the `:` (default: 51820).
|
||||||
4. To start Wireguard, run the following command:
|
4. To start Wireguard, run the following command:
|
||||||
```
|
```
|
||||||
$ sudo wg-quick up wg0
|
$ sudo wg-quick up wg0
|
||||||
|
|||||||
Reference in New Issue
Block a user