+----------------------------------------+ | The Official Quake Deathmatch TEST | | Released Saturday, February 24th, 1996 | | Copyright (C) 1996 id Software, inc. | +----------------------------------------+ | Network Subsystem Documentation | | by John Cash | +----------------------------------------+ Overview ======== Quake is a client/server game. You are always running over some type of network. In a standalone game, you are using a loopback network; it just passes messages back and forth in memory buffers. This readme is talking about real networks and multiplayer deathmatches. There are three main sections: commands, LANs, and Serial. Command Line Parameters, Commands, and Variables ================================================ Command line parameters ----------------------- "-nolan" Disables both IPX and TCP/IP support. "-netlog " Records all network messages into the specified file. This is for debugging use only and will slow your game down *a lot*. "-record" Server only. This will create the file quake.vcr and records the game. This is for debugging server bugs and is NOT a ".lmp"-style demo recording. "-noudp" Disables support for TCP/IP. "-udpport " Specifies a UDP port to be used other than the default of 26000. "-noipx" Disables support for IPX. "-ipxport " Specifies a IPX port to be used other than the default of 26000. "-noserial" Disable serial support. Variables --------- "net_messagetimeout" Specifies how long Quake should wait for a message to arrive before deciding the connection has died. The default is 3 minutes. For reference, messages usually arrive at the rate of about 20 per second. "hostname" This is the name for your server that will show up on an slist (see below). The default value is "unnamed". "net_speeds" Setting this variable to 1 will cause diagnostic network information to be displayed once per second. Console commands ---------------- "net_stats" This is for debugging. It displays various network statistics. "slist" Looks for Quake server on a local LAN (or over a null modem cable). This will NOT go outside the local LAN (will not cross routers). LANs ==== Here are the LANs that are supported by the Quake test release. For each one, you'll be told how to connect to a server *if it is not on your local network*. If it is, you can use the "slist" command and connect by hostname. See the main readme for a discussion of the connect command. Beame & Whiteside TCP/IP ------------------------ This is the only DOS TCP/IP stack supported in the test release. It is not shareware...it's what we use on our network (in case you were wondering why this particular stack). This has been "tested" *extensively* over ethernet and you should encounter no problems with it. Their SLIP and PPP have not been tested. When connecting to a server using TCP/IP (UDP actually), you specifiy it's "dot notation" address (like 123.45.67.89). You only need to specify the unique portion of the adress. For example, if your IP address is 123.45.12.34 and the server's is 123.45.56.78, you could use "connect 56.78". IPX --- Quake has been run with Novell's ODI IPX stack under DOS, PDIPX with packet drivers under DOS, and the Microsoft IPX stack in a Win95 DOS box. If you use PDIPX, see "known problems" below. When connecting to a server using IPX, you specify its network:node address (like 12345678:1234567890AB). If you are on the same network, you can just specify the node address. Other ----- We're talking about PPP, SLIP, Kali... anything besides IPX or B&W as described above. The answer is: we don't know, we haven't had time to test it all (doesn't matter what the question was). Playing over the Internet ------------------------- Yes, you can play Quake over the Internet. How many people can be in the game? That depends. How smooth will the game be? That depends. There are just too many variables (bandwidth, latency, current load, etc...) for us to make any kind of promises about Internet play. Serial/Modem ============ The Quake serial driver supports two COM ports. Although they are referred to as COM1 and COM2, you can configure them to use any normal hardware COM port (1 thru 4 on most PCs). The com ports are used with interrupts, so their IRQ may not be used for another purpose (such as a LAN adapter or sound card). The IRQ may not be shared with another device either; not even another COM port. A client can only be connected to one server at a time, so multiple ports are really only useful on a server. When using modems, the client must originate the call and the server must answer. This holds true even for a two player, non-dedicated server configuration. *** Modem support does NOT work at this time *** Serial play is only supported via direct connection (null modems cables). It *might* work to establish a modem connection before running Quake and then treating it like a direct connection... *BUT* this has not been tried or tested. The COMx commands ----------------- There are two commands to support serial/modem play for Quake. They are: COM1 and COM2. Entering one of these commands with no arguments will display the status of that serial port, similar to this: Settings for COM1 enabled: true connected: false uart: 16550 port: 3f8 irq: 4 baud: 28800 CTS: honored DSR: honored CD: honored startup: shutdown: When used with arguments, these commands change the settings and status of the COM ports. The possible arguments are listed below; examples follow. enable | disable "enable" means that your configuration is complete and you want to use the COM port. "disable" is used to turn off a COM port, usually to change its settings. The default (initial) state is disabled. dial | answer Specifying one of these two options indicates that you are using a modem. "dial" is used for Quake clients and means that you will be initiating the call. "answer" is used for Quake servers and means that you will be receiving the call(s). Using neither of these means that you are using a null modem cable and modem processing will be disabled. reset This will reset the COM port to its default settings and state. port irq These are used to set the I/O Port and IRQ that your serial port uses. The default values are: port=3f8 irq=4 for COM1 and port=2f8 irq=3 for COM2. Note that the port number is displayed in hexadecimal; to enter it you would use something like "COM2 port 0x2f8"; the "0x" preceding the "2f8" indicates that you are giving the value in hexadecimal otherwise decimal is assumed. baud Sets the baud rate. Valid values for are: 9600, 14400, 28800, 57600, and 115200. 28800 is the default. Please note that this is the baud rate used for the uart, not your modem. It is perfectly valid to use 57600 on a COM port that is connected to a 28.8 modem. 8250 | 16550 Specifies the type of uart chip in your system. Normally this is automatically detected, one of these need only be used if your chip is incorrectly detected. startup shutdown This allows you to specify the startup and shutdown strings needed for a modem for playing Quake. If you've found values that previously worked with Doom, use them here. If you are playing over a null modem cable, leave these blank. -cts | +cts -dsr | +dsr -cd | +cd These determine if certain serial control lines should be honored or ignored. The "-" means you want that line ignored, the "+" means to honor it. "cts" is an abbreviation for "clear to send", "dsr" for "data set ready", and "cd" for "carrier detect". Most people will not need to change these values. The default is to honor all 3 lines. Quake always uses no parity, 8 data bits, and 1 stop bit; these values can not be changed. The baud, port, irq, and uart type can not be changed on an enabled port, you must disable it first. Configuration examples ---------------------- Example1: You have a machine with two serial ports you are going to use as a Quake server. COM1 will be using a null modem cable and COM2 will be connected to a 14.4 modem. You would use commands similar (the startup string would almost certainly be different) to these: COM1 baud 57600 enable COM2 baud 14400 answer startup AT\N0%C0B8 enable Example2: You are going to use your machine to connect to a dial-up Quake server with your 28.8 modem connected to COM2. You would use a command something like this: COM2 baud 57600 dial startup AT\N0%C0B8 enable Note the baud rate is not the same as the modem speed. This allows the modem-to-uart communications to occur at a higher rate than the modem-to-modem communications. Connecting to a serial Quake server ----------------------------------- Connecting to a Quake server over a serial/modem connection is done using the "connect" command. A "#" is used to indicate that you are going to connect using a modem. For example, the command "connect #5551212" would try to connect to a Quake server at the phone number 555-1212. Note: your local phone company would probably appreciate it if you didn't try this number! If you are using a null modem cable, you can simply type "connect". Quake will then attempt to connect to the server. There is no provision for a dialing directory yet. Known problems / workarounds ============================ Packet drivers with PDIPX - there is a bug that stops a server running on this combination from responding to the slist command. There are two workarounds. One, use Novell's IPX stack. Two, connect by address (see IPX notes). Win95 - For Quake to run under Win95, you must have an IPX Networking Protocol installed. To do this, open up "My Computer->Control Panel->Network". Click on "Add->Protocol -> Add->Microsoft -> IPX/SPX-compatible Protocol -> OK". If you are not using IPX for network client services (to a NetWare server), do not bind it to the requester. Also, you need to pay careful attention to the setting of the "frame type" under "advanced properties" to make sure it is correct for your network. Bug Reporting ============= If you encounter a network-related bug, please fill out the following form and e-mail it to qtest1@idsoftware.com. There are several problems that are not bugs, and shouldn't be reported, including: * modem play does not currently work * sluggish performance, especially on 486s, heavily loaded LANs, and the Internet * IPX servers running on PDIPX will not repsond to the slist command * Improper frame type selection under Win95 Apart from these, we would very much like to hear about any network problems you encounter. -------------------------------cut here------------------------------------- Quake Demo #1 Bug Report E-mail to: qtest1@idsoftware.com Date: Name: Company: Street address: City, state, ZIP: Phone: Fax: E-mail: Please provide the following information about the server and clients; be sure to indicate which machine is the server. Manufacturer/model of LAN adapters: Network configuration (eg., NET.CFG file): Drivers, protocol stacks, and versions: (eg., lsl v2.14, exp16odi v2.33, and ipxodi v3.01) What operating system are you running? (eg., DOS 6.0 or Windows 95): If there were any error messages or fault information, report them here: Execute the net_stats command and give the results for each machine: Please describe the problem you are encountering, including a procedure for reproducing the problem: -------------------------------cut here-------------------------------------