home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Action Ware 12: Heretic & Hexen
/
actionware12.iso
/
acware12
/
network
/
ifrag
/
ifrag.doc
next >
Wrap
Text File
|
1995-01-17
|
32KB
|
640 lines
iFrag version 2.0 Documentation
This is the documentation for iFrag, a TCP/IP network
driver for games based upon id Software's DOOM<tm> game
engine. iFrag allows up to 4 players to play games based on
the DOOM engine (DOOM, DOOM II, and Heretic) over the Internet
using the TCP/IP protocol suite. iFrag is the successor to the
iDOOM program; the name has been changed for this release
because "it's not just for DOOM anymore."
Acknowledgements
The author of iFrag 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
iFrag is based; Jay Cotton for his tireless efforts in testing
faulty version after faulty version on his multi-machine
network; and, of course, the many, many beta testers (dare I
refer to them as the "Legion of DOOMers"? ;-) who put new
version after new version through the play test wringer, sent
me ideas, offered encouragement, and made criticisms. Thanks
to all of you for helping to make iFrag what it is today and
what it will be tomorrow.
Introduction
iFrag is a program which allows people to play DOOM, DOOM
II, and Heretic against others across the Internet. As
distributed by id, DOOM-engine games come with drivers for
serial connections (using modems and direct serial cables) as
well as networks running the IPX protocol. While this is great
if you have a fast modem (and lots of money to pay the phone
bills!) or if you happen to have 4 Pentium-based PCs in your
rec room connected by a Novell network, what do you do if the
only PC you have access to is sitting in your school's
computer lab and is running the TCP/IP protocol suite? What do
you do if you are the only person in your office who likes to
play DOOM? Enter iFrag, a network driver for DOOM-engine
games. Not only will it allow you to play network DOOM across
the Internet, but since there are so many other players also
connected to the 'net you can easily find opponents
practically any time of the day or night.
Version 2.0 of iFrag is based on a client/server model.
One machine in each game will become a server for that game;
up to three other machines may connect to the server and
become clients. When the server starts the game, the server
machine and all client machines connected to it are launched
into DOOM, DOOM II, or Heretic (whichever is selected).
Another feature of iFrag's client/server architecture is
the built-in chat facility, which allows players who are
waiting for the game to begin to converse with each other by
typing messages on their keyboards. These messages are sent to
the server and broadcast to all the other nodes in the game.
Players can use iFrag's chat facility to negotiate game
parameters, arrange partners for team play, or merely to pass
the time in idle conversation while waiting for other players
to join in.
Of course, the ability to play DOOM over the Internet
isn't particularly useful unless you are able to quickly and
easily find opponents against whom to test your mettle. The
Frag Tracker is a special program (which is always running on
a separate UNIX host) which helps players from all over the
net find each other. Very similar in concept to the game
tracker used by players of the Macintosh game Bolo, it keeps a
list of all the iFrag games which are currently looking for
players. When started, iFrag contacts the Frag Tracker and
downloads this list of active games. It then allows you to
join one of the available games. The Frag Tracker thus acts as
a virtual meeting place for DOOM players from all over the
world.
System Requirements
To use iFrag, 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, most probably unacceptably slow. If
your connection uses anything slower than a 28.8Kbps
compressed SLIP connection, you'll be much better off
investigating another connection method, such as IHHD or
direct MoDOOM.
Installation and Setup
To install iFrag 2.0 on your PC, perform the following
steps:
0) If you have not already done so, 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 iFrag archive.
1) Create a new subdirectory on your hard disk where
iFrag and its related files will be stored. You can name it
whatever you want, but for the remainder of this document we
will refer to this directory as "the iFrag directory." Unzip
the iFrag 2.0 distribution archive into this new subdirectory.
2) Using your preferred ASCII text editor, modify the
iFrag.CFG file in your iFrag directory so that all entries are
correct for your system. You will need to specify the paths to
your game and patch WAD directories, your chosen nickname (the
name by which other iFrag players will know you), the number
of lines you want on your video display (25 or 50), whether or
not you want stealth (no sound) mode, etc. As an example,
let's suppose Joe Ayedume has chosen the nickname FragLord,
and that he has installed DOOM, DOOM II, and Heretic into
their standard directories on his hard disk. The iFrag.CFG
file for Joe's system will look something like this:
;
; Sample iFrag Configuration File
;
; stealth
nick=FragLord
tracker=128.174.134.150,6666
doom=c:\doom
doom2=c:\doom2
heretic=c:\heretic
doompwads=c:\doom\wads
doom2pwads=c:\doom2\wads
hereticpwads=c:\heretic\wads
videolines=50
Edit your iFrag.CFG file to reflect your preferences, and
save the changed file.
3) Using your preferred ASCII text editor, modify the
WATTCP.CFG file in your iFrag directory so that all entries
are correct for your system. You will need to specify your
machine's IP address, the paths to your game and patch WAD
directories, and your chosen nickname (the name by which other
iFrag players will know you). To continue with our example
system, let's suppose Joe Ayedume has an IP address of
128.192.107.212 (machine name: fraglord.hell.com), his
gateway's address is 128.192.107.1, there is a Domain Name
Server at 128.192.107.44, and his sublet mask is
255.255.255.0. The WATTCP.CFG file for Joe's system will have
the following entries:
;
; Sample WATTCP.CFG File
;
my_ip = 128.192.107.212
netmask = 255.255.255.0
nameserver = 128.192.107.44
gateway=128.192.107.1
domainslist="hell.com"
Edit your WATTCP.CFG to reflect your system and
preferences, save the changes, and then return to DOS.
4) Set up the DEFAULT.RSP file with your preferred game
settings. iFrag understands standard DOOM response files,
which are flat ASCII text files containing command line
parameters, one complete parameter per line (see the DOOM
documentation for more information on response files). At
start-up, iFrag loads a special response file called
DEFAULT.RSP, and uses it to set the default game parameters
for your session. Thus, if you play Heretic DEATHMATCH most of
the time, you can add the commands -heretic and -deathmatch to
your DEFAULT.RSP and iFrag will automatically come up with
Heretic DEATHMATCH selected. Any of iFrag's command line
switches may be specified in DEFAULT.RSP (or any response
file, for that matter). For a complete listing of iFrag's
command line switches, see Appendix A of this document. A
sample DEFAULT.RSP is included with your iFrag distribution
and looks something like this:
-heretic
-deathmatch
-skill 5
-nomonsters
-noartskip
-describe KidVid Fears Khan!!!
Save your modified DEFAULT.RSP and return to DOS.
5) iFrag is now installed and ready for fragging!
Using iFrag
Using iFrag is extremely simple - just change into your
iFrag directory and type "iFrag" at the DOS prompt. The iFrag
client-mode screen comes up, and iFrag contacts the Internet
Frag Tracker to see which games are waiting for players at the
moment. Once iFrag has successfully contacted the Frag Tracker
and downloaded the list of available games, a pop-up dialog
box appears on the screen. Using the PgUp and PgDn keys, you
can view a summary of each available game. This game summary
includes the type of game (DOOM, DOOM II, or Heretic), the
address of the "server" machine which is hosting this
particular game, the nicknames of all the players currently in
the game, a brief description/comment, as well as the current
game settings (skill, episode, map, etc.). Once a game which
looks interesting to you is displayed on the screen, press the
<ENTER> key to select it. iFrag will immediately contact the
server machine which is hosting that particular game and
attempt to join it. NOTE: If there are no games currently
looking for players, iFrag will inform you that there are no
games waiting. In that case, you may choose to host your own
game. Use Alt-X to exit iFrag, and then restart iFrag with
iFrag -server
An iFrag server is the coordinator for a particular game.
The player running the server machine is the "boss" - he gets
to decide which game will be played (DOOM, DOOM II, or
Heretic) as well as which parameters to set (such as episode,
map, skill level, which PWADs to use, and so forth). The
server also decides who may be allowed to join the game and
when the game will begin. Although the other players in the
game may voice their opinions, only the server has the ability
to actually make changes to the game settings. In a sense it's
just like watching TV - although there may be four people
watching, only one person can have the remote control.
When you have successfully joined a game, or have begun a
new game of your own, the iFrag chat mode screen appears. 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 is the output window. Here is where iFrag
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 you
type on your keyboard will appear. Finally, the bottom line of
the screen lists significant contributors to iFrag. During
this phase of the game setup, all players who have connected
thus far can type messages to each other using iFrag's built-
in chat facility. To send a message to the other players in
the game, simply type a message on the keyboard. Your
keystrokes appear in the input line at the bottom of the
screen, and when you press <ENTER>, the text will be echoed to
the screens of all players (along with an indication of who
sent the message). The server itself will also send messages.
Messages from the server will begin with three asterisks
("***") to distinguish them from messages typed by other
players.
In addition to sending text messages, iFrag's chat
facility also understands several commands, each beginning
with a slash '/' character. Some examples of iFrag chat mode
commands are /who, /quit, and /help. A complete listing of
available chat mode commands is given in Appendix B at the end
of this document.
When a client connects to the iFrag server, the client
automatically receives the game parameters which will be used
during that session. These game settings are displayed on the
status bar in an abbreviated form to ensure that they will all
fit within the available space.
Once all players have joined the game and all parameters
have been set, the server player presses the F10 key. The
iFrag server signals the clients that the game is beginning,
the chat facility is shut down, and iFrag 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, and iFrag
launches the appropriate game.
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.
Explanation: 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.
Explanation: 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 iFrag 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: iFrag 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: iFrag 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). iFrag requires a class 1 packet driver in order to
function, a limitation of the WATTCP library upon which iFrag
is based. If you know that your packet driver is class 1 but
you still get this message, try re-booting your machine to
install a fresh copy of the packet driver.
Problem: The packet driver is installed and appears to
load correctly, but when iFrag 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.
Problem: Occasionally iFrag will freeze up with this
little yellow blinking asterisk in the lower right hand corner
of the screen (on the status bar). After about 30 seconds, the
flashing asterisk goes away and everything works properly
again. What's going on?
Explanation: This is what we have called "Tracker Lag" -
it is a delay associated with sending game status updates to
the Frag Tracker. Unfortunately there is no known cure for
Tracker Lag, but we're working on it.
Appendix A: Command Line Switch Reference
-doom2 selects DOOM II (the default is DOOM classic).
Similarly, -heretic selects Heretic.
-ticdup <n> and -extratics <n> are used to add extra
(redundant) information to the network packets sent between
machines. This redundant information can sometimes make
marginal (slow) connections a bit more playable. The parameter
<n> is an unsigned integer specifying the number of extra or
duplicate TICs to be sent within each packet.
-server invokes iFrag 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 iFrag in CLIENT mode,
and (optionally) attempts to connect to an iFrag server
running on the machine at <server_address>. Example: -client
128.192.23.5 A copy of iFrag invoked in server mode (with the
-server switch as described in the preceding section) must be
running on the machine whose IP address is specified after -
client. If no server address is specified, iFrag will connect
to the Frag Tracker and download the list of available games.
-notrack is used when you wish to bypass the Frag Tracker
and set up a game among "known" machines or if the Frag
Tracker is otherwise unreachable (e.g. you are playing DOOM on
an isolated sublet). This is especially useful for "private"
games, i.e. games which you want only your friends to join. By
advertising a game on the Frag Tracker, you are implicitly
inviting anyone to join your game; to avoid this, use -notrack
on your server machine and specify the server's IP address
after the -client switch on each client machine.
-describe <string> adds a game description string from
the command line or from within a response file.
-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. NOTE: Setting up a game using the
-net switch bypasses entirely iFrag's use of the Frag Tracker
as well as the initial chat mode. Consequently, each player
must specify not only the IP addresses of all the other
machines in the game, but all of the game parameters (e.g. -
doom2, -altdeath, etc.) as well. Needless to say, this manual
method is a very cumbersome and error-prone way to set up an
iFrag game, and is now obsolete. It is maintained solely for
backwards compatibility with certain front-end programs.
-vector <n> specifies the interrupt vector which DOOM
should use to communicate with iFrag. NOTE: This is NOT the
same as the vector used by your packet driver! Specifying the
same vector number for iFrag and your packet driver will have
unpredictable results. Normally, iFrag will select an
appropriate vector number automatically; you can use this
option to override iFrag'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; this switch allows you
to change it if necessary to avoid conflicts with other
network software.
@<filename> loads and processes a standard DOOM response
file. A response file is a flat ASCII text file containing
iFrag command-line switches, one complete parameter per line.
Each line must be terminated by a CR-LF pair. By convention,
response files end in the .RSP extension (e.g. DEFAULT.RSP,
iFrag.RSP). Example: @HERETIC.RSP
Appendix B: Chat Mode Command Reference
The following commands are recognized by iFrag in chat
mode. NOTE: Some commands may be abbreviated; abbreviations
appear next to the command in parentheses.
/help displays a brief summary of the available commands.
/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
specified in your iFrag.CFG file; use /nick to change it.
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.
/msg sends a message directly to an individual user.
Unlike standard messages, which are broadcast to all
players in the game, text sent with /msg is not echoed to
the screens of other players. This is the chat mode
equivalent of whispering into someone's ear.
/who displays a list of players currently connected to
the server as well as their (tentative) uniform color
assignments and the Internet addresses of their
computers. Note that these colors may change if players
disconnect from the server prior to the start of the
game.
/ping displays the Estimated Connection Quality (ECQ) for
each player in the current game. The ECQ is measured by
sending a short packet of information (called a PING)
from the server to each client and measuring the amount
of time it takes for each client to reply to the PING. A
new PING is sent approximately once per second to each
client, and the resulting round trip times are averaged
to form the ECQ numbers, measured in milliseconds (ms).
As a rough rule of thumb, games where the ECQ for each
node is < 50ms are usually quite playable, assuming that
the amount of "chew" (packet loss, which the ECQ does not
measure) is low. The ECQ can be used to decide whether or
not to play a particular game, or whether to reduce the
number of players (e.g. it is usually best to split a 4-
player game where the ECQ's are high into two separate
(and more playable) 2-player games.
/quit removes you from the game.
The following chat mode commands may only be issued from
the server console:
/doom, /doom2 (/d2), and /heretic (/htic) are used to
select a game to play. Of course, all players in the game
must have a copy of whichever game you select installed
on their machine in order for it to be played. If any
player does not have a copy installed, or the installed
copy of the game is a different version, iFrag will warn
the server operator of this situation. Example: /heretic.
/episode <n> (/ep), and /map <n> are used to select the
initial level to be played. Each is followed by an
integer specifying the episode or map number to select.
The episode and map chosen must make sense within the
context of the currently selected game, e.g. iFrag will
not allow you to select /episode 2 in a game of DOOM II,
since DOOM II does not have episodes, nor will it allow
you to select an episode or map number which is out of
range lime /map 77. Examples: /map 7; /episode 3.
/deathmatch (/dm), /altdeath (/alt), and /coop control
the mode of the network game. As with the episode and map
commands, the mode of the game must make sense within the
context of the currently selected game; iFrag won't allow
you to specify /altdeath mode in Heretic, which only
understands the /deathmatch and /coop modes. Example:
/altdeath.
/nomonsters (/nomon), /respawn (/resp), and /fast control
the appearance of monsters in the game. /nomonsters
removes all monsters from the game so there is nothing to
distract you from wasting your buddies. /respawn makes
the monsters respawn (as they do in DOOM's Nightmare
skill level) whereas /fast makes the monsters move more
quickly.
/skill <n> (/sk) allows you to set the skill level for
the game. The parameter <n> is an integer between 1 and
5. Example: /sk 5.
/kick (/frag) to kick a user out of the game. Example:
/kick NoOne.
/ban is similar to /kick, except it also prevents that
player from rejoining your game.
/launch (/go or the F10 key) to launch DOOM (begin the
game).
/describe (/desc) adds a brief description to the game's
Frag Tracker listing. This may be useful in helping
others decide whether or not to join your game. The
length limit of this description string is 40 characters.
Example: /desc No Wussies Allowed!
/notrack, similar to the -notrack command line switch,
prevents iFrag from reporting your game to the Frag
Tracker. Example: /notrack.
/record <filename> configures DOOM to record a
multiplayer demo .LMP file of your game. Specify only the
root filename of the file where you wish your demo to be
saved (i.e. leave off the .LMP extension). To cancel
recording, type /record by itself with no filename.
Example: /record tourney.
/timer <n> and /avg specify a time limit for each level
in the game.
/update causes iFrag to send an immediate game status
update to the Frag Tracker. Normally iFrag will send a
Frag Tracker update whenever a game parameter is changed,
a player joins or leaves the game, or once every few
minutes if there is no other activity (since the Frag
Tracker will expire games which have not send a recent
update, this behavior keeps the game "alive" on the
Tracker). Normally you won't need to use this command.
Example: /update.
/pwads <string> tells iFrag which PWADs, if any, you wish
to load when the game is launched. There is no limit on
the number of PWADs you can specify, but there is a 40-
character length limit on the entire string. Be certain
you enter the filenames WITHOUT any path specification
but WITH the .WAD file extension. iFrag checks to make
sure that all players have the PWADs you specify here
installed in the PWAD directory for the currently
selected game (as specified in iFrag.CFG). Example:
/pwads LEDGES.WAD FRAGASM7.WAD OCTAFRAG.WAD.
/load <filename> and /save <filename> let you load and
save response files. You can use response files to store
various "theme" parameter combinations for rapid
retrieval at a later time. For example, a LEDGES.RSP
might set up DOOM with /altdeath, /nomonsters, /skill 5
and /pwads LEDGES.WAD. Incidentally, iFrag loads the
response file DEFAULT.RSP automatically at start-up, and
creates the file iFrag.RSP when DOOM is launched. Thus,
/load iFrag.RSP can be used to reload the parameters used
for the last game and /load DEFAULT.RSP will restore your
default settings. Example: /load CARNAGE.RSP.
/games queries the Frag Tracker displays a listing of
waiting games (including your own). Use /games to check
your own game entry or to see who else is playing.
/away and /back are used when you have set up a server
and are waiting for players to join your game but you
must step away from your console momentarily (to answer
the phone, for example). By issuing the /away command,
players are notified that you have stepped away but that
you will return shortly. Use the /back command to notify
the others of your return.