Everyone wants those HUGE single shard MMOs, but does the technology exist to make them viable.
Imho, the one of the biggest bottlenecks is client bandwidth. The server can’t consistently update the position and status of everyone, when the player has a 10Mbit DSL line (or 50Mbit for that matter). The volume of data is just too much for the players home internet connection. The only company that I know of that, MAY have a chance of pulling it off is Novaquark, with “Dual Universe”.
Dual Universe has alluded to how they’re going to attempt this feat. Their server architecture will scale based upon “client density”, AND they will scale their positioning ticks, based upon how close players are to each other.
For those that don’t know, positioning data is sent multiple times a second. The client takes those updates, and attempts to predict the position of the other players in order to account for the time between those updates. If packets are lost, the client continues to predict the most likely path of the other players. Eventually… If enough packets are lost, there is a discrepancy in the prediction and the actual location of the other players. When new packets are received, the good information is corrected by the client, and this is where you get “Rubber Banding”. This is when you see players bounce around the screen.
Dual Universe will conserve bandwidth by updating positioning of people that are close together, and people that are farther away, will have less frequent updates. Honestly, this is a novel concept.
A player doesn’t need information of ALL of the other players in an MMO (or all players a single server is responsible for). Just the information of the players they can interact with. Here’s an example (keep in mind the scale may be off) Say all ships within 10 kilometers should be given priority. 10 to 25 kilometers, fairly frequent updates. 25 to 100 kilometers, once a second updates, and everything after 100km is dropped, because they’re out of sensor range.
Lets look at those players at 25 to 100 kilometers. The client still updates their position, but there will definitely be rubber banding. It won’t be noticeable due to the focal length of the player.
The focal length helps with rubber banding. Here’s what I mean by that. Consider your favorite FPS game. Shooting at a rubber banding player who’s in the same room as you is different than shooting at a rubber banding player that’s 500 yards away. If they jump 10 feet away in a room, they most likely jump out of your sight picture. However, bouncing around 10 feet at 500 yards is hardly noticeable to a sniper. You may need to completely turn around to hit them in the room, but at 500 yards, it’s a minor aiming adjustment.
(Most likely, everything greater than 25km will be a radar blip anyway)
Dual Universe may have stumbled onto something here…
I would also add, there’s no need for a player to see more than 100 of the closest players. Even in a huge space battle with thousands of players packed into a small area. The player just doesn’t need to see EVERYTHING. Just those they’re capable of interacting with.
Of course, with player movement the people that are “in range to receive updates” will change, but the above scenario WOULD allow everyone to interact on a single shard, and your squad/group would be able to meet up anywhere in the galaxy, if they got separated.