D2X - Multiplayer How-To
Generally, there are two ways to play multiplayer games with D2X-XL: Via KALI, an extra program translating IPX communication calls to TCP/UDP and back, or directly via the built-in UDP/IP communication.
There are no dedicated game servers in any D2 version including D2X-XL. There will always be a player offering a game (game host) and configuring it (i.e. chosing the level and any settings; for details see the D2X-XL manual area). Players joining such an offered game (clients) have no direct control over the multiplayer game settings.
If you play over KALI, you need to install an IPX driver in your network configuration (for MS Windows see the system panel, network options). An argument for using KALI is that people are used to it and KALI has a chat function and easy game launch options. Find it here.
UDP/IP is similar to TCP/IP insofar as it uses IP addresses and ports to send data to another computer. Unlike TCP/IP, UDP/IP however is 'connectionless', and there is no guarantee that any data sent actually arrives intact and complete at the addressee. For the volatile nature of action game data, this doesn't play much of a role, as there are several updates per second anyway.
UDP communication generally goes via 'ports' (think of them as a key). Each game participant needs to have his own port and needs to know the ports the other participants are using to be able to send data to them. As the game host will communicate all client ports to all clients, you only need to know the game host's port number (28342 by default): Once you've connected to it, it will tell your machine the other players' ports.
Clients need to specify a UDP port they want to use. D2X-XL asks for one when joining a UDP multiplayer game. You can use the default port here (28342), and if that doesn't work, try 0 (zero).
Game hosts will use port 28342 by default; this port number can be modified by the host. If the host does that, clients can (and need to) modify their host port with the PgUp/PgDn keys in the game list.
Using a tracker makes things much easier. A tracker is kind of a game coordinator. All you need to know is the tracker's IP address and port. D2X-XL has one predefined tracker (tracker provided by the German VEX clan, so its existance depends on the clan's mercy and existance). You can add more trackers in d2x.ini (see the tracker page).
Every D2X-XL out there that is trying to offer a UDP/IP game (host) via tracker will send its IP address and port to all trackers it knows, registering with them so to speak. Every D2X-XL out there that is trying to join a UDP/IP game (client) will ask all trackers it knows for the IP addresses and ports of hosts that have registered with the trackers, and display all hosts the trackers report to it in its game list (actually the number is limited by the game list size), where you can select one. You don't need to manually enter a game host's IP address and port as a client here, and D2X-XL won't ask for them.
Depending on the type of firewall you're using and the firewall settings, you may need to open the ports KALI and/or D2X-XL are using (for the KALI ports, consult the KALI web site).
Short packets basically decrease the quality of the player position data to save a few bytes for every position record. That means players will slightly bob around (not very bad, just a little). With broadband connections, you shouldn't need this option anymore.
This value tells Descent how often per second to send data about any local events that change the game state (like player has moved, fired, picked up stuff etc.) to the other players. As I wrote somewhere else, Descent gathers all this data (which mostly consists of small packets) in a bigger 'pool' (buffer) and sends the buffer contents if it gets full. That means you may get more than X pps (if you set pps to 'X', e.g. 10). From what I can see, the buffer is large enough to rarely let this happen. On broadband, I'd therefore recommend to use at least 10 pps, not less, to have reliable player positions.