Player should be authenticated first to be able to to talk to the gameserver ( I'm talking about the accept() syscall ).
1h timeout is way too long, you should not have more than a couple of minutes max.
I worked on some popular online games and it was a combination of 1) + some IP tables rules ( to allow the traffic ).
Too many login would block the IP etc ...
With proper auth ( based on TCP ), IPtables, kernel tuning you can get a lot of good results without doing some complicated things like UDP proxy / relay / load balancing.
1h timeout is way too long, you should not have more than a couple of minutes max.
I worked on some popular online games and it was a combination of 1) + some IP tables rules ( to allow the traffic ).
Too many login would block the IP etc ...
With proper auth ( based on TCP ), IPtables, kernel tuning you can get a lot of good results without doing some complicated things like UDP proxy / relay / load balancing.