               C l i e n t / S e r v e r    D O O M
------------------------------------------------------------------------------

Programmed by Sergey Makovkin (sergeym@mail.infotel.ru).
Readme written by Bill Koch (bloodshedder@hotmail.com).

Original game & sources by: Id Software.

csDoom web site: http://csdoom.sourceforge.net
        mail to: sergeym@mail.infotel.ru

csDoom is based on ZDoom 1.22 (http://zdoom.notgod.com/)

------------------------------------------------------------------------------

-----------------
Table of Contents
-----------------

[1] What client/server Doom is
[2] Installing csDoom
       *1* System Requirements
       *2* Procedure
[3] Playing csDoom
       *1* Client Portion
       *2* Dedicated Server Portion
[4] Console Commands
       *1* Client Settings
       *2* Server Settings
[5] Disclaimer


------------------------------
[1] What client/server Doom is
------------------------------

You probably have tried to play Doom DeathMatch over the Internet before.
Unless you have a high speed connection, the games were probably very laggy,
or you couldn't get it to work at all. Client/Server Doom (csDoom) is
designed for people with slow connection speeds.  Having a dedicated server
on a high speed line to host players allows better pings and fewer dropped
packets.  But if you don't know what those things are, don't worry.  Just
have fun playing Doom DeathMatch over the Internet.  But watch out for
those LPB's!

csDoom will do for Doom what QuakeWorld did for Quake:  revolutionize
Internet DeathMatch by optimizing settings for modem users, and possibly
open up a whole new world of Doom multiplayer DeathMatch Modifications!


---------------------
[2] Installing csDoom
---------------------

*1* System Requirements

14,400 bps modem
A computer that can run ZDoom (http://zdoom.notgod.com/) well.

*2* Procedure

#NOTE#: csDoom REQUIRES that you have version Doom II 1.9 or Ultimate Doom.
        To get patches to upgrade your version, go to:
        http://www.idsoftware.com/archives/doomarc.html
        to upgrade Doom I to Ultimate Doom and
        http://www.idsoftware.com/archives/doomii.html
        to upgrade Doom II to version 1.9.

* Windows 95/98/NT

Unzip all files included in the archive into your Ultimate Doom/Doom II
directory. It's that simple.

* Linux

First, get Hermes and install it if you haven't already. You can get it
from http://www.halyava.ru/fly/Hermes-1.3.1-1.i386.rpm or from
http://hermes.terminal.at

Untar the binary distribution into /usr/local/csdoom directory.  Copy your
DOOM IWAD files to /usr/local/csdoom.  csDoom will also look for IWADs in
~/.zdoom and $DOOMWADDIR.  Copy libzdoom-x.so and libzdoom-svgalib.so into
/usr/local/lib directory.  If you aren't going to run the csdoom client,
you don't need libzdoom-x.so and libzdoom-svgalib.so files.

------------------
[3] Running csDoom
------------------

*1* Client Portion

The easy way:

Simply run the csDoom Launcher in your Doom(2) directory (csdLauncher.exe).
This program connects to the master server and retrieves a list of all the
running game servers.  To play, simply select one, put in any extra
parameters in the Additional Settings box, and hit the Launch button.
If the server is running a custom Wad, you MUST have the Wad in your Doom
directory before you can play on that server.  You do not need to specify
it yourself; the Launcher will launch the client with the Wad loaded.
If this isn't working for you, or you have the Linux version, see below.

The hard way:

To join a game manually, run doomcl.exe, go to the console, and type
"connect <internet address>".  Or, you can run doomcl.exe like so:

   doomcl.exe -connect <internet address>

Be sure to (duh!) replace <internet address> with the actual IP number or
host name you are connecting to. If the server is running on a port other
than 10666 (default), type "connect <internet address:port>" in the console
or run doomcl.exe like so:

   doomcl.exe -connect <internet address:server port>

If, for some reason, that the default port the client uses (which is 10667)
is in use on your machine, you must start the client like this:

   doomcl.exe -connect <internet address:server port> -port <client's port>

This tells the server that the client is using a port other than the default
10667, and that the server should send packets to the specified port.

To disconnect from the server, just type "disconnect" in the console.
To reconnect to the server you were just connected to, type "reconnect" in
the console.

*2* Dedicated Server Portion

#NOTE#: To host your own dedicated server it is HIGHLY recommended that
        you have a DSL line, equivalent, or faster.

To host your own dedicated server, run the following:

   doomsv.exe [-skill <1-5>] [-warp <01-32/e1m1-e4m9>]
              [-port <port #>] [-file <filename>]
              [-maxclients <max # clients>] [+set dmflags <value>]

If run without any parameters, csDoom server starts on MAP01 or E1M1,
skill 5, port 10666, and weapons stay, items respawn. -deathmatch and
-nomonsters parameters are not needed, because csDoom server is always set
to be DeathMatch and there are never monsters.  csDoom server supports up to
8 players. To connect to your local server with a local client, start the
client and type "connect 127.0.0.1" or "connect localhost" in the console.
But this would likely be unfair because you would have a VERY low ping!


--------------------
[4] Console Commands
--------------------

*1* Client Settings

The rate setting limits the speed the server sends data to you by
dropping data internally.  This is more efficient that losing packets
externally.  To change the setting, type "rate <whatever>" in the console.
Best settings are:

14,400 Modem                            -       1400
28,800 Modem                            -       2500 (default setting)
33,600 Modem                            -       3000
56k, ISDN                               -       4000
Really fast (DSL, cable, Tx, OCx)       -       More than 5000,
                                                whatever you can
                                                handle

The "cl_predict_players <1|0>" command turns player prediction on or off.
It is enabled by default.  When prediction is turned on, players should move
smoother.  csDoom does not try to show the real position of players as
QuakeWorld does using "pushlatency".  It just predicts players' movements
while waiting for the next packet from the server.  When the client receives
the packet with player coordinates, it sets the player's new position.  It
is advised that you leave prediction on even if you have a fast connection.
To turn it off, type "cl_predict_players 0" in the console.

The "stat net" console command shows a string that shows you how many bytes
you receive and send per second.  It will like something like this:

  "in = 2237  out = 840"

To watch a ping value or see frag counts, bind a key to +showscores from
the console (for example, bind tab "+showscores").

The console command "cl_maxcorpses <number>" allows you to set the maximum
number of player corpses allowed in the map, to keep from slowing the game
down too much in certain bloody situations (think MAP01, 8 players).  The
default is 15.

*2* Server Settings

To set up map cycling on a server, you must first add the map name to the
cycle list with the "addmap" command.  The "maplist" commands shows the
maps currently in the cycle list.  To clear the cycle list, simply type
"clearmaplist".  For example:
addmap map01
addmap map07
addmap map16
fraglimit 50
timelimit 60

When either the frag or time limit is reached, the server will load
the next map in the list.  "maplist" would show map01,07, and 16 in the
list.  If you are unhappy with the list, just clear it.  You can add
more maps to it at any time.

fraglimit <number>
default: 50
If this cvar is non-zero, the game will automatically advance to the next
level in the cycle list once anyone gets this many frags. If you haven't
set up map cycling, the game will restart on the same map.

timelimit <number>
default: 30
When this cvar is non-zero, the game will automatically advance to the
next level in the cycle list after this many minutes have elapsed.

dmflags <number>
default: 17412 (4 + 1024 + 16384)
This cvar controls the behavior of several aspects of gameplay. To
determine what value to store in this cvar, select the desired features
from the table below and add their values together.

Value  Description
------  -----------------------------------------------------------------
     1  Do not spawn health items
     2  Do not spawn powerups
     4  Leave weapons around after pickup
     8  Falling too far hurts
    16  Players cannot hurt teammates (friendly fire avoidance)
   128  Spawn players as far as possible from other players
   256  Automatically respawn dead players
   512  Do not spawn armor
  1024  Kill anyone who tries to exit the level
  2048  Don't use any ammo when firing
 16384  Powerups other than invulnerability and invisibilty respawn
 65536  Don't allow jumping
131072  Don't allow freelook
262144  Invulnerability and invisibility respawn

master <1|0>
default: 1
This command lists the server you are running on the master server list
when its value is 1.  To make your server more private and not have the
master server list it, simply change its value to 0.

--------------
[5] Disclaimer
--------------

Even though you can frag people in real-time, this program should not
promote you killing family, friends, others, or yourself.  Remember, it is
just a game.

Client/Server Doom by Sergey Makovkin (Fly)  (sergeym@mail.infotel.ru)
Readme written by Bill Koch (Bloodshedder)  (bloodshedder@hotmail.com)
