Running custom master servers (Posted by Hyper)

If u have any questions about unreal this is the place to ask them
Hyper
Posts: 811
https://www.facebook.com/warszawa.kuchnie.na.wymiar/
Joined: Sun Jul 13, 2003 1:40 am
Location: 127.0.0.1
Contact:

Post by Hyper »

I'm glad it's back. I posted it only here because I know the Unreal experts can be found in this forum. :)
Alter your reality...Forever.

http://www.hypercoop.tk
[url]unreal://hypercoop.tk[/url]
User avatar
Xavious
Posts: 2250
Joined: Sun Jul 13, 2003 7:01 pm

Post by Xavious »

}TCP{Carnage wrote:
reply by Hyper
Xavious wrote:will it actually replace the master server we use, or just add another too it? and will this make it faster, thinking that unreal would still try to contact the servers in the same order at the same time?
Replacing the existing master servers (GameSpy and QTracker) is NOT recommended. You might want to query ONLY the test server to see if your server was submitrted correctly and/or if the master can be queried. In that case, set my test master as ONLY master to query:

ListFactories[0]=UBrowser.UBrowserGSpyFact,MasterServerAddress=hyper.xs4all.nl,MasterServerTCPPort=28900,GameName=unreal

put a " ; " in front of the gamespy line to temporarily disable it. The server browser might be slower because it has to get server info from 2 sources instead of one. please note that UT works with 2 masters by default.
cheers...ill try it out.
Hyper
Posts: 811
Joined: Sun Jul 13, 2003 1:40 am
Location: 127.0.0.1
Contact:

Post by Hyper »

Update: The previous master server did not work. Because it was based on Unreal Tournament, it probably has some incompatibility with Unreal, even when the MasterServer.ini is configured as Unreal 1 master server.

I now made the experimantal master server working using Unreal 225. You can add your server to it with the following change in Unreal.ini:
[Note: This master server is experimental and will not always be up]

In the [Engine.GameEngine] section:

Code: Select all

 
ServerActors=IpServer.UdpServerUplink MasterServerAddress=hyper.xs4all.nl MasterServerPort=27900
You can also query the master server with your Unreal client. To do this, add the following line to your Unreal.ini:

In the [UBrowserAll] section:

Code: Select all

ListFactories[1]=UBrowser.UBrowserGSpyFact,MasterServerAddress=hyper.xs4all.nl,MasterServerTCPPort=28900,GameName=unreal
When you ONLY want to query the HyperCoop master, (to see if it works) disable the gamespy master server:

Code: Select all

[UBrowserAll]
ListFactories[0]=UBrowser.UBrowserGSpyFact,MasterServerAddress=hyper.xs4all.nl,MasterServerTCPPort=28900,GameName=unreal
;ListFactories[1]=UBrowser.UBrowserGSpyFact,MasterServerAddress=master0.gamespy.com,MasterServerTCPPort=28900,GameName=unreal
When everything works, you can get the list of servers from the new master:
Image

I updated the MasterServer installer for administrators who want to try their own master server:
Download Experimental Standalone Master Server v 0.2
I still have one big problem: the master server ALWAYS has 100% CPU usage. When you have any tips for me to tackle this problem, post it here!
Last edited by Hyper on Mon Jan 03, 2005 1:11 pm, edited 1 time in total.
Alter your reality...Forever.

http://www.hypercoop.tk
[url]unreal://hypercoop.tk[/url]
User avatar
}TCP{aLICe
Posts: 1110
Joined: Thu Mar 20, 2003 5:23 pm

Post by }TCP{aLICe »

You made.... does it mean you made a program yourself?
If answer is yes your problem is caused by "waiting loop". You should use "waiting for event" instead, or multithreaded application (one thread processing events from user (gui), other using blocking network function (I think problem is there)).
Hyper
Posts: 811
Joined: Sun Jul 13, 2003 1:40 am
Location: 127.0.0.1
Contact:

Post by Hyper »

}TCP{aLICe wrote:You made.... does it mean you made a program yourself?
If answer is yes your problem is caused by "waiting loop". You should use "waiting for event" instead, or multithreaded application (one thread processing events from user (gui), other using blocking network function (I think problem is there)).
No, I probably should say I made it working instead a made a working. Anyways, I'm researching, configuring and distributing. Not programming.
Alter your reality...Forever.

http://www.hypercoop.tk
[url]unreal://hypercoop.tk[/url]
User avatar
}TCP{Wolf
Site Admin
Posts: 4663
Joined: Thu Dec 19, 2002 7:30 pm
Location: https://signal.me/#eu/4zInut2kHeg_ry0GD ... pdqka17o2F
Contact:

Post by }TCP{Wolf »

WHat --EXACTLY-- did you do?
-=]I AM GETTING TOO OLD FOR SUBTLETY[=-

mail: chaos.worx[at]gmx.net
IRC Quakenet +OTR: }TCP{Wolf @#oldunreal @#tcp.clan
Jabber/XMPP +OTR: Wolfy359@jabber.org
Threema: CR6Y9YSS
Signal: see profile
ICQ: dead since russian takeover disables OTR
Hyper
Posts: 811
Joined: Sun Jul 13, 2003 1:40 am
Location: 127.0.0.1
Contact:

Post by Hyper »

}TCP{Wolf wrote:WHat --EXACTLY-- did you do?
Can you plz be more specific? I found out by trial and error, so it's way too much to mention every step, and it would give many useless information.
Alter your reality...Forever.

http://www.hypercoop.tk
[url]unreal://hypercoop.tk[/url]
User avatar
}TCP{Wolf
Site Admin
Posts: 4663
Joined: Thu Dec 19, 2002 7:30 pm
Location: https://signal.me/#eu/4zInut2kHeg_ry0GD ... pdqka17o2F
Contact:

Post by }TCP{Wolf »

Hyper wrote:
}TCP{aLICe wrote:You made.... does it mean you made a program yourself?
If answer is yes your problem is caused by "waiting loop". You should use "waiting for event" instead, or multithreaded application (one thread processing events from user (gui), other using blocking network function (I think problem is there)).
No, I probably should say I made it working instead a made a working. Anyways, I'm researching, configuring and distributing. Not programming.
Well then what did you configure, which switches did you pull to make it from UT to Unreal. If you haven't written any line of code you must have just changed some ini entries. Those I am interested in.
-=]I AM GETTING TOO OLD FOR SUBTLETY[=-

mail: chaos.worx[at]gmx.net
IRC Quakenet +OTR: }TCP{Wolf @#oldunreal @#tcp.clan
Jabber/XMPP +OTR: Wolfy359@jabber.org
Threema: CR6Y9YSS
Signal: see profile
ICQ: dead since russian takeover disables OTR
Hyper
Posts: 811
Joined: Sun Jul 13, 2003 1:40 am
Location: 127.0.0.1
Contact:

Post by Hyper »

Okay., here it is:

Code: Select all

; Unreal Engine Master Server
; Configuration File
;
; Revision History:
; * (4/16/99) Created by Brandon Reinhart
; * (01/03/05) Updated for Unreal by Hyper.nl
;
; Usage:
;
; [MasterServer]
; GameName=[Identifying String]
; Where the string is one assign by GameSpy & Critical Mass.
; OperationMode=[TextFile/TCPLink]
; First mode outputs server list to the file specified under the
; OutputFile key of the [TextFile] section.
; Second mode services GameSpy MasterServer Protocol messages
; on the port specified under the TCPPort key of the [TCPLink] section.
; ListenPort=[Integer]
; Specifies the port to listen for heartbeats on.

[MasterServer]
GameName=unreal
OperationMode=TCPLink
ListenPort=27900

[TCPLink]
TCPPort=28900
You can also download the standalone package which encludes all files neccesary to run the master. (still with the cpu usage problem)

Screen output:
C:\master>ucc masterserver
UMasterServerCommandlet: Unreal Engine Master Server
Copyright 1999 Epic Games, Inc.

!! Loading Config: MasterServer.ini
GameName: unreal
Operation Mode: TCPLink
!! Loading TextFile Operation Mode Defaults
TextFile Mode Output:
!! Loading TCPLink Operation Mode Defaults
TCPLink Mode Service Port: 28900
!! Initializing sockets.
UDP socket bound at port 27900
TCP socket bound at port 28900
Listening on TCP socket.
!! Listening for and servicing messages.
Active servers in memory: 0
Alter your reality...Forever.

http://www.hypercoop.tk
[url]unreal://hypercoop.tk[/url]
User avatar
}TCP{aLICe
Posts: 1110
Joined: Thu Mar 20, 2003 5:23 pm

Post by }TCP{aLICe »

What is OperationMode? If it is what I think about it should be UDPsomething, because if I remember correctly Unreal uses UDP protocol for queries. Just :idea:
User avatar
Xavious
Posts: 2250
Joined: Sun Jul 13, 2003 7:01 pm

Post by Xavious »

alice is right. hence the reason for this:
themasternl wrote:People setting up Unreal servers behind firewalls have been asking for a summary of the TCP/IP ports Unreal uses. Here goes:

* UDP 7775 and 7776 are used only for LAN games. You don't need to route them through a firewall.
* UDP 7777 is for gameplay.
* UDP 7778 is for server querying.
* UDP 7779+ are allocated dynamically for each helper UdpLink objects, including UdpServerUplink objects.
* UDP 27900 is for server querying, if you enable the master server uplink. Some master servers use other ports, like 27500.

When players try to connect to an Unreal server, they connect to port 7777 by default.
Hyper
Posts: 811
Joined: Sun Jul 13, 2003 1:40 am
Location: 127.0.0.1
Contact:

Post by Hyper »

}TCP{aLICe wrote:What is OperationMode? If it is what I think about it should be UDPsomething, because if I remember correctly Unreal uses UDP protocol for queries. Just :idea:
OperationMode is the way the MasterServer operates. It can OR store the servers in a test file, OR use the gamespy master server protocol. TCPLink is the protocol for the gamespy master server protocol.
Xavious wrote:alice is right. hence the reason for this:
themasternl wrote:People setting up Unreal servers behind firewalls have been asking for a summary of the TCP/IP ports Unreal uses. Here goes:

* UDP 7775 and 7776 are used only for LAN games. You don't need to route them through a firewall.
* UDP 7777 is for gameplay.
* UDP 7778 is for server querying.
* UDP 7779+ are allocated dynamically for each helper UdpLink objects, including UdpServerUplink objects.
* UDP 27900 is for server querying, if you enable the master server uplink. Some master servers use other ports, like 27500.

When players try to connect to an Unreal server, they connect to port 7777 by default.
The Master server uses two ports: UDP 27900 (by default) for Unreal servers to uplink their 'heartbeat' data to the master server, and TCP 28900 for Unreal server browsers who want to query the master for a list of servers.

Of course I am going to try to change the TCPLink to UDPLink, but I don't expect any luck.
Alter your reality...Forever.

http://www.hypercoop.tk
[url]unreal://hypercoop.tk[/url]
Hyper
Posts: 811
Joined: Sun Jul 13, 2003 1:40 am
Location: 127.0.0.1
Contact:

Post by Hyper »

When I change the TCPLink to UDPLink, the master server can not be queried anymore.
UMasterServerCommandlet: Unreal Engine Master Server
Copyright 1999 Epic Games, Inc.

!! Loading Config: MasterServer.ini
GameName: unreal
Operation Mode: UDPLink
!! Loading TextFile Operation Mode Defaults
TextFile Mode Output:
!! Loading TCPLink Operation Mode Defaults
TCPLink Mode Service Port: 0
!! Initializing sockets.
UDP socket bound at port 27900
!! Listening for and servicing messages.
Active servers in memory: 2
Alter your reality...Forever.

http://www.hypercoop.tk
[url]unreal://hypercoop.tk[/url]
User avatar
}TCP{Wolf
Site Admin
Posts: 4663
Joined: Thu Dec 19, 2002 7:30 pm
Location: https://signal.me/#eu/4zInut2kHeg_ry0GD ... pdqka17o2F
Contact:

Post by }TCP{Wolf »

The game queries are UDP, I am really not sure about the heartbeats and initial uplink requests. But... you can just use ethereal to find out the hard way :P
-=]I AM GETTING TOO OLD FOR SUBTLETY[=-

mail: chaos.worx[at]gmx.net
IRC Quakenet +OTR: }TCP{Wolf @#oldunreal @#tcp.clan
Jabber/XMPP +OTR: Wolfy359@jabber.org
Threema: CR6Y9YSS
Signal: see profile
ICQ: dead since russian takeover disables OTR
Hyper
Posts: 811
Joined: Sun Jul 13, 2003 1:40 am
Location: 127.0.0.1
Contact:

Post by Hyper »

}TCP{Wolf wrote:The game queries are UDP, I am really not sure about the heartbeats and initial uplink requests. But... you can just use ethereal to find out the hard way :P
Look at this line in your Unreal.ini. It tells it all:
ListFactories[0]=UBrowser.UBrowserGSpyFact,MasterServerAddress=master0.gamespy.com,MasterServerTCPPort=28900,GameName=unreal
Alter your reality...Forever.

http://www.hypercoop.tk
[url]unreal://hypercoop.tk[/url]
Post Reply