home *** CD-ROM | disk | FTP | other *** search
/ Ultimate DOOM Companion / PowersourceMultimedia-UltimateDOOMCompanion.iso / goodies / idoom11y.zip / IDOOM.DOC next >
Text File  |  1994-10-16  |  23KB  |  448 lines

  1.  
  2.                iDOOM version 1.1 WB Documentation
  3.  
  4.      This is the documentation for iDOOM, a TCP/IP network driver for id
  5. Software's DOOM<tm>. iDOOM allows up to 4 players to play DOOM over the
  6. Internet using the TCP/IP protocol suite. iDOOM 1.1 is a "Wide Beta"
  7. release. This means that it is stable enough to be released to the Internet
  8. DOOM community at large, but users should still be on the lookout for bugs.
  9. Please email any comments, suggestions, or bug reports to asre@uiuc.edu.
  10.  
  11.  
  12. Features
  13.  
  14.      Many of iDOOM's features are brand new for this release. They
  15. include:
  16.  
  17.      * Stable support for a full 4 players, limited only by the quality of
  18.      network connections.
  19.  
  20.      * Full support for both DOOM I and DOOM II.
  21.  
  22.      * Full support for DOOM response files.
  23.  
  24.      * Automatic parameter comparison amongst all machines in the game to
  25.      insure that all machines are running with identical game settings.
  26.      This prevents crashes or other unexpected behavior due to one player
  27.      making a typo on the command line or forgetting to add a parameter. 
  28.  
  29.      * An easy-to-use client/server mode which, along with support for
  30.      response files, eliminates the need for long command lines.
  31.  
  32.      * Command line compatibility with TCPSETUP 0.9B. Any shell program
  33.      designed for use with TCPSETUP, such as the Frag Client, will also
  34.      work with iDOOM.
  35.  
  36.      * A multiuser chat facility built right in. iDOOM's chat interface is
  37.      modeled after that used by IRC (the Internet Relay Chat).
  38.  
  39.      * Interactive parameter changing during game setup. The game
  40.      parameters can be easily changed from the server console via commands
  41.      such as /episode, /map, /skill, etc. 
  42.  
  43.      * A built-in "dialing directory" which stores the names and internet
  44.      addresses of other iDOOM players. At startup, the iDOOM server for
  45.      the current game can be selected from a pop-up pick list of these
  46.      "known" players.
  47.  
  48. System Requirements
  49.                                
  50.      To use iDOOM, you must have the following:
  51.  
  52.      * A machine capable of running DOOM (of course).
  53.  
  54.      * A standard packet driver. Note that a packet driver is different
  55.      than the drivers commonly used for network operating systems such as
  56.      Novell. 
  57.  
  58.      * A connection to the Internet. Note that a DIRECT connection is
  59.      preferable to a SLIP or PPP connection. Although it is possible to
  60.      play DOOM over a SLIP or PPP connection, due to DOOM's high bandwidth
  61.      requirements the game will be slow (unacceptably slow in the opinion
  62.      of the author).
  63.  
  64.                         Acknowledgements
  65.  
  66.      The author of iDOOM wishes to acknowledge the contributions of the
  67. following people: id Software, certainly for making DOOM but also for being
  68. cool enough to release the source code to their network drivers; Jake Page,
  69. author of TCPSETUP, for blazing the trail and setting the example; Eric
  70. Engelke, author of the (free!) WATTCP TCP/IP kernel upon which iDOOM is
  71. based; Jay Cotton for his tireless efforts in testing faulty version after
  72. faulty version on his multimachine network; and, of course, everyone who
  73. has sent me ideas, encouragement, and criticisms. Thanks to all of you for
  74. helping to make iDOOM what it is today and what it will be tomorrow.
  75.  
  76. Installation and Setup
  77.                                
  78.      To install iDOOM on your PC, perform the following steps:
  79.      
  80.      1) Obtain and install the appropriate packet driver for your network
  81. card. Instructions for doing this are included with your card and/or with
  82. the packet driver. For information on how to obtain a packet driver, as
  83. well as additional help with troubleshooting your TCP/IP configuration, see
  84. the Internet DOOM FAQ which should be included with this iDOOM archive.
  85.  
  86.      2) If you haven't already done so, unzip the iDOOM distribution
  87. archive into your DOOM directory. This will extract the iDOOM.EXE file,
  88. this document, and the other support files needed by the program.
  89.  
  90.      3) Using your preferred ASCII text editor, modify the WATTCP.CFG file
  91. in your DOOM directory so that the my_ip, gateway, nameserver, and netmask
  92. entries are correct for your system. The resulting file will look something
  93. like this:
  94.  
  95. my_ip=128.192.23.5
  96. gateway=128.192.23.1
  97. netmask=255.255.255.0
  98. nameserver=128.192.44.67
  99.  
  100.      Save the changes and return to DOS. 
  101.  
  102.  
  103.      4) Again using your ASCII text editor, modify the sample PLAYERS.DAT
  104. file that comes with the iDOOM distribution. PLAYERS.DAT is iDOOM's
  105. "dialing directory" - it contains a listing of player nicknames and their
  106. IP addresses. You can add the people you play against frequently to this
  107. file and save yourself from having to type their IP address each time one
  108. of them is the iDOOM server. The file consists on one or more lines of the
  109. form
  110.  
  111.      player=<nickname>,<IP_address>
  112.  
  113. Where <nickname> is the player's nickname (15 characters or less) and
  114. <IP_address> is the IP address of that player's machine. The resulting file
  115. will look something like this:
  116.  
  117. player=Fragbait,128.192.23.4
  118. player=FragLord,128.192.23.5
  119. player=Homer,128.192.23.6
  120.  
  121.      Be sure to add yourself to the list of players. Save the changed file
  122. and return to DOS.
  123.  
  124.      5) iDOOM is now installed and ready for fragging! 
  125.  
  126.  
  127. Using iDOOM
  128.  
  129.      First, go find up to three of your most patient frag buddies. If this
  130. is your first attempt at Internet DOOM, it's best to try and find someone
  131. on your local network who's willing to put in a little frag time with you.
  132. Connections on your local net will be faster and less problematic, whereas
  133. if you attempt a long distance connection your first time out, you'll have
  134. a hard time discerning problems caused by distance from problems caused by
  135. an incorrect configuration.
  136.  
  137.      Decide amongst yourselves which machine will be the "server" (the
  138. remaining machines in the game will all be "clients"). The server machine
  139. (and there can only be ONE server per game) acts as the coordinator for
  140. that session. The player operating the server is in some sense "the boss" -
  141. she can decide when to start the game, which parameters (e.g. -altdeath, -
  142. nomonsters, -warp, -skill, etc.) will be used, whether to kick a player
  143. out, and so on.
  144.  
  145.      The server starts iDOOM as follows:
  146.  
  147. iDOOM -server [other game parameters]
  148.  
  149.      Once the server has started iDOOM running, the clients (all remaining
  150. players) can then connect to the server. Each client invokes iDOOM using
  151. the command line:
  152.  
  153. iDOOM -client [<server_address>]
  154.  
  155.      As an example, consider several computers which are part of a local
  156. area network in a computer lab. In this lab there are identical machines
  157. sitting side by side, with sequential IP addresses, i.e. 128.192.23.4,
  158. 128.192.23.5, and 128.192.23.6. After stepping through the basic
  159. configuration process outlined above on all test machines, my frag buddies
  160. and I are ready to begin. First, we all agree to play our favorite
  161. DEATHMATCH level, DOOM I episode 1 map 5. We also agree to play in -
  162. altdeath mode, with -skill 5 and -nomonsters. On my machine, which we
  163. decided will be the server, I type:
  164.  
  165. iDOOM -server -warp 1 5 -altdeath -skill 5 -nomonsters
  166.  
  167.      The iDOOM screen comes up, and a message is displayed informing me
  168. that iDOOM is entering server mode. This screen is divided into several
  169. sections: the credits, the output window, the status bar, and the input
  170. line. At the top of the screen is the name of the program, its version
  171. number, and the copyright notice. The large area beginning with the second
  172. screen line and continuing to the 22nd screen line is the output window.
  173. Here is where iDOOM will display all status messages as well as the chat
  174. text entered by the other players. Below the output window is the status
  175. bar, where the current game settings are displayed. Below the status bar is
  176. the input line where all the text I type on my keyboard will appear.
  177. Finally, the bottom line of the screen lists significant contributors to
  178. iDOOM.
  179.  
  180.      Once my iDOOM server is up and running, all the other players can
  181. connect to it. The other guys type:
  182.  
  183. iDOOM -client
  184.  
  185.      Since we created a PLAYERS.DAT file on each of the machines, iDOOM
  186. displays a picklist of the iDOOM players it knows about. Using the arrow
  187. keys, each of my opponents selects my machine from the list and presses
  188. <ENTER> to establish the connection. NOTE: If my server machine were not
  189. listed in their PLAYERS.DAT files, they would have had to specify my
  190. server's address on their command lines, e.g. iDOOM -client 128.192.23.5. 
  191.  
  192.      After pressing <ENTER>, the clients will display the normal iDOOM
  193. chat mode screen, the layout of which is identical to that of my server.
  194. iDOOM displays a message confirming that it is entering client mode and
  195. connecting to the server. As each client's connection is established, the
  196. server announces arrival of each player. 
  197.  
  198.      During this phase of the game setup, all players who have connected
  199. thus far can type messages to each other using iDOOM's built-in chat
  200. facility. To send a message to the other players in the game, I simply type
  201. my message on the keyboard. My keystrokes appear in the input line at the
  202. bottom of the screen, and when I press <ENTER>, the text will be echoed to
  203. the screens of all players (along with an indication of who sent the
  204. message). The identical procedure can be used to send messages from each of
  205. the client machines. The server itself will also send messages. Messages
  206. from the server will begin with three asterisks ("***"). 
  207.  
  208.      When a client connects to the iDOOM server, the client receives a
  209. message containing the game parameters which will be used during that
  210. session. These game settings will be displayed on the status bar. The
  211. settings are abbreviated to ensure that they will all fit within the
  212. available space. These parameters may be modified as desired by the server
  213. console operator (for the full list of available commands, see the iDOOM
  214. chat facility command reference section at the end of this document).
  215.  
  216.      Suppose that my friend sees that I have selected E1M5 as the default
  217. episode and map for our game. He reminds me that we've been playing that
  218. one a lot lately, and suggests we change to E2M2 since we haven't played
  219. that one in a while. I agree, and issue the commands "/episode 2" and "/map
  220. 2" to change the level. Our status lines are immediately updated to reflect
  221. these changes.
  222.  
  223.      Once I have determined (via the chat facility) that everyone is ready
  224. to begin the game, I press the F10 key. The iDOOM server signals the
  225. clients that the game is beginning, the chat facility is shut down, and
  226. iDOOM sets up the connections which will be used for the actual game. Once
  227. these network links are established between all the machines, the message
  228. "Prepare to meet your DOOM!" is displayed, followed by the usual DOOM
  229. startup information. Shortly thereafter, the screen melts away and there we
  230. are, in E1M5, pistols at the ready! (I won that game, by the way. ;-)
  231.  
  232.                                 
  233.               Common Problems and Their Solutions
  234.  
  235.      Problem: The game is VERY SLOW. The speed of the game is all right
  236. most of the time, but there are periodic slowdowns and speed-ups. The game
  237. started off slow, and got slower and slower until finally it ground to a
  238. complete halt. 
  239.  
  240.      Solution: All of the above problems are the result of a poor quality
  241. net connection. To borrow terminology from other Internet games, the two
  242. phenomena of interest are "lag" and "chew". Lag is the amount of time it
  243. takes for a packet sent my one machine to reach its destination. It's
  244. possible to get an idea of the lag time between machines using a program
  245. called PING, which send a packet out, waits for a reply, and measures the
  246. total time taken. Since the rate at which DOOM plays is dependent upon the
  247. rate at which the packets from other machines come in,  if one or more
  248. machines involved in the game is on a slow portion of the net the game will
  249. slow down for everybody. This is why players who are connected to the
  250. Internet via SLIP, PPP, or 56kb connections are frustrating to play
  251. against. Chew can be thought of as "packet loss" - essentially the network
  252. chews up the packets and they disappear. Since the UDP protocol has no
  253. mechanism for ensuring that a given packet will reach its destination,
  254. packet loss is a definite possibility on busy networks. While DOOM can
  255. compensate for this by including "backup tics" (information for the current
  256. time period as well as previous time periods) in each game data packet, it
  257. takes time for the new packets to get through, resulting in "bursty" game
  258. play. Chew can also be estimated using the PING program, which usually
  259. reports a "% packet loss" statistic. In general, if PING reports that a
  260. machine has a long packet round trip time or a high percentage of lost
  261. packets, any DOOM games involving that machine and yours will suffer from
  262. speed problems. The worst part is there's nothing anyone can do about it,
  263. short of installing a direct fiber-based ATM backbone between your machine
  264. and his. About the best you can do is try again at another time and hope
  265. that the network between you is less busy then.
  266.  
  267.  
  268.      Problem: DOOM runs for a little while, but then it crashes to DOS
  269. with an error message saying something about NUMTICS and BACKUPTICS. 
  270.  
  271.      Solution: This error seems to crop up frequently when players use
  272. slow and/or lossy network connections. At the time of this writing, the
  273. exact cause of this problem is unknown. Although recent changes to iDOOM
  274. seem to have reduced the occurrences of this problem, the problem is
  275. apparently a bug in DOOM which only shows up under extreme conditions. If
  276. this happens to you about all you can do is restart the game, perhaps with
  277. a smaller number of players.
  278.  
  279.  
  280.      Problem: iDOOM returns to DOS saying "NO PACKET DRIVER FOUND." 
  281.  
  282.      Solution: Make sure that you have a packet driver installed and that
  283. it is being loaded correctly. Note that it is easy to mistake other types
  284. of drivers, such as those used in Novell networks, for packet drivers as
  285. they have similar or even identical names. When in doubt, download the
  286. Crynwr packet drivers and install the one for your card. 
  287.  
  288.  
  289.      Problem: iDOOM returns to DOS saying "Error 0xAA accessing packet
  290. driver."  
  291.  
  292.      Solution: Either something has clobbered your packet driver in memory
  293. or you are using a packet driver which does not identify itself as "class
  294. 1" (such as SLIP and PPP drivers). iDOOM requires a class 1 packet driver
  295. in order to function, a limitation of the WATTCP library upon which iDOOM
  296. is based. If you know that your packet driver is class 1 but you still get
  297. this message, try rebooting your machine to install a fresh copy of the
  298. packet driver.
  299.  
  300.  
  301.      Problem: The packet driver is installed and appears to load
  302. correctly, but when iDOOM is run nothing happens. 
  303.  
  304.      Solution: When installing the packet driver, make certain that the
  305. correct parameters are used on its command line. On some network interface
  306. cards, improper settings can still cause the packet driver to APPEAR to be
  307. loading correctly, only to have a failure occur when an actual
  308. communication attempt is made. Also, make sure that there is no other
  309. software loaded which is also trying to use the network card at the same
  310. time, such as a Novell network driver. The cleaner the boot, the better it
  311. is for DOOM. The ideal configuration would load only the packet driver and
  312. the mouse driver - no HIMEM, no EMM, no Novell drivers, no QEMM, no
  313. SMARTDRV, etc. DOOM doesn't need them, and they may cause conflicts. The
  314. author's system uses MS-DOS 6's built-in multiple configuration facility.
  315. This allows easy selection of either a normal configuration or a DOOM
  316. configuration at boot time.
  317.  
  318.  
  319.                    Chat Mode Command Reference
  320.  
  321.      iDOOM's chat facility understands the following commands. Most begin
  322. with a slash '/' character. 
  323.  
  324.      /help displays a brief summary of the available commands (in case you
  325.      forget ;-)
  326.  
  327.      /nick changes your nickname. Your nickname is used by the server to
  328.      identify the source of a particular message (so players can tell who
  329.      said what). The default nickname is the IP address of the machine you
  330.      are using for iDOOM; use /nick to specify something a little more
  331.      mnemonic. Example: /nick Khan
  332.  
  333.      /me prints a message in which you can refer to yourself in the third person
  334.      (usually used to describe an action). Example: If your nickname is Jim and you
  335.      type "/me yawns" everyone will see the text "* Jim yawns" on their screen.
  336.  
  337.      /who displays a list of players currently connected to the server as well as
  338.      their (tentative) uniform color assignments. Note that these colors may change if
  339.      players disconnect from the server prior to the start of the game.
  340.  
  341. iDOOM also understands some keystroke commands:
  342.  
  343.      Alt-X is used to exit the current session.
  344.  
  345.      NOTE: Although Ctrl-Break will cause iDOOM to immediately stop and return to DOS,
  346.      its use is not recommended. Using Ctrl-Break can leave the packet driver and/or
  347.      the computer itself in an unstable state, possibly requiring a reboot.
  348.  
  349.  
  350. Certain commands may only be issued from the server console. These commands are:
  351.  
  352.      /kick to kick a user off the server (and thus out of the game). Example: /kick
  353.      NoOne
  354.  
  355.      /map <n> to change the starting map for the game. Example: /map 5
  356.  
  357.      /episode <n> to change the episode (in DOOM I). Example: /episode 3
  358.  
  359.      /skill <n> to change the skill setting. Example: /skill 5
  360.  
  361.      /deathmatch to enable DEATHMATCH network mode.
  362.  
  363.      /altdeath to enable DEATHMATCH 2.0 network mode.
  364.  
  365.      /coop to enable COOPERATIVE network mode.
  366.  
  367.      /nomonsters toggles monsters on and off. Issue /nomonsters to get rid of the
  368.      monsters; issue /nomonsters again to bring them back.
  369.  
  370.      /respawn toggles respawning of monsters.
  371.  
  372.      /fast toggles monster speed.
  373.  
  374.      /record [<filename>] to record the session into a demo LMP. You specify the file
  375.      name for the resulting demo (sans the .LMP extension). Use /record with no
  376.      filename to disable demo recording mode.
  377.  
  378.      /avg toggles the -avg command line switch. Issuing /avg once will enable AVG mode
  379.      and the game will end automatically after 20 minutes. Issue /avg again to disable
  380.      the timer function. NOTE: This is equivalent to issuing a /timer 20 command.
  381.  
  382.      /timer <n> sets the time limit for the game to <n> minutes. If <n> is 0, the
  383.      timer function is disabled. Example: /timer 60.
  384.  
  385.      Finally, the F10 function key ends setup and launches DOOM.
  386.  
  387.  
  388.      Command Line Switch Reference
  389.  
  390.      -server invokes iDOOM in SERVER mode. There can only be ONE server in any game,
  391. and all desired game settings must also be specified on the server's command line. 
  392.  
  393.      -client <server_address> invokes iDOOM in CLIENT mode, and attempts to connect to
  394. an iDOOM server running on the machine at <server_address>. Example: -client
  395. 128.192.23.5
  396.  
  397.      -d2 specifies that this is a game of DOOM II (the default is DOOM classic).
  398. Adding this switch will cause iDOOM to launch the DOOM II executable instead of the
  399. DOOM executable, and it will also change the interpretation of the -warp parameter
  400. (DOOM takes two values, episode and map, along with -warp; DOOM II has only one big
  401. episode, so it only needs a map number).
  402.  
  403.      -net <n> <host1> [<host2> [<host3> [<host4>]]], where 1 <= n <= 4 and host1 -
  404. host4 are the names or IP addresses of the other machines in the game. This specifies
  405. which node your machine will be in the game, and must be unique (e.g. two machines in
  406. the same game cannot both specify net 2). In addition, the order of the host addresses
  407. must be consistent across all machines in the game. This number determines the color of
  408. your player's uniform, where net 1 is Green, net 2 is Indigo, net 3 is Brown, and net 4
  409. is Red.  Example: -net 3 129.202.14.71 128.177.2.66
  410.  
  411.      -vector <n> specifies the interrupt vector which DOOM should use to communicate
  412. with iDOOM. NOTE: This is NOT the same as the vector used by your packet driver!
  413. Specifying the same vector number for iDOOM and your packet driver will have
  414. unpredictable results. Normally, iDOOM will select an appropriate vector number
  415. automatically; you can use this option to override iDOOM's automatic choice if
  416. necessary. Specify the vector number in C-style HEX notation. Example: -vector 0x61.
  417.  
  418.      -port <n> specifies the port number to be used for the game. The default setting
  419. is 5029, which is the same as the NeXT version of DOOM as well as TCPSETUP. NOTE: All
  420. players involved in the game must use the same port number. In most cases the default
  421. port will work fine; change it only if necessary to avoid conflicts with other network
  422. software.
  423.  
  424.      -debug This parameter causes some uninteresting debugging information to be
  425. printed on the screen.
  426.  
  427.                   Differences between iDOOM and TCPSETUP
  428.  
  429.      You may be familiar with another program called TCPSETUP. TCPSETUP was the first
  430. TCP/IP network driver released to the Internet DOOMing community. It worked well for 2-
  431. player games, but as the number of players involved in the game rises, so does the
  432. level of difficulty in establishing and maintaining a connection. The author has
  433. enjoyed many 4-player frag fests on the IPX network in his office, and was frustrated
  434. at being unable to experience 4-player games with his friends on the net. This was the
  435. impetus for the development of iDOOM. Since TCPSETUP is widely used, and many it's
  436. syntax, I have deliberately made iDOOM's command line options compatible with
  437. TCPSETUP's. For those upgrading, iDOOM will be a simple drop-in replacement, requiring
  438. only that the word "tcpsetup" be replaced by "idoom" in batch and config files. Note
  439. that this does NOT mean that iDOOM and TCPSETUP are inter-operable - they do NOT work
  440. together. All nodes in the game must be running iDOOM or the necessary connections will
  441. not be established.
  442.  
  443.      In addition to the TCPSETUP-workalike mode, iDOOM also functions in a
  444. client/server mode. This is a radical departure from earlier methods for starting a
  445. network game - gone are the long command lines (and the attendant crashes caused by the
  446. inevitable typos and omissions). Running iDOOM as a client or server is a much faster,
  447. simpler, and more convenient method of setting up a game.
  448.