Master Server - Please help me understand
by Flybynight Studios · in Torque Game Engine · 03/20/2005 (9:11 pm) · 7 replies
I get the concept of a game browsing server and the benefits to the likes of FPS games like Tribes etc but do I really need a master server running in order to use TNL?
Reading the documentation it states (unless I read this totally incorrectly) that on the client side they require a master server configuration or the network layer wouldnt work.
I'll do some testing on this later in the week but I am hoping someone can save me a few hours and just say "Duh.., removing the master server info and voila.". Yeah he wouldnt that be nice. =)
Working on a standalone auth server, mission servers and stand alone client (stripped down with just the client info running) I would really like to not have a master server running. Yes I have one, yes it works, no I don't want to run it for production, yes, that is my perogative, no I don't have a good reason except to say "Why the hell should I" =) My project gets no benefit from running a master server. My auth server is better at account management, authentication etc..
Thanks in advance for any pearls of wisdom.
Mark
Reading the documentation it states (unless I read this totally incorrectly) that on the client side they require a master server configuration or the network layer wouldnt work.
I'll do some testing on this later in the week but I am hoping someone can save me a few hours and just say "Duh.., removing the master server info and voila.". Yeah he wouldnt that be nice. =)
Working on a standalone auth server, mission servers and stand alone client (stripped down with just the client info running) I would really like to not have a master server running. Yes I have one, yes it works, no I don't want to run it for production, yes, that is my perogative, no I don't have a good reason except to say "Why the hell should I" =) My project gets no benefit from running a master server. My auth server is better at account management, authentication etc..
Thanks in advance for any pearls of wisdom.
Mark
#2
Currently the way my very basic login flows:
Client enters UID and PASS and presses a login button which submits his info to the Auth server.
It goes through a sequence of checks and is verified against the database and the client is sent a login authenticated token or disconnected.
On receipt of the login token the client attempts to conect to their "mission" server who recieves their token and validates it and then allows the client to connect.
I broke a segment of the authentication tonight trying to add more error checking heh. I'm still pretty blown away by the sheer masses of .cs scripts I have to dink around with. I tried to minimalize them and combine them as much as I Could earleir but that was a fiasco. For now I am just going to fix the authentication code and clean it up a bit then move on.
Actually on that note I have a question. While working on the "onConnect" stuff tonight I found that the clientconnect.cs in the common folder and the game.cs in the server script folder looked way to similar. Is there something goofy there? Am I mixing scripts or something.
Thanks man. I really appreciate all of your great feedback. Hope I'm not a bother.
Mark
03/20/2005 (11:48 pm)
Thanks Stephen. Thats what I thought. For somereason in the documentation I've been reading (not all GG docs btw random tutorial docs as well) I was under the impression I must connect to a master server. Didnt make any sense to me.Currently the way my very basic login flows:
Client enters UID and PASS and presses a login button which submits his info to the Auth server.
It goes through a sequence of checks and is verified against the database and the client is sent a login authenticated token or disconnected.
On receipt of the login token the client attempts to conect to their "mission" server who recieves their token and validates it and then allows the client to connect.
I broke a segment of the authentication tonight trying to add more error checking heh. I'm still pretty blown away by the sheer masses of .cs scripts I have to dink around with. I tried to minimalize them and combine them as much as I Could earleir but that was a fiasco. For now I am just going to fix the authentication code and clean it up a bit then move on.
Actually on that note I have a question. While working on the "onConnect" stuff tonight I found that the clientconnect.cs in the common folder and the game.cs in the server script folder looked way to similar. Is there something goofy there? Am I mixing scripts or something.
Thanks man. I really appreciate all of your great feedback. Hope I'm not a bother.
Mark
#3
At the risk of a shameless plug, my TGE 1.3 Connection Sequence Overview may help seeing how all the execution flow works in stock. Obviously, you've already changed it, but it may still be useful!
As an FYI, your modified connection sequence sounds very similar to what we did, so at least from my perspective you are on the right track!
03/20/2005 (11:59 pm)
Not at all! Keep in mind that you're working in a separate client and separate server environment, so the "common" directory structure makes zero sense--we got rid of it ourselves. The common area is for what little files are shared on both the server and the client (things like the editors for example, IIRC), which actually make little sense when you split the two processes into separate platforms.At the risk of a shameless plug, my TGE 1.3 Connection Sequence Overview may help seeing how all the execution flow works in stock. Obviously, you've already changed it, but it may still be useful!
As an FYI, your modified connection sequence sounds very similar to what we did, so at least from my perspective you are on the right track!
#4
03/21/2005 (12:23 pm)
Another major thing common exists for is to allow multiple mods to share backend code. Not necessarily a big deal in your case, but for us, maintaining many demos, it's very nice.
#5
@Stephen: Thanks a mill for that doc. Wicked resource. saved me literally hours/days of debugging.
To anyone who hits this thread later please take 5 minutes to scan Stephens document on the connection sequence. It will save you endless hours of debugging.
Mark
03/27/2005 (1:39 pm)
@Ben: I absolutely understand the reason behind the demo structure btw Ben. Wasn't meaning to make it sound clunky. Just isn't "ideal" for my design. =)@Stephen: Thanks a mill for that doc. Wicked resource. saved me literally hours/days of debugging.
To anyone who hits this thread later please take 5 minutes to scan Stephens document on the connection sequence. It will save you endless hours of debugging.
Mark
#6
07/18/2006 (9:20 am)
I am trying to connect to a remote server and when I query Master Server it can't find it. Please help. I have only connected over a LAN before and I'm wondering if there is something special I need to do to connect remotely.
#7
07/18/2006 (9:26 am)
I answered to your other post elsewhere but figured you crossposted, so I retract my post and wish you good luck (:
Torque 3D Owner Stephen Zepp
All the "master server" does is act as a dispatcher for people wanting to connect to game servers...Community Member X starts up a starter.fps server running mission stronghold, and reports to the Master Server at GG: anyone looking to join a server queries the Master Server to see what game servers are up, and can be dispatched to whatever is running.
In other words, a "Master Server" is the generic "pick your shard" screen that most MMOG's have.