Page 1 of 1

Server Queuing

Posted: 20 May 2007, 09:17
by Dr Wahl
I'm not sure if this is already something that is in place, as we have no need for it (nor will we for some time I imagine), but the server should be able to support queuing for logins. A great example of a system that did an absolute terrible job of this is SilkRoad Online. I don't feel that I need to get into too much detail, but pretty much you just keep clicking the login button until you happen to click it just as some one logs out. In order for them to fix this, they had to do some major work to the server code. The TMW server should be in a state that adding a feature such as login queuing should not be a huge task.

Posted: 20 May 2007, 12:43
by Crush
Limiting the number of users online is currently not planned. But when we ever do so I think a waiting queue would be better than just rejecting users when the sever is full. The latter would result in people hammering the already overloaded server with connect requests and thus make the situation even worse.

Posted: 20 May 2007, 17:37
by Dr Wahl
Agreed. Is the server software currently capable of doing this? Or would it be a simple modification in oder to implement it? I just dont want to see TMW end up in a situation similar to SilkRoad, where the server has to go under major surgery in order to offer a crowded population solution.

Posted: 20 May 2007, 19:07
by Crush
This would have to be done to implement a waiting queue
-Instead of sending the connected clients directly from the authentication phase to the char select phase place them in a queue
-Get the number of total users online by querrying each game server at regular intervals and add the people currently in the char select phase on the account server
-Send (maxUsers - currentUsers) clients from the waiting queue into the char select phase
-Send a notification about the place in queue to the clients in queue at regular intervals and the necessary client-sided gui stuff to show this information to the player. Check connectivity from time to time and kick disconnected clients out of the queue.

Not really rocket science. Could be done in one night of programming.