Game Development Community

What changes are needed to make starter.fps work over internet?

by Soeren Veigaard · in Technical Issues · 01/26/2007 (5:42 am) · 9 replies

I have tried to:

Set gametype $Server::GameType to our game name and set $Client::GameTypeQuery to the same name!

I have tried to make a dedicated server using the shortcut: C:\SVN\SDK\example\torqueDemo.exe -dedicated -mission starter.fps/data/missions/pyramid2.mis -game starter.fps

None the less - no server appear in the "Query Master" options!

Any ideas what I need to change to get a server on the list?

The servers appears when local computers use the "Query Lan" button, but nothing appears on the "query master". Any idea why?

We do not want to set up a server. The server saving the list at garage games should be sufficient..

Hope somebody can help.. (And quick - deadline next wednesday :) . )

/Cereal

#1
01/26/2007 (6:18 am)
Sounds like a Firewall / port forwarding issue. How's you internet connection setup done? Through a router? Have you setup a port forwarding to the computer acting as dedicated server? You need to forward the standard Torque ports 28000 - 28002 if I rember right.

edit = typos while laying lazy on the sofa :)
#2
01/26/2007 (7:13 am)
It seems to be connected and I do not think that it is a firewall problem. If I run a dedicated server, the console reads:

Sending heartbeat to master server [IP:69.64.50.217:28002]
Received info request from a master server [IP:69.64.50.217:28002].
Sending heartbeat to master server [IP:69.64.50.217:28002]
Received info request from a master server [IP:69.64.50.217:28002].
Sending heartbeat to master server [IP:69.64.50.217:28002]
Received info request from a master server [IP:69.64.50.217:28002].
Sending heartbeat to master server [IP:69.64.50.217:28002]
Received info request from a master server [IP:69.64.50.217:28002].

And so on. But nobody can see the server.

If I try to search for the server using http://www.gnometech.com/ "open monitor" I get the message
"1 Timed Out -/- - "

Any Ideas why the server does not appear on the list?

If the try to ping the server (69.64.50.217) in CMD I get a timeout. If I run a tracert the same result occur... :(

/Cereal
#3
01/26/2007 (10:45 am)
Have you tried it with a stock Torque version if that one runs fine?
#4
01/28/2007 (1:26 am)
Jup - were have tried to run with a stock Torque version 1.5 as well, but no luck there either. The game does not appear on the list on the garagegames master server...

Is there no easy way to make your game appear on the master server?
#5
01/28/2007 (6:28 am)
You are blocked behind a firewall. Starter.fps works out of the box across the net. I had the problem for a while where windowsXP was blocking it. (the firewall that's part of it) Once I got the firewalls disabled or allowing torque to talk to itself, I had no problem.
#6
01/28/2007 (10:36 am)
If that is the case, why does the console print out this? (If it is not communicating with the server!):

Sending heartbeat to master server [IP:69.64.50.217:28002]
Received info request from a master server [IP:69.64.50.217:28002].

When launching the application windows ask whether we which to block the program or allow it to access the internet. We have ofcourse allowed it to connect with the internet and we have no other firewalls installed. So i doubt that it is a firewall issue.

The master server is also "finding" the server, but isn't able to list it. When I search on the master server at http://www.gnometech.com/ for our server, it finds it but reads; "1 Timed Out -/- - " (As mentioned earlier!)

So I do not think it is the firewall!

What makes you think it is the firewall?
#7
01/28/2007 (11:58 am)
Because the 28000 series ports aren't the ones the firewall is blocking.

Make sure (if not using starter.fps) that you have changed all the appropriate server info...

server/default.cs :-

$Pref::Server::RegionMask = 2;  //<--------------------------------- make sure not commented out
$pref::Master[0] = "2:master.garagegames.com:28002";  //<----- make sure not commented out

// Information about the server
$Pref::Server::Name = "YourNameHere"; // <-------------------------------------Your server name here
$Pref::Server::Info = "This is an YourNameHere server."; // <-----------------Easier if it matches line above

// The connection error message is transmitted to the client immediatly
// on connection, if any further error occures during the connection
// process, such as network traffic mismatch, or missing files, this error
// message is display. This message should be replaced with information
// usefull to the client, such as the url or ftp address of where the
// latest version of the game can be obtained.
$Pref::Server::ConnectionError =
   "You do not have the correct version of YourNameHere or "@   // AFX
   "the related art needed to play on this server, please contact "@
   "the server operator for more information.";

// The network port is also defined by the client, this value 
// overrides pref::net::port for dedicated servers
$Pref::Server::Port = 28000;  //<--------------------------------------------------- make sure this is set correctly

in client/init.cs

function initClient()
{
   echo("\n--------- Initializing MOD: Aurora: Client ---------");

   // Make sure this variable reflects the correct state.
   $Server::Dedicated = false;

   // Game information used to query the master server
   $Client::GameTypeQuery = "YourNameHere";  //  <----------------------------  must match server
   $Client::MissionTypeQuery = "YourNameHere";  //  <--------------------------  easier if it does match

   //
   exec("./ui/customProfiles.cs"); // override the base profiles if necessary

   // The common module provides basic client functionality
   initBaseClient();

   // InitCanvas starts up the graphics system.
   // The canvas needs to be constructed before the gui scripts are
   // run because many of the controls assume the canvas exists at
   // load time.
   initCanvas("YourNameHere", true);  //<-----------------------------  window title on runing game

then in server/game.cs

function onServerCreated()
{
   // Server::GameType is sent to the master server.
   // This variable should uniquely identify your game and/or mod.
   $Server::GameType = "YourNameHere"; // <------------------------------------------  must match

   // Server::MissionType sent to the master server.  Clients can
   // filter servers based on mission type.
   $Server::MissionType = "YourNameHere"; // <----------------------------------------- must match

   // GameStartTime is the sim time the game started. Used to calculated
   // game elapsed time.
   $Game::StartTime = 0;

Then open the comms ports on your firewall for Torque for both in and out and redirect them to the machine running your server if needed.

UDP 28000 - 28010
UPD 1031
UDP 1048

28000 series are the server ports and usually have no problem, the elusive ones are 1031 and 1048.

The server comms will usually take place whether 28000 - 28010 is open or not, but the query will be rejected and timed out if 1031 or 1048 is not available to the machine running the server.

Regards

GRaham
#8
08/01/2007 (12:47 am)
It works on windows but not on Linux

some clues ?
#9
08/20/2007 (2:48 pm)
Thank you thank you, a thousand times.... that worked perfectly... It should be in the documentation section