Understanding Multiplayer GZdoom
Posted: Tue Jan 16, 2007 15:07
I used to play Zdoom online all the time using a program called DoomServ. The program is long dead, but it was a lobby driven connector that supported all the startup Zdoom command line params. The good news, as some or a lot of you may know, is that GZdoom supports these exact same command lines, thus making multiplayer GZdoom possible.
In the old days of Zdoom v1.22, 1on1 matches on Doomserv were constant and it also allowed you to see how well you pinged to other people in the lobby. Even 56k-to-56k internet games were very playable as long as you had a ping of 250 or below to the other player. How you ask? I notice that many places that tell you how to set up GZdoom net commands fail to mention the "-dup x" command. DUP is a form of frame skipping that was used a great deal for Zdoom net games, however... DUP may be very dependent on the old 35fps method that Zdoom v1.22 used. GZdoom has uncapped FPS, so -dup may or may not provide acceptable results like it used to. So, I am going to explain how things were done exactly with DoomServ when v1.22 Zdoom was being used for net games. Try these commands out based on the ping of the person you are trying to play against. This is being explained with a Windows9x, 2000, or XP related OS in mind
First, for time saving reasons, make a basic shortcut link to GZdoom anywhere that you want. Right click on the created shortcut and then go to properties, then click the "shortcut tab." In the target box, go all the way to the end of the line and put one space after "GZdoom.exe. Now get ready to add your commands, but before you do, there are a couple of more steps to remember. First, you and the people/person playing have to have the exact same IWAD version, exact same PWAD version, and both the host and the client have to match the command lines exactly, or you will have issues when trying to play (only difference being that the host uses "-host x" and the client uses "-join IP"). Also, when experimenting with -dup, try using "cl_capfps 1-0" by typing it in into the Zdoom console. Now... on to the commands...
I have set up the command forms to mirror the host/client, and when setting up your commands, remember, you have to MATCH 100%
"X"= Numerical or name, take out commands that you do not intend on using.
person hosting
------
gzdoom.exe -file x.WAD -host x -warp xx -skill x -deathmatch 1 -altdeath -dup x +set cl_capfps x
person joining
------
gzdoom.exe -file x.WAD -join IP -warp xx -skill x -deathmatch 1 -altdeath -dup x +set cl_capfps x
-deathmatch 1 = deathmatch mode, omit this if you are doing a cooperative game or type -deathmatch 0
-altdeath = turn on respawn for weapons and items.
-skill = skill level 1-5, 5 is generally used for most DM games.
1on1 games = -host 2.
There is a weaponstay command as well, but I forgot if it was -weaponstay or some other command.
The host should always execute first, this will then cause GZdoom to startup, but you will notice that it is going to pause and then say "waiting for players." Now the Client starts up and will soon connect.
Finding out your IP is pretty easy, if in a win9x environment, click the start button, run, then type "winipcfg." If in a 2000 or XP environment, find the command prompt option in the start menu somewhere, run it, then type "ipconfig."
In old Zdoom, if the person had a 200-250 ping, -dup 2 was used. If they had a 300-350 ping, -dup 3 was used. essentially, if the 3 digit number started with 2, 3, etc, then you would use -dup 2, 3, etc. People who had DSL or Cable and pinged extremely well to one another would not even need -dup. Also, 8 players max are possible, as long as the host specifies the number of players correctly using the "-host x" command, but I do not know how playable it will be going over more than 3 players.
Obviously this is the complete manual approach to multiplayer GZdoom, but perhaps someone will write a lobby driven GZdoom specific program sometime soon.
In the old days of Zdoom v1.22, 1on1 matches on Doomserv were constant and it also allowed you to see how well you pinged to other people in the lobby. Even 56k-to-56k internet games were very playable as long as you had a ping of 250 or below to the other player. How you ask? I notice that many places that tell you how to set up GZdoom net commands fail to mention the "-dup x" command. DUP is a form of frame skipping that was used a great deal for Zdoom net games, however... DUP may be very dependent on the old 35fps method that Zdoom v1.22 used. GZdoom has uncapped FPS, so -dup may or may not provide acceptable results like it used to. So, I am going to explain how things were done exactly with DoomServ when v1.22 Zdoom was being used for net games. Try these commands out based on the ping of the person you are trying to play against. This is being explained with a Windows9x, 2000, or XP related OS in mind
First, for time saving reasons, make a basic shortcut link to GZdoom anywhere that you want. Right click on the created shortcut and then go to properties, then click the "shortcut tab." In the target box, go all the way to the end of the line and put one space after "GZdoom.exe. Now get ready to add your commands, but before you do, there are a couple of more steps to remember. First, you and the people/person playing have to have the exact same IWAD version, exact same PWAD version, and both the host and the client have to match the command lines exactly, or you will have issues when trying to play (only difference being that the host uses "-host x" and the client uses "-join IP"). Also, when experimenting with -dup, try using "cl_capfps 1-0" by typing it in into the Zdoom console. Now... on to the commands...
I have set up the command forms to mirror the host/client, and when setting up your commands, remember, you have to MATCH 100%
"X"= Numerical or name, take out commands that you do not intend on using.
person hosting
------
gzdoom.exe -file x.WAD -host x -warp xx -skill x -deathmatch 1 -altdeath -dup x +set cl_capfps x
person joining
------
gzdoom.exe -file x.WAD -join IP -warp xx -skill x -deathmatch 1 -altdeath -dup x +set cl_capfps x
-deathmatch 1 = deathmatch mode, omit this if you are doing a cooperative game or type -deathmatch 0
-altdeath = turn on respawn for weapons and items.
-skill = skill level 1-5, 5 is generally used for most DM games.
1on1 games = -host 2.
There is a weaponstay command as well, but I forgot if it was -weaponstay or some other command.
The host should always execute first, this will then cause GZdoom to startup, but you will notice that it is going to pause and then say "waiting for players." Now the Client starts up and will soon connect.
Finding out your IP is pretty easy, if in a win9x environment, click the start button, run, then type "winipcfg." If in a 2000 or XP environment, find the command prompt option in the start menu somewhere, run it, then type "ipconfig."
In old Zdoom, if the person had a 200-250 ping, -dup 2 was used. If they had a 300-350 ping, -dup 3 was used. essentially, if the 3 digit number started with 2, 3, etc, then you would use -dup 2, 3, etc. People who had DSL or Cable and pinged extremely well to one another would not even need -dup. Also, 8 players max are possible, as long as the host specifies the number of players correctly using the "-host x" command, but I do not know how playable it will be going over more than 3 players.
Obviously this is the complete manual approach to multiplayer GZdoom, but perhaps someone will write a lobby driven GZdoom specific program sometime soon.