Hello, I play/maintain a game called MAngband, it is a roguelike MRPG and we have people who play from all over the world. Which is the issue.

We have only one site which is in Europe where the main game server runs a long with the meta server(<--server List) people from different counties often get random lag spikes and timeouts. We want to solve this conflict by doing the following.

1.)Want to have many servers that run in different countries where people can connect to the server closest to where they live.

2) But we also want to keep the multiplayer aspect of the game alive so we want to have one location for a town server (where players meet up and sell/buy stuff from each other) where when leaving the dungeons they are connected to the town where everyone else connects to.

My idea is this. We have servers in different locations that run the dungeon aspect of the game. Players choose the server closest to them that allows them to dive in the dungeon closest to them. when the uses returns to town the server directs the player to the town server and when he goes back into dungeon just him and the dungeon server again at his desired location.

Is this workable with a C/C++ game. If it is I also have more questions but wish to clarify I'm not barking up wrong tree.