Lately, we’re having day-dreams about the possibilities of having real massive multi-player games.
I think, the problem is still with throughput. In the end it is great that you may have a server that is bad-azz but if you are limited by the amount of INFORMATION (all this is hard-core information theroetics, if you really think about. What is information and how much do we need to in order to represent it) that you pass around, i.e. you are IO bound, what does it matter then?
That why I think it is important to localize communication, so you can sustain high throughput. For example, if you have a super-duper server farms that serves apps, but you still need to get all your information from some DB server, you are IO bound! (Hey, my DB server is capable of generating 200 MeV of energy, in order to punch of in space-time. Because Dr. Manhattan said that we have to invalidate existence in order to solve this NP database problem… whatever he says…I follow)
So, we localize our DB servers to simulate some arbitrary small grid (say, a city block). But, we still need to track global information, and pass that around. But, we can try to localize to. Maybe we just use a level of detail scheme so we are not passing as much information to servers further away from us.
The problem with this is we still need to push that data out to the end user, through the internet.
For games like WOW, I believe they minimize the amount of information they need to pass.
But what if you want to have a game with lots of “stuff” going on at the same… lots of action… how do you sustain throughput in this case? You still need to miminize the information that is required to keep people in the same “state.”
How can one distribute this?
I think we should just start simple, then build up from that. What also really need to specify exactly what sort of game-play, and behavior that we expect, in order to engineer our system to support that vision.
I’m sick of writing, time to eat.