- Jun 17, 2005
- 927
- 1
- 81
I encountered an interesting problem with one of my spare time projects, and I think I might have a lead on how to solve it, but I couldn't find any substantial help with any of the scientific search engines nor google.
Ok, so here's the problem. Imagine you have a virtual game world that's so immense that you can't afford the kind of server it would take to monitor it all. So what you do is split it up into n parts, buy n smaller servers, and connect the servers together so that they can pass players to one another as the players move from the territory of one server to the other. Not too complicated, right?
Here's where things get tricky. We want to prevent players from all moving to the territory of one server, and instead distribute them more or less evenly over the game area. To this end, we introduce objectives. Each objective is tied to a specific point in the game world, and as such, to one specific server. If a player takes on an objective, they will be transported to that point (and that server) for some time, and will gain some amount of money (it doesn't really matter how much). Adversely, moving to a point with no objectives costs the players money.
Now, we can state that the probability of players moving to a certain server is characterised by the number of objectives in that server. Our goal is to devise a system/algorithm/heuristic/whatever that maintains a roughly even distribution of players among the n servers through alterations in these probabilities.
I've been doing some research and came across a theorem that is very similar to my problem. The theorem says that if a) you have two urns with balls in them, and b) that upon dropping a new ball, the probability of it landing in the urn with the least balls already in it is 2/3, and 1/3 for it falling into the urn with the most balls; under these conditions, the distribution of the number of balls in both urns is a uniform distribution.
My problem is almost identical to the above described two urn situation, except I have n urns, and I can remove balls as well as insert them.
Can anyone help me out with this? Either with some relevant reading material (online or offline), a programming method that could provide a solution, another forum where I might get more input, anything would be greatly appreciated.
Ok, so here's the problem. Imagine you have a virtual game world that's so immense that you can't afford the kind of server it would take to monitor it all. So what you do is split it up into n parts, buy n smaller servers, and connect the servers together so that they can pass players to one another as the players move from the territory of one server to the other. Not too complicated, right?
Here's where things get tricky. We want to prevent players from all moving to the territory of one server, and instead distribute them more or less evenly over the game area. To this end, we introduce objectives. Each objective is tied to a specific point in the game world, and as such, to one specific server. If a player takes on an objective, they will be transported to that point (and that server) for some time, and will gain some amount of money (it doesn't really matter how much). Adversely, moving to a point with no objectives costs the players money.
Now, we can state that the probability of players moving to a certain server is characterised by the number of objectives in that server. Our goal is to devise a system/algorithm/heuristic/whatever that maintains a roughly even distribution of players among the n servers through alterations in these probabilities.
I've been doing some research and came across a theorem that is very similar to my problem. The theorem says that if a) you have two urns with balls in them, and b) that upon dropping a new ball, the probability of it landing in the urn with the least balls already in it is 2/3, and 1/3 for it falling into the urn with the most balls; under these conditions, the distribution of the number of balls in both urns is a uniform distribution.
My problem is almost identical to the above described two urn situation, except I have n urns, and I can remove balls as well as insert them.
Can anyone help me out with this? Either with some relevant reading material (online or offline), a programming method that could provide a solution, another forum where I might get more input, anything would be greatly appreciated.
