Tobold's Blog
Thursday, October 20, 2005
Top-heavy WoW

The French PvP server, Sargeras, on which I am playing my rogue is listed as "full" on the realm list. So yesterday I ran Census+ to count how many players make a server "full". At 9 pm local time there were just over 1,100 players on the Horde side. Given the typical Alliance to Horde ratios, "full" seems to translate to 3,000 players online simultaneously at prime time.

But the real surprise was in the details. A full 51% of the players were level 60, with the remainder being pretty evenly distributed over all levels. No wonder I can't find a group, when there are on average only 10 Horde players at every level except level 60. Pretty unbalanced.

That also explains my observation that it is very hard to find anything "low-level" on the auction house. I looked for daggers, and the lowest level dagger in the AH was level 33. I trained my rogue in blacksmithing and supplied myself and some guild members with level 18 pearl-handled daggers.

I don't think this top-heavy level distribution is good for the game. And in my opinion Blizzards reaction to it is wrong. They are argueing that as so many people are level 60, they need to add more high-level content. But I think it is the fact that the game is skewed towards high-levels which makes people prefer playing their level 60s instead of lower level alts. Somebody starting WoW now is practically forced to solo up to 60, and then will suddenly be expected to know how to play and behave in a 40-man raid.
I followed closely the situation since the beta and I can assure you that "full" means nothing at all:

Instead you see a queue when the horde+alliance population rises above 3200 players. This assuming the servers run in normal conditions and that the cap isn't manually lowered as it happens when they have performance problems.
Wouldn't it be better if they counted Horde and Alliance seperately? Put the queue up for Alliance when there are more than 1600 Alliance, and for Horde when there are more than 1600 Horde. That would work wonders for balancing the two sides.
It's likely more an issue of hardware. If you look at the big name games that publish server population numbers, they all cap around 3000 to 3500 people (EVE excepted).

There's no hard and fast rule that you can only have 3000 simultaneous network connections to a server, but there are very good reasons to not go much above that:
- the total traffic that can be handled by a router. If you figure an average of 15Kbps per user, or roughly 44MBps bandwidth--and since each router is essentially a computer, you're asking it to handle 44MBps of packets, and more when people raid.
- the amount of CPU time spent pathfinding, bounds checking, cheat detecting, verifying, updating world state, handling messages, etc.
- the total traffic that can be handled by a regional (zone) server. Asheron's Call ported people away. EQ, DAOC, and WoW crash.

Consider: three players are in an inn, talking to one another. For each message I send, three packets are generated (one acknowledging my message, and one to each of the listeners).

Consider a 40 man raid in WoW: 40 people, talking, moving, each one generating updates that need to be sent to 39 other people, plus guild chat and other channels, mob movements, etc. You can batch some of these up, but you don't wait to make the update packets too big or they'll get chopped up by intermediate routers, and may need to be retransmitted. Lossy (UDP) protocols make a lot of sense in this case, but so does a dedicated server for running instances. Of course, one of the biggest performance problems everyone has always had is how the shared database is built into the overall architecture, but I digress.

I assume the problem with counting Horde and Alliance separately comes in when you have people like me, who have characters on both sides on the same server. I'm enqueued before I get to the character selection screen, not after I select a character.
Just for the record, the processing needed by the network equipment is a non-issue.. 44mbps is *far* from a heavy load and any serious data center will be able to easily handle a lot more than that..

Any private company can get a 100mbps LanX for a couple of k$ around here, big datacenters get much wider pipes I assure you :-) (of course to garantee traffic they won't be LanX and the pricing is higher but that's beside the point..)

A really small datacenter I worked at had Cisco 6509 cores (a nice but still basic model, nothing high end or backbone carrier-grade) and handled multiple 100mbps-over-atm link + full bgp with the cpu topping at 6% on heavy loads.. Lots of ram, yup, cpu nah :)
Post a Comment

Links to this post:

Create a Link

<< Home
Newer›  ‹Older

  Powered by Blogger   Free Page Rank Tool