home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Ultimate DOOM Companion
/
PowersourceMultimedia-UltimateDOOMCompanion.iso
/
goodies
/
idoom11y.zip
/
IDOOM.DOC
next >
Wrap
Text File
|
1994-10-16
|
23KB
|
448 lines
iDOOM version 1.1 WB Documentation
This is the documentation for iDOOM, a TCP/IP network driver for id
Software's DOOM<tm>. iDOOM allows up to 4 players to play DOOM over the
Internet using the TCP/IP protocol suite. iDOOM 1.1 is a "Wide Beta"
release. This means that it is stable enough to be released to the Internet
DOOM community at large, but users should still be on the lookout for bugs.
Please email any comments, suggestions, or bug reports to asre@uiuc.edu.
Features
Many of iDOOM's features are brand new for this release. They
include:
* Stable support for a full 4 players, limited only by the quality of
network connections.
* Full support for both DOOM I and DOOM II.
* Full support for DOOM response files.
* Automatic parameter comparison amongst all machines in the game to
insure that all machines are running with identical game settings.
This prevents crashes or other unexpected behavior due to one player
making a typo on the command line or forgetting to add a parameter.
* An easy-to-use client/server mode which, along with support for
response files, eliminates the need for long command lines.
* Command line compatibility with TCPSETUP 0.9B. Any shell program
designed for use with TCPSETUP, such as the Frag Client, will also
work with iDOOM.
* A multiuser chat facility built right in. iDOOM's chat interface is
modeled after that used by IRC (the Internet Relay Chat).
* Interactive parameter changing during game setup. The game
parameters can be easily changed from the server console via commands
such as /episode, /map, /skill, etc.
* A built-in "dialing directory" which stores the names and internet
addresses of other iDOOM players. At startup, the iDOOM server for
the current game can be selected from a pop-up pick list of these
"known" players.
System Requirements
To use iDOOM, you must have the following:
* A machine capable of running DOOM (of course).
* A standard packet driver. Note that a packet driver is different
than the drivers commonly used for network operating systems such as
Novell.
* A connection to the Internet. Note that a DIRECT connection is
preferable to a SLIP or PPP connection. Although it is possible to
play DOOM over a SLIP or PPP connection, due to DOOM's high bandwidth
requirements the game will be slow (unacceptably slow in the opinion
of the author).
Acknowledgements
The author of iDOOM wishes to acknowledge the contributions of the
following people: id Software, certainly for making DOOM but also for being
cool enough to release the source code to their network drivers; Jake Page,
author of TCPSETUP, for blazing the trail and setting the example; Eric
Engelke, author of the (free!) WATTCP TCP/IP kernel upon which iDOOM is
based; Jay Cotton for his tireless efforts in testing faulty version after
faulty version on his multimachine network; and, of course, everyone who
has sent me ideas, encouragement, and criticisms. Thanks to all of you for
helping to make iDOOM what it is today and what it will be tomorrow.
Installation and Setup
To install iDOOM on your PC, perform the following steps:
1) Obtain and install the appropriate packet driver for your network
card. Instructions for doing this are included with your card and/or with
the packet driver. For information on how to obtain a packet driver, as
well as additional help with troubleshooting your TCP/IP configuration, see
the Internet DOOM FAQ which should be included with this iDOOM archive.
2) If you haven't already done so, unzip the iDOOM distribution
archive into your DOOM directory. This will extract the iDOOM.EXE file,
this document, and the other support files needed by the program.
3) Using your preferred ASCII text editor, modify the WATTCP.CFG file
in your DOOM directory so that the my_ip, gateway, nameserver, and netmask
entries are correct for your system. The resulting file will look something
like this:
my_ip=128.192.23.5
gateway=128.192.23.1
netmask=255.255.255.0
nameserver=128.192.44.67
Save the changes and return to DOS.
4) Again using your ASCII text editor, modify the sample PLAYERS.DAT
file that comes with the iDOOM distribution. PLAYERS.DAT is iDOOM's
"dialing directory" - it contains a listing of player nicknames and their
IP addresses. You can add the people you play against frequently to this
file and save yourself from having to type their IP address each time one
of them is the iDOOM server. The file consists on one or more lines of the
form
player=<nickname>,<IP_address>
Where <nickname> is the player's nickname (15 characters or less) and
<IP_address> is the IP address of that player's machine. The resulting file
will look something like this:
player=Fragbait,128.192.23.4
player=FragLord,128.192.23.5
player=Homer,128.192.23.6
Be sure to add yourself to the list of players. Save the changed file
and return to DOS.
5) iDOOM is now installed and ready for fragging!
Using iDOOM
First, go find up to three of your most patient frag buddies. If this
is your first attempt at Internet DOOM, it's best to try and find someone
on your local network who's willing to put in a little frag time with you.
Connections on your local net will be faster and less problematic, whereas
if you attempt a long distance connection your first time out, you'll have
a hard time discerning problems caused by distance from problems caused by
an incorrect configuration.
Decide amongst yourselves which machine will be the "server" (the
remaining machines in the game will all be "clients"). The server machine
(and there can only be ONE server per game) acts as the coordinator for
that session. The player operating the server is in some sense "the boss" -
she can decide when to start the game, which parameters (e.g. -altdeath, -
nomonsters, -warp, -skill, etc.) will be used, whether to kick a player
out, and so on.
The server starts iDOOM as follows:
iDOOM -server [other game parameters]
Once the server has started iDOOM running, the clients (all remaining
players) can then connect to the server. Each client invokes iDOOM using
the command line:
iDOOM -client [<server_address>]
As an example, consider several computers which are part of a local
area network in a computer lab. In this lab there are identical machines
sitting side by side, with sequential IP addresses, i.e. 128.192.23.4,
128.192.23.5, and 128.192.23.6. After stepping through the basic
configuration process outlined above on all test machines, my frag buddies
and I are ready to begin. First, we all agree to play our favorite
DEATHMATCH level, DOOM I episode 1 map 5. We also agree to play in -
altdeath mode, with -skill 5 and -nomonsters. On my machine, which we
decided will be the server, I type:
iDOOM -server -warp 1 5 -altdeath -skill 5 -nomonsters
The iDOOM screen comes up, and a message is displayed informing me
that iDOOM is entering server mode. This screen is divided into several
sections: the credits, the output window, the status bar, and the input
line. At the top of the screen is the name of the program, its version
number, and the copyright notice. The large area beginning with the second
screen line and continuing to the 22nd screen line is the output window.
Here is where iDOOM will display all status messages as well as the chat
text entered by the other players. Below the output window is the status
bar, where the current game settings are displayed. Below the status bar is
the input line where all the text I type on my keyboard will appear.
Finally, the bottom line of the screen lists significant contributors to
iDOOM.
Once my iDOOM server is up and running, all the other players can
connect to it. The other guys type:
iDOOM -client
Since we created a PLAYERS.DAT file on each of the machines, iDOOM
displays a picklist of the iDOOM players it knows about. Using the arrow
keys, each of my opponents selects my machine from the list and presses
<ENTER> to establish the connection. NOTE: If my server machine were not
listed in their PLAYERS.DAT files, they would have had to specify my
server's address on their command lines, e.g. iDOOM -client 128.192.23.5.
After pressing <ENTER>, the clients will display the normal iDOOM
chat mode screen, the layout of which is identical to that of my server.
iDOOM displays a message confirming that it is entering client mode and
connecting to the server. As each client's connection is established, the
server announces arrival of each player.
During this phase of the game setup, all players who have connected
thus far can type messages to each other using iDOOM's built-in chat
facility. To send a message to the other players in the game, I simply type
my message on the keyboard. My keystrokes appear in the input line at the
bottom of the screen, and when I press <ENTER>, the text will be echoed to
the screens of all players (along with an indication of who sent the
message). The identical procedure can be used to send messages from each of
the client machines. The server itself will also send messages. Messages
from the server will begin with three asterisks ("***").
When a client connects to the iDOOM server, the client receives a
message containing the game parameters which will be used during that
session. These game settings will be displayed on the status bar. The
settings are abbreviated to ensure that they will all fit within the
available space. These parameters may be modified as desired by the server
console operator (for the full list of available commands, see the iDOOM
chat facility command reference section at the end of this document).
Suppose that my friend sees that I have selected E1M5 as the default
episode and map for our game. He reminds me that we've been playing that
one a lot lately, and suggests we change to E2M2 since we haven't played
that one in a while. I agree, and issue the commands "/episode 2" and "/map
2" to change the level. Our status lines are immediately updated to reflect
these changes.
Once I have determined (via the chat facility) that everyone is ready
to begin the game, I press the F10 key. The iDOOM server signals the
clients that the game is beginning, the chat facility is shut down, and
iDOOM sets up the connections which will be used for the actual game. Once
these network links are established between all the machines, the message
"Prepare to meet your DOOM!" is displayed, followed by the usual DOOM
startup information. Shortly thereafter, the screen melts away and there we
are, in E1M5, pistols at the ready! (I won that game, by the way. ;-)
Common Problems and Their Solutions
Problem: The game is VERY SLOW. The speed of the game is all right
most of the time, but there are periodic slowdowns and speed-ups. The game
started off slow, and got slower and slower until finally it ground to a
complete halt.
Solution: All of the above problems are the result of a poor quality
net connection. To borrow terminology from other Internet games, the two
phenomena of interest are "lag" and "chew". Lag is the amount of time it
takes for a packet sent my one machine to reach its destination. It's
possible to get an idea of the lag time between machines using a program
called PING, which send a packet out, waits for a reply, and measures the
total time taken. Since the rate at which DOOM plays is dependent upon the
rate at which the packets from other machines come in, if one or more
machines involved in the game is on a slow portion of the net the game will
slow down for everybody. This is why players who are connected to the
Internet via SLIP, PPP, or 56kb connections are frustrating to play
against. Chew can be thought of as "packet loss" - essentially the network
chews up the packets and they disappear. Since the UDP protocol has no
mechanism for ensuring that a given packet will reach its destination,
packet loss is a definite possibility on busy networks. While DOOM can
compensate for this by including "backup tics" (information for the current
time period as well as previous time periods) in each game data packet, it
takes time for the new packets to get through, resulting in "bursty" game
play. Chew can also be estimated using the PING program, which usually
reports a "% packet loss" statistic. In general, if PING reports that a
machine has a long packet round trip time or a high percentage of lost
packets, any DOOM games involving that machine and yours will suffer from
speed problems. The worst part is there's nothing anyone can do about it,
short of installing a direct fiber-based ATM backbone between your machine
and his. About the best you can do is try again at another time and hope
that the network between you is less busy then.
Problem: DOOM runs for a little while, but then it crashes to DOS
with an error message saying something about NUMTICS and BACKUPTICS.
Solution: This error seems to crop up frequently when players use
slow and/or lossy network connections. At the time of this writing, the
exact cause of this problem is unknown. Although recent changes to iDOOM
seem to have reduced the occurrences of this problem, the problem is
apparently a bug in DOOM which only shows up under extreme conditions. If
this happens to you about all you can do is restart the game, perhaps with
a smaller number of players.
Problem: iDOOM returns to DOS saying "NO PACKET DRIVER FOUND."
Solution: Make sure that you have a packet driver installed and that
it is being loaded correctly. Note that it is easy to mistake other types
of drivers, such as those used in Novell networks, for packet drivers as
they have similar or even identical names. When in doubt, download the
Crynwr packet drivers and install the one for your card.
Problem: iDOOM returns to DOS saying "Error 0xAA accessing packet
driver."
Solution: Either something has clobbered your packet driver in memory
or you are using a packet driver which does not identify itself as "class
1" (such as SLIP and PPP drivers). iDOOM requires a class 1 packet driver
in order to function, a limitation of the WATTCP library upon which iDOOM
is based. If you know that your packet driver is class 1 but you still get
this message, try rebooting your machine to install a fresh copy of the
packet driver.
Problem: The packet driver is installed and appears to load
correctly, but when iDOOM is run nothing happens.
Solution: When installing the packet driver, make certain that the
correct parameters are used on its command line. On some network interface
cards, improper settings can still cause the packet driver to APPEAR to be
loading correctly, only to have a failure occur when an actual
communication attempt is made. Also, make sure that there is no other
software loaded which is also trying to use the network card at the same
time, such as a Novell network driver. The cleaner the boot, the better it
is for DOOM. The ideal configuration would load only the packet driver and
the mouse driver - no HIMEM, no EMM, no Novell drivers, no QEMM, no
SMARTDRV, etc. DOOM doesn't need them, and they may cause conflicts. The
author's system uses MS-DOS 6's built-in multiple configuration facility.
This allows easy selection of either a normal configuration or a DOOM
configuration at boot time.
Chat Mode Command Reference
iDOOM's chat facility understands the following commands. Most begin
with a slash '/' character.
/help displays a brief summary of the available commands (in case you
forget ;-)
/nick changes your nickname. Your nickname is used by the server to
identify the source of a particular message (so players can tell who
said what). The default nickname is the IP address of the machine you
are using for iDOOM; use /nick to specify something a little more
mnemonic. Example: /nick Khan
/me prints a message in which you can refer to yourself in the third person
(usually used to describe an action). Example: If your nickname is Jim and you
type "/me yawns" everyone will see the text "* Jim yawns" on their screen.
/who displays a list of players currently connected to the server as well as
their (tentative) uniform color assignments. Note that these colors may change if
players disconnect from the server prior to the start of the game.
iDOOM also understands some keystroke commands:
Alt-X is used to exit the current session.
NOTE: Although Ctrl-Break will cause iDOOM to immediately stop and return to DOS,
its use is not recommended. Using Ctrl-Break can leave the packet driver and/or
the computer itself in an unstable state, possibly requiring a reboot.
Certain commands may only be issued from the server console. These commands are:
/kick to kick a user off the server (and thus out of the game). Example: /kick
NoOne
/map <n> to change the starting map for the game. Example: /map 5
/episode <n> to change the episode (in DOOM I). Example: /episode 3
/skill <n> to change the skill setting. Example: /skill 5
/deathmatch to enable DEATHMATCH network mode.
/altdeath to enable DEATHMATCH 2.0 network mode.
/coop to enable COOPERATIVE network mode.
/nomonsters toggles monsters on and off. Issue /nomonsters to get rid of the
monsters; issue /nomonsters again to bring them back.
/respawn toggles respawning of monsters.
/fast toggles monster speed.
/record [<filename>] to record the session into a demo LMP. You specify the file
name for the resulting demo (sans the .LMP extension). Use /record with no
filename to disable demo recording mode.
/avg toggles the -avg command line switch. Issuing /avg once will enable AVG mode
and the game will end automatically after 20 minutes. Issue /avg again to disable
the timer function. NOTE: This is equivalent to issuing a /timer 20 command.
/timer <n> sets the time limit for the game to <n> minutes. If <n> is 0, the
timer function is disabled. Example: /timer 60.
Finally, the F10 function key ends setup and launches DOOM.
Command Line Switch Reference
-server invokes iDOOM in SERVER mode. There can only be ONE server in any game,
and all desired game settings must also be specified on the server's command line.
-client <server_address> invokes iDOOM in CLIENT mode, and attempts to connect to
an iDOOM server running on the machine at <server_address>. Example: -client
128.192.23.5
-d2 specifies that this is a game of DOOM II (the default is DOOM classic).
Adding this switch will cause iDOOM to launch the DOOM II executable instead of the
DOOM executable, and it will also change the interpretation of the -warp parameter
(DOOM takes two values, episode and map, along with -warp; DOOM II has only one big
episode, so it only needs a map number).
-net <n> <host1> [<host2> [<host3> [<host4>]]], where 1 <= n <= 4 and host1 -
host4 are the names or IP addresses of the other machines in the game. This specifies
which node your machine will be in the game, and must be unique (e.g. two machines in
the same game cannot both specify net 2). In addition, the order of the host addresses
must be consistent across all machines in the game. This number determines the color of
your player's uniform, where net 1 is Green, net 2 is Indigo, net 3 is Brown, and net 4
is Red. Example: -net 3 129.202.14.71 128.177.2.66
-vector <n> specifies the interrupt vector which DOOM should use to communicate
with iDOOM. NOTE: This is NOT the same as the vector used by your packet driver!
Specifying the same vector number for iDOOM and your packet driver will have
unpredictable results. Normally, iDOOM will select an appropriate vector number
automatically; you can use this option to override iDOOM's automatic choice if
necessary. Specify the vector number in C-style HEX notation. Example: -vector 0x61.
-port <n> specifies the port number to be used for the game. The default setting
is 5029, which is the same as the NeXT version of DOOM as well as TCPSETUP. NOTE: All
players involved in the game must use the same port number. In most cases the default
port will work fine; change it only if necessary to avoid conflicts with other network
software.
-debug This parameter causes some uninteresting debugging information to be
printed on the screen.
Differences between iDOOM and TCPSETUP
You may be familiar with another program called TCPSETUP. TCPSETUP was the first
TCP/IP network driver released to the Internet DOOMing community. It worked well for 2-
player games, but as the number of players involved in the game rises, so does the
level of difficulty in establishing and maintaining a connection. The author has
enjoyed many 4-player frag fests on the IPX network in his office, and was frustrated
at being unable to experience 4-player games with his friends on the net. This was the
impetus for the development of iDOOM. Since TCPSETUP is widely used, and many it's
syntax, I have deliberately made iDOOM's command line options compatible with
TCPSETUP's. For those upgrading, iDOOM will be a simple drop-in replacement, requiring
only that the word "tcpsetup" be replaced by "idoom" in batch and config files. Note
that this does NOT mean that iDOOM and TCPSETUP are inter-operable - they do NOT work
together. All nodes in the game must be running iDOOM or the necessary connections will
not be established.
In addition to the TCPSETUP-workalike mode, iDOOM also functions in a
client/server mode. This is a radical departure from earlier methods for starting a
network game - gone are the long command lines (and the attendant crashes caused by the
inevitable typos and omissions). Running iDOOM as a client or server is a much faster,
simpler, and more convenient method of setting up a game.