tad10 wrote:
Lol. You get a 120k active playerbase (again using the 20% rule means about 24k online most nights) in a fantasy game that is on one "server" that is majority non-instanced content without horrendous lag in populated areas or daylong queues and I'll eat my hat on youtube.
I'll take that bet.
BTW, just curious, are you aware of what the (single shard) Champions Online game achieved in its PCU?
Or the (single shard) Star Trek Online?
How about Darkfall?
Ultima Online?
Second Life?
Do you understand the difference between "PCU", and "number of active players in the same virtual space"?
Do you understand the difference between server-lag, client-lag, and network-lag? And how those relate to the number of active players that can inhabit the same virtual space?
EVE can support about 1,000 active players in the same virtual space without major performance problems on the server or network (client lag is the biggest problem at this scale, primarily due to video card issues). It can get up to about 2,000 active players in the same virtual space without crashing the server, but performance degrades badly on the server.
EVE has 7,500 star systems. Each system can be hosted on its own node (called a Sol server), although in practice most systems are hosted on shared Sol Servers because they do not generate enough traffic volume to require dedicated hardware.
Within each system, virtual spaces called "grids" by the players are created for each active player, and are shared by active players within a certain range (which is dynamically resized). It is possible to have those 1,000 active players scattered all over the system, or concentrated in one grid - the load on the server is effectively the same, although the network load goes up as a function of N^2, where N = number of active objects being tracked by the server. So 1,000 active players in 1,000 grids would be less taxing on the system than 1,000 active players on one grid.
When a player is in a station, that player is not considered an "active player" in the system's virtual space - so the total population of a system could be much, much higher than 1,000 without causing performance problems.
EVE's system would be infinitely scalable to the point (at least) where each grid could be run on its own hardware except for one problem. The game's core logic is written in Stackless Python, which is one of the reasons EVE was able to grow to the size it was, but now has become a limiting factor. Stackless Python cannot be run across multiple cores. It has a programmatic object (called the GIL) that doesn't enable it to spawn multi-core processes. Long before I left CCP there was work underway to address this issue, but until the problem is solved, there likely are hardware limits to the growth that EVE can maintain within a single virtual space. (The interested can watch this talk: http://blip.tv/carlfk/mindblowing-python-gil-2243379) (And you can see some of how CCP is dealing with this here: http://www.eveonline.com/devblog.asp?a=blog&bid=925)
The idea that a modern "massively" multiplayer online game should have a PCU in the 3,500-5,000 range (I'm looking at you, WoW & WoW clones) is ridiculous. WoW was designed in the early part of the 2000s. It's been nearly 10 years since its network topology and database systems were devised, 10 years which have seen the rise of all sorts of better solutions for transaction processors (look into CouchDB, for one example). But since Theme Park MMOs don't gain much value from having large simultaneous server populations or large virtual space population, most of the theme park segment hasn't bothered to try and come up with a better solution. In fact, they're actively developed to avoid large concentrations of players. Can you imagine what some of the shared spaces in WoW would be like if 1,000 characters were all in the same virtual space? They feel excessively crowded with just a few dozen!
Anyway "tad10", you should probably start picking out that hat now, and we'll be sure to link the video on our community site after your meal.
RyanD