bart1234
Member
|
multiple gameservers on one login server
The last few days i have been rewriting most of my client code
i have now changed the way my client connects to my server and also my server architecture Now when i start my client i have to enter username and password when i press confirm button the client first connects with my login server when connection = greeted username and password is checked by the login server if username password is correct server selection list is loaded else target client disconnects and has to re-enter username & pass when serverlist is loaded i want multiple game server showed in a list and also wheter there online/offline you connect to gameserver according to wich server you have selected so basicly i wanna have my login server separate from gameserver so i can run login server on seperate machine from gameservers and also so that mutliple gameservers connect to one and the same login server and for data storage i use sql with separate DB for loginserver and each gameserver has its own DB
my questions:
1. when connection is greeted on login server and target client sellect server and connects to a game server do i need to greed connection with gameserver again like i did when connecting with login server?
CONNECT_AWAIT_GREET
CONNECT_VERSION_CONFLICT
CONNECT_GREETED
2. Does the client who has connected with gameserver need to keep the connection with the login server alive?
3. what is the best way to have my login server listen for gameserver connections
4. when connecting to game server how does the gameserver know what characters belong to a specific account
example: when user idiot123 logged in and thus connected with login server when idiot123 select server and connect with the game server how does the gameserver know wich characters belong to idiot123
thanks alot if you took the time to read this i hope someone is willing to help me out a bit.
Bart Hertman
(This post was last modified: 10-09-2011 06:51 PM by bart1234.)
|
|
10-09-2011 06:47 PM |
|
kulesz
Member
|
RE: multiple gameservers on one login server
Bump... Seems to be a quite interesting thing.
|
|
10-26-2011 06:51 AM |
|
Dynad
Member
|
RE: multiple gameservers on one login server
Looks to me you want to create a wow-like login sequence.
1. Yes you do, otherwise the gameserver can't be sure if the connected peer can be trusted. (after the handshaking is done on the login server it creates an MD5 hash and saves it to the db.. the gameserver can check with that information if the login on the login server was valid but this needs a good architecture).
2. That's entirely up to you, but no you don't need to keep a connection to the login server. (if u logout to character screen aka how WoW works...its the gameserver u see not the login server)
3. You can make the gameserver give a ping/small packet to the login server once in a while... or u can create a update xml page or sql db to keep track of the servers.
4. Characters are not bound with the login account table but with a character gameserver table... and the character table has an ID to the login table so it knows which character belongs to a certain login account.
~Dynad
There is always evil somewhere, you just have to look for it properly.
|
|
10-26-2011 09:23 AM |
|
impi
Member
|
RE: multiple gameservers on one login server
Interesting.
In our architecture we have seperate 'user task engines' which run tasks not directly related to game server but still need to run on the servers (web services, fetching info, non-game server processing / calcs, some interaction calcs, etc) ... this we designed to use underutilized gameservers and therefore 'load-share'.
So we allow connect request to the last connected server, or the startup server ( just another gameserver with some tutorials etc for noobs ), or any named server (I guess like your list) which also may include 'home server(s)'. As request passes through one of these game servers we fetch the server utilization and then pass that info to a Load Balancer on the CMS (Connection Manager Server) where the Login Server is ... thats then used to redirect user tasks to underutilized servers (so I guess similar to Dynad's ping suggestion ... just we are sending a utilization value). If login succeeds, the user task engine is started on the most underutilized game server in georegion (unless user has a 'home' server - its then started there for various reasons). The connection to game server is then opened as well.
|
|
10-29-2011 09:56 PM |
|
impi
Member
|
RE: multiple gameservers on one login server
Mostly homegrow(ing) [ie. slow growing], pure (no graphics) game server from game engine - with berkeley embedded dBs, webservices developed mostly in Delphi with datasnap connectors to MySQL HA dBs
|
|
11-02-2011 04:47 AM |
|