|Who Is Online?|
|We have 78 guests online|
|Hosting Descent 3 Game Servers|
|Descent 3 - Playing Descent 3 online|
|Written by Thomas|
|Thursday, 13 November 2008 22:40|
This article describes what you need to host your own game servers. It concentrates on co-op games as I believe there are enough servers for anarchy and other game types available already. The differences between co-op and anarchy servers are, however, not that big that the information provided here cannot be used at all.
Descent 3 knows two different types of game servers: Dedicated servers and in-game servers. We will discuss both types, and both have advantages and disadvantages. Don't worry if you don't have any background knowledge about networking and all that stuff. I'll explain it in a very basic way so that literally everybody can host Descent 3 game servers.
Before our server goes online we have to get the Descent 3 installation ready.
It is important that Descent 3 is patched to version 1.4. This is the version that causes the least issues, and this is the version most people are running. You can find out which version of Descent 3 you have by starting the game.
D3's version number can be found in the bottom right corner. If there's something else than "Ver v1.4" you need to obtain the correct patch first. Note that the patches are different for different locale versions of the game. You can download the correct patch for your Descent 3 from the Descent 3 download page.
If you have the Descent 3 version you can download from Dateiliste you already have the correct version.
It is not known why Outrage have put this dramatic limitation into the game, but when you host co-op servers with Descent 3 you can only have up to 4 players altogether. Altogether here means that if you host an in-game server up to 4 people can play together. If you host a dedicated server the server counts as one player too, hence you can only have up to three players.
In the meantime there are several modifications available. Each has particular characteristics and you have to choose which one suits your server best. The file we are talking about is called "coop.d3m" and located in the folder "netgames" of your Descent 3 installation folder.
As pointed out above already, Descent 3's original coop.d3m file is practically useless. One of the co-op modification files is the coop.d3m from Alexi. You can download it from here. Simply replace your original file \netgames\coop.d3m with that file. If you think you may need Outrage's version again you can rename it to somethinge like "coop_org.d3m" before overwriting it with Alexi's version.
Alexi's coop.d3m contains the following changes to Outrage's original file:
At some point I will create a little application which installs several of these mod files via mouse click, but until then you have to download and install the file manually.
Download Alexi's coop.d3m
There is another file you will need to download or create, but we'll go through that one later, after explaining what it's actually for.
Note that there's no need to download any additional files if you have installed the Descent 3 version from Dateiliste. It already contains all required files.
A dedicated server is Descent 3 running in a special mode, the dedicated server mode. Descent 3 gives you a white window with black messages in it. You can type in admin commands and of course use the remote console, if it is enabled). The dedicated server cannot be played, it just acts as a server. Because running dedicated servers requires quite a lot of configuration work there are several programs available that help host dedicated servers. One of them (and probably the best) is Martin Bädeker's server tool.
An in-game server is a Descent 3 server that can be started from within the game. Select "Multiplayer" in Descent 3's main menu, then "Direct TCP/IP". and finally "Start A New Game". Actually, a few more steps are required, but we'll go through these steps a bit later once everything else has been set up. The images below show how to get there.
If you intend to only host anarchy games and its siblings like CTF and other game types that involve players fighting against each other you shouldn't consider an in-game server unless all your opponents are in the same room with you on the same network, for instance connected via a network switch. You can find lots of information on this on the net. The article D3 Dedicated Server on Windows Tutorial (w/o servertool) explains this in detail. Note that you don't need to know all of this if you're using the servertool.
That sounds quite complicated but it actually isn't. You may wonder "What the h... is an IP address?".
Let's get back to the house numbers (IP addresses) and room numbers (port numbers) again. If you open an internet page in your browser (Internet Explorer, Firefox, etc) you need to know the page's house number. The room number for internet pages is usually the same, it's almost always port 80 ("room number" 80). Of course, you don't type in the house number (IP address). Iinstead, you're typing in the name of a server (like "www.dateiliste.com") which is automatically looked up in a table called Domain Name Service (DNS) and finally reduced down to an IP address. Your browser can connect to that page server by assuming it can be reached on port 80.
For your server on the internet there are generally two different scenarios. The first one is that your computer is directly connected to the internet. The second one is that it's connected via a router. Don't worry if you don't know what a router is for now as I'm going to explain this a bit later on. You can easily find out if you have a direct connection to the internet or not, at least on Windows 2000 and Windows XP. Vista is a nightmare anyway, so I'm not covering this here for the time being.
In this case you can hop over the next page and directly go to Gamespy And Tracker.
So, but what if the IP address shown at http://www.whatisyourip.net is not the same as the one displayed in the command line windows with "ipconfig"?
This just means that your computer is somehow cut off the internet. It means that it is some sort of part of a village with lots of houses where each house has a house number (and room numbers for the services like Descent 3's server), but the outside world only knows the village's number. The rest of the world thinks that the village's address is a normal house number.
At the entrance to the village is a guardian that takes every incoming letter and delivers it to the actual house and room numbers which only he knows (remember, the rest of the internet only knows the house number for the entire village).
This guardian is quite a busy bloke, and he doesn't trust anyone.
For instance, if you open an internet page (let's assume www.datailiste.com again) with house number and room number you give this information to the guardian by providing your own house number and a room number for the page to come back to your browser. The guarian is now trying to protect you from the rest of the bad world. He replaces your sender house number and room number with the "house number" of the village (we should probably call it a "village number" instead of a "house number" but there's no real difference anyway). As soon as the guardian now sends off your letter it doesn't contain your computer's IP address anymore but rather the village's address. Of course, the guardian makes a quick note that once the page from www.dateiliste.com comes back he has to remember that it was your house number and room number that requested it.
The guardian, by the way, is called "router". A router protects an internal network from the rest of the internet, like a guardian in a little village. The IP addresses or house numbers inside the village are not visible to the rest of the world. Even if they were known they are still useless for anybody outside the village as nobody would know how to deliiver a letter to the right address except the guardian (router) of that particular village.
Having a router may sometimes be a disadvantage (like for instance if you want to host Descent 3 servers) but most of the time it is quite convenient to have it. In order to host a game server you need to tell your router (the village guardian) to forward letters (network packages) addressed to a particular room number to your computer. For the outside world i.e. the internet that means that your computer has now the router's IP address, and it can be contaced just as easy.
Probably the biggest benefit of being behind a router is that your computer doesn't need to run a firewall. Most routers have a built-in firewall and even if they don't they are (almost) still as good as one because of their "village guardiian nature". Nobody from the outside can attack a computer behind a router because the computers in a private network are not even known to the internet.
All we have to do to host Descent 3 game servers is telling the router where to send Descent 3 network packages. In order to do that we need to know what the router is supposed to forward to the game server computer.
As mentioned before, it's not just starting a server and hoping that someone finds it accidentally. We need to tell the game trackers that a new server is on and where to find it.
When a dedicated Descent 3 server or an in-game server is started Descent 3 looks up this information in a file. By default, this file is called "Gamesyp.cfg" and is located in Descent 3's main directory. Unfortunately, Outrage have forgotten to provide this file originally. Better yet, they have provided it, and it is shipped with Descent 3, but it has the wrong name. This is explained on page 60 of Descent 3's manual.
This is what the file should look like, but you can download it from here:
Save the file as Gamespy.cfg in your Descent 3 main folder (the directory where main.exe is located). If you are in Europe you can use different settings.
Descent 3's manual describes the file and its contents on page 60.
I have created a little application to create and maintain the Gamespy.cfg file. It has the promising name Descent 3 Game Tracker Publisher and creates the file for you. It's also a piece of cake to turn game server publishing off and back on again, and it lets you easily change your server's location. For a full list of features, and to download it, go to its homepage: Descent 3 Game Tracker Publisher
What the file Gamespy.cfg actually does is telling Descent 3 to provide game tracker information and contact the computers on the provided ports. For example by looking at the first two lines of the above example file, Descent 3 is going to contact the machine master0.gamespy.com on port 27900 to let it know that a game server is running. With the file like the one above, all three important trackers are informed: Gamespy, the Descent 3 tracker, and Kali. The Descent 3 Game Tracker Publisher lets you do this with a nice user interface.
What Descent 3 tells these trackers depends in turn on some settings. Inside the server tool you can specify the port on which they can reach the running game server (under Tracker Options). If you run an in-game server and you don't change anything manually, the UDP port the trackers can "call back" is 20142.
And here we go, now all pieces of information are collected, and we are ready to configure the village guardian, the router, if there is one in our network.
Everything could be so easy if it weren't for the router manufacturers to invent new names for the same known thing over and over again.
Descent 3 runs servers by default on UDP port 2092 and the initial connection is made on the same port. It also opens a "call-back" port for game trackers on UDP port 20142, and again, TCP is used too for the remote console.
Whenever someone connects to the router's public IP address to one of these ports from the outside world, we would like this connection request and later the data packets to be passed on to the computer running the Descent 3 server.
This functionality is actually called "Port Forwarding". Unfortunately, this is not what the router manufacturers called it consistently. Sometimes it can be found under "Virtual Servers", sometimes under "Applications and Games", sometimes really under "Port Forwarding" in the router's configuration. Some routers even provide the games' names for forwarding, like the Belkin router used here. But don't rely on that. For example, although Descent 3 is in the list of games to configure port forwarding automatically, the entries it creates for Descent 3 are almost completely wrong, so don't use this function, at least not without altering it appropriately first.
Click on the images below to view them in their full size.They will then open in a new browser window.
Open a command line window again (Start->Run, then "cmd" and Enter) and type "ipconfig".
The numbers we're interested in are our "IP Address" and the "Default Gateway". What windows calls "Default Gateway" is the router, the village guardian.
Now open a browser window (Internet Explorer, Firefox, etc) and type the address found as "Default Gateway" into the URL (address) field. Then, after logging on of course, try to find settings called "Virtual Servers", "Applications and Games", or even "Port Forwarding".
Now forward the TCP and UDP ports 2092 and 20142 to your computer's IP address. If your router lets you distinguish between TCP and UDP you can go for UDP only.
Note that I have put the IP address ending in 101 into the router's forwarding IP field, although 'ipconfig' reported it ending in 100. This is because I captured the screenshots from two different computers at different times. Make sure you enter the IP address reported by 'ipconfig' so that both are identical.
Every Descent 3 server needs to run on its own ports for Gamespy and the game itself, and that port 2092 is reserved for the game itself if you're hosting more than one server on the same machine.
Another important thing to know when testing your server is that Vortex doesn't always update the list with running servers automatically. To be safe, close Vortex and re-open it again. It should then list your server too.
|Last Updated on Thursday, 31 January 2013 04:09|
You need to login or register to post comments.
Discuss this item on the forums. (0 posts)