Today CCP Warlock posted a devblog called “The Long Lag”. CCP Warlock has a Ph.D. in Computer Science from the MIT Media Lab. If you didn’t know, that’s a pretty solid credential. She’s working on lag and distributed system performance in EVE. It’s always tricky when a computer scientist has to tell a non-specialist audience that they can’t have something. It’s tricky to tell the difference between the easy, the trivial, the hard, and the impossible, even if you ARE a computer scientist. If you aren’t, you might often say things that sound a lot like, “Well, why can’t I have that cloak of invisibility? Are you dumb or just lazy?”
I’ve read through her post, and her presentation at Para this year. I assure you that she isn’t dumb or lazy. Forthwith are some of my favorite quotations, and my (and mine alone!) interpretation of them.
- CCP Warlock: What both software and human groups are fighting at a very fundamental level is a nasty relationships between organizational structure and available real time communication capacity.
Toldain: There just ain’t enough wires to go around people! In a fleet fight of 1000 pilots, each and every client needs to pass some information to every other client. To handle this you would need to have 1000 different wires coming into your house, connecting to your computer, to handle the communication need. And so would each and every other players. Well, maybe one wire can handle communication with 10 other pilots, but that only cuts it down to 100 wires needed. More than one message can’t go down any wire at the same time, that’s the nature of the problem. And we can’t push harder on the internet to make the bits go faster.
- CCP Warlock: Our goal is to not only give you the best possible performance across the cluster as whole, but also for specific activities like fleet fights, measured against the theoretical limits.
Toldain: Hey there players!!! There are limits to this. There are conceivably big enough fleet fights that no computer and no software can handle them correctly. When the company was started we were happy to get 1000 players just logged in at the same time, let alone fighting on the same grid! Ok, ok, we aren’t performing up to theoretical maximum, and we really really want to fix it, but let’s keep this in perspective: Getting an 8-processor cluster on a much simpler application to simply go 50% faster than a 4-processor one, never mind getting to theoretical maximum, was a major, major accomplishment back in the days that I [Toldain] worked for a major computer vendor.
- CCP Warlock: From time to time we also discuss scaling issues with game design, since that is the only place where some of these distributed scaling problems can be solved.
Toldain: Help us please, game designers, you’re our only hope! There’s no freaking way that 2000 pilot fleet fights are EVER going to work! But the players are headed down that road, for perfectly good reasons as far as the game design is concerned. Please turn this battleship off of its present course!
- CCP Warlock: Probably the most frustrating part is that based on past experience, when we do find this issue (or issues) it will be something that, in retrospect, appears incredibly obvious and silly to have caused so much pain. So we will continue to beat our heads against this problem until we solve it, and then I suspect we will beat our heads against the nearest wall for a quite a while afterwards.
Toldain: I have personally beat my head on that very same wall.
- CCP Warlock: A complex system is a network of homogeneous components which interact non-linearly. Many scientific fields are currently blocking on complex systems issues.
Toldain: This stuff is really, really hard. Lots of scientists out there would give their eyeteeth to have some better tools to deal with this stuff, but the fact is that we find it easier to prove that certain kinds of programs and tools can’t be made, than it is to do something as simple as figuring out how to put all your inventory into boxes. Even figuring out the simplest things can get you to the point where it would take from now until the heat death of the universe to figure them out on an input set the size of, oh, say, 1000. And still, we try to do something, doing nothing is not an option.
- CCP Warlock Inventory: O(number of players) * number of items in the game. Eve players are packrats.
Toldain: Guilty as charged. Actually its worse than she says on this slide. The slide says the amount of database storage needed is proportional to the number of players times the number of items you can have. But I propose it gets another multiplier equal to the number of stations in the game. Unless they’ve done something really, really clever, which they might have.