Doomsday 1.0 pre
2nd Client/Server Network Test with JDoom/JHeretic
--------------------------------------------------
by Jaakko Kernen <jkeranen@raven-games.com>
7/2/2000

See http://www.raven-games.com/jhexen and the message boards at
Raven-Games.com and NewDOOM.com for the latest happenings.

CONTENTS
* What is this?
* Operating a non-dedicated server
* Dedicated servers
* Client mode
* Using DMaster
* Feedback and bug reports
* First aid


WHAT IS THIS?
The purpose of this release is to determine how well the current network
code is actually working. It has been upgraded to full client/server
networking, meaning players can join and leave a game whenever they wish
and there can now be dedicated servers running in text mode.

The engine already supports the new dynlight blending (dlblend 0), but it's
not finished yet: you will notice artifacts around polygon edges and when
fog is active the surfaces that have dynamic light on them will be rendered
without textures. The MD2 support is also in there, take a look at the
model definition file ModelDef.txt.

The engine will only work with the included JDoom and JHeretic DLLs. The
only available renderer at this time is the OpenGL one. Copy any missing
files you might need from the earlier versions of JDoom and JHeretic.


OPERATING A NON-DEDICATED SERVER
The Multiplayer menu is currently out of order, so you'll have to use the
console in starting a server or connecting to one. Like in earlier versions
of Doomsday, everything you need is accomplished with the "net" command.
Limbo mode has been removed, so operating a server should be a bit simpler
than before. The procedure is as follows:

1. Configure the server by setting proper values for the console variables
"n_servername", "n_serverinfo", "n_map", "n_episode" and "n_skill". Keep in
mind that clients will be connecting to the server using the name you
specify with "n_servername", so keep it simple.

2. Initialize the service provider, i.e. the protocol. For instance, "net
init tcpip". Optionally (with TCP/IP), use the command "net tcpip port
(number)" to specify the port to use, for example "net tcpip port 10000".
Leaving it to port 0 will tell DirectPlay to use the default ports.

3. Start the server with the command "net server start".

4. Use the command "setmap" to change the level at any time. "setcolor"
will change your player color. I'll let you guess what "setname" does.

5. The command "net server close" will shut down the server and disconnect
all clients.


DEDICATED SERVERS
You start a dedicated server by using the "-dedicated" command-line option.
The game begins normally but all you'll see is a text mode representation
of the console. You can now start the server exactly like a non-dedicated
one, but you don't have to worry about your name and player color because
the server naturally hasn't got a player when running in dedicated mode.
You can place the init commands in autoexec.cfg for convenience.

Notice: You need to use the "quit!" command to exit a dedicated server.

The player limit is 15 on dedicated servers.


CLIENT MODE
Connecting to a server as a client is quite straightforward. Before doing
anything it's a good idea to make sure your player name and color are what
you want them to be. You can use the commands "setname" and "setcolor" even
when off-line. Notice that you can use your player number as a color if you
do "setcolor 4" (both Doom and Heretic have four player colors: 0-3).

1. Initialize the protocol, just like you would when starting a server.

2. If not using the IPX protocol, specify the address of the server (see
the old Network.txt for details). For instance (with TCP/IP), you'll need
"net tcpip address (ip address)" and "net tcpip port (port)" (if the server
uses a custom port).

3. Issue the command "net search" as many times as it takes to see the
server you're looking for.

4. "net connect (server name)" will connect you to the server.

5. "net disconnect" will disconnect you.

The server's mobj visibility checker is still slightly inaccurate. Clients
will often see objects disappear if their lower edge becomes obstructed.


USING DMASTER
DMaster is a simple master server program that keeps track of all the
running Doomsday servers on the Internet. Clients can ask the master for
the list. Use the console variables "masterAddress" and "masterPort" to
define the master server's location. Before starting a server, set the cvar
"sv_masteraware" to one to allow the server to inform the master of its
existance. After "net init (something)", clients can use the console
command "net servers" to send a server list request to the master. The
returned list of servers has indices, use "net connect (index)" to connect
to one of the listed servers.


FEEDBACK AND BUG REPORTS
I'm extremely interested in hearing out how it goes. I would appreciate it
if you sent the feedback to jkeranen@raven-games.com with the subject
"DTest2 Results". It is vital that you attach your Doomsday.out since it
contains a dump of all the text in the console and is thus very helpful in
determining what's really happening. Also include relevant information
about your system and, most importantly, what kind of connection you are
using (modem speed, LAN, ISDN, etc).

Things I'd especially like to know:
- Is it playable?
- How's the lag? Try using the "ping" console command every now and then.
- Missing/incorrect sounds?
- How does it handle a high number of clients?

However, I'm currently in the army so don't expect any quick replies.


FIRST AID
This is beta version (some parts are alpha, I admit) so you might run into
various problems. I'm not expecting any bad fatal bugs, though, it seems
quite stable when run locally. If the network code is giving you trouble,
make sure you have the latest DirectX installed and that it's working
properly. Also, make sure everyone is using the same WAD files.


So, without further ado, I wish you good luck and fully functional
netgames!

-----
Jaakko Kernen <jkeranen@raven-games.com>
7/2/2000
