QWfwd

From QWiki
Revision as of 14:18, 17 October 2024 by Mushi (talk | contribs) (→‎Running QWfwd (server))
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

QuakeWorld proxy originally made by Id Software, adjusted by qqshka.

This is the recommended proxy for finding lower ping connection to QuakeWorld servers. It is designed to be fully automatic, if properly used.

See the following image for an explanation how proxies work.
Qwfwd proxy.drawio.png
Unlike Qizmo proxy, you don't directly connect to a qwfwd proxy. You connect to it (automatically) when connecting to a destination (mvdsv) server, by setting the proxy(s) ip:port to /cl_proxyaddr cvar. See below for details.

Using QWfwd


When using ezQuake client, here's what you'll have to do (taken from ezQuake page):

  1. Make sure you have sb_findroutes 1 and cl_useproxy 1 . This will find the best route which enables you to get the best ping possible.
  2. Refresh the server browser. Either go to "Servers" tab and press [Space] or write /sb_refresh into the console
  3. Four phases will commence: updating sources, pinging servers, getting infos and building ping tree
  4. After the last phase is done, "Ping tree has been created" will be printed in the console. You're ready to connect using proxies.
  5. To connect to given server using the best possible route open its info window (press Enter) and then press [x] key. To check what route will be used press [i] key - route will get printed into the console.
  6. Alternatively you can use the /connectbr command instead of /connect to always use the best available route while connecting.
  7. /cl_proxyaddr is where the selected proxy is set. By default this cvar is empty, but if it contains an address, it will connect to the destination server using the proxy defined here. If you're unwillingly using a proxy, just set this cvar to empty (""). When connected to a server, you can check if you are using a proxy by typing /f_server: if it prints another address, usually using 30000 port, you are connected to a proxy.
  8. Multiple proxies can be chained in /cl_proxyaddr, separated by @ character. The server browser sometimes does this, and you can remove one/all of them.


Read more on ezQuake homepage.

Here is a link to Dirtbox blog with more information and examples.

Running QWfwd (server)

QWfwd should be installed on machines with good internet connection. That is, stable network and good routing.

it's funky like that, might be worth it to set up a different proxy in close proximity just to get on a different internet super highway.

Any machine can run QWFwd. You can even run it on your machine, or your Raspberry Pi. It will only be used if it is placed on a low latency network, otherwise it won't be used at all. IF it is used, it will use only around 5kb/s of bandwidth per player and very little memory.
It is already included in nQuakesv.

If you want to run it, here are the instructions. Get the source code here and compile it.
After compiling, create a file with the name qwfwd.cfg and paste the following (you'll only have to change the hostname):

set hostname "---change_me---"         // specify a hostname
set net_port 30000                              // specify UDP listening port (default: 30000)
// set net_ip                                   // specify IP-address listen to (default: all IPs)
set sys_readstdin 0                             // allows qwfwd to run in background
// set developer                                // enabled developer (0=off, 1=enabled)
set masters master.quakeservers.net:27000 qwmaster.ocrana.de:27000 master.quakeworld.nu:27000 qwmaster.fodquake.net:27000            // specify a list of master servers
set masters_heartbeat 1                         // allow sending heartbeats to masters (0=off, 1=enabled)
set masters_query 1                             // query the master server list (0=off, 1=enabled)


Save it the file. Test it by executing qwfwd.bin , if everything looks ok, now you'll have to run QWfwd and keep it running. One option is to run it under screen:

screen -dmS qwfwd ./qwfwd.bin 

And it's done!

Links