----------------------------------------------------------------------
Setting up Multiplayer Sessions
----------------------------------------------------------------------

Simplest (Method A):

  1. Run one instance of the game with Network Mode = Server (commonly known as the session Host)
  2. Set the Network Mode of the other machines to Client and enter the IP address of Server machine for each. If all machines are within the same house or office, use the local IP address (LAN)
  3. Start the Server instance first. The Clients should connect within a couple of seconds upon clicking Start, if things are working.

Running a public Server (Method B):
  1. On the Server machine, enter a Server Name, and check Publish. This will cause the Server to ping a Lobby application (running on the Web server) periodically during the game with game session statistics (players, frags, etc).
  2. When the client instances click Refresh on the Global Server browser, it will display a list of all Servers currently running that are "Published" (in theory, never tested this beyond 3 Servers, will soon find out)
  3. Clicking on one of those Servers will populate the IP and Port fields. If the server is password protected, you will need to enter it yourself.
  4. This arrangement assumes the Server has a valid internet IP; or if it is behind a NAT device like a router, it should have the listening port (default 1626) forwarded to it. UDP doesn't work if the Server is behind a NAT, haven't figured out why, but I would recommend keeping UDP un-checked in all cases (meaning uses TCP protocol).

Running a LAN server (Method C):
  1. Preferably use Method A, just enter the LAN IP of the Server.
  2. Or try the LAN Client, LAN Server selection. What this tries to do is list published Servers that have the same Internet (WAN) IP as the browsing Client instance, and connect them via their local (LAN) IP addresses. Might not work at all except for simple LANs with a single router/gateway, typical in a home or small business. I'm open to suggestions on better ways for doing this (maybe a TCP broadcast? Anyone get something like that working?).