Live data from Hacker News

How the EVE Online Servers Deal with a 3,000 Person Battle

penny-arcade.com

61–70 of 135 posts

Re: How the EVE Online Servers Deal with a 3,000 Person Battle

#61

Earlier quoted context omitted.

I think one thing Eve has going for it (and this is only an assumption) is that it wouldn't need to sync each player's position on each frame. It could reduce the load dramatically by only sending the acceleration / orientation data for a ship. So if a ship has set a course and has stopped accelerating it doesn't need to send anything else unless that course is changed.

This is exactly how these types of problems are solved. Local clients run simulations based on known locations/directions, and are synced with the central server at a specified interval. This allows a client to have a light-weight "cached" view of the reality, and the only trade-off is the occasional discrepancy from the reality. However, if you send updates about changes in speed/directions in real time, you get a p…

Depending on the game (it's been 10 years for me) one 'hack' was to head in one direction, pull the network connection for 3-4 seconds, head in the opposite direction, and plug back in. This allowed you to escape or hide in the terrain fairly reliably.

With higher bandwidths and server capacities I'm guessing these timeouts have been reduced, but never underestimate the player's ability to abuse your trade-offs.

Re: How the EVE Online Servers Deal with a 3,000 Person Battle

#62
post #59

Earlier quoted context omitted.

This is exactly how these types of problems are solved. Local clients run simulations based on known locations/directions, and are synced with the central server at a specified interval. This allows a client to have a light-weight "cached" view of the reality, and the only trade-off is the occasional discrepancy from the reality. However, if you send updates about changes in speed/directions in real time, you get a p…

Sure. It's commonly called dead reckoning as I understand it: http://en.wikipedia.org/wiki/Dead_reckoning#Dead_reckoning_f... But even if you only send a "real" update once a second, I still don't see how this thing scales (that still leaves 1 PB in the above calculation). And if you send it less than that, I imagine things would start to look rather jittery. The "occasional discrepancy form reality" would be awful.

It depends. If you have 3000 clients and a full sync of all visible ships occurs every second, you get 3000 * 48 = approx 150kb/sec/client. Yes, that means that the server must be able to handle 3000 times that speed, but that still leaves us at about 0.5gbit. Yes, it's a very high load, but then again, these types of situations are extraordinary.

Last but not least, compression is your friend.

Re: How the EVE Online Servers Deal with a 3,000 Person Battle

#63
post #56

Earlier quoted context omitted.

I think one thing Eve has going for it (and this is only an assumption) is that it wouldn't need to sync each player's position on each frame. It could reduce the load dramatically by only sending the acceleration / orientation data for a ship. So if a ship has set a course and has stopped accelerating it doesn't need to send anything else unless that course is changed.

I haven't really played Eve, so I can't say. I'm imagining ships flying around and changing course constantly in a battle, but if someone can give a better description, I'd appreciate it. It'd be further reduced by several players sharing a ship... no idea how common that is. What I'm describing is definitely leaning more towards players that are constantly moving around though. It helps explain to me why in Asheron'…

Eve doesn't have WASD controls, there really isn't constant input.

The ship movement command in Eve are limited to:

* Set course / speed (double clicking in space, speed set via clicking a speed dial thing). This is not something that gets constant tweaks, more a 'move in a general direction' command.

* Orbit x @ y distance

* Keep x @ y distance

* Approach x

In addition other actions in eve are relatively long lived, there isn't fps style aiming but 'locking on' and activating modules which have cycles times of 2-60 seconds.

In practice, even in the heat of battle, I doubt the average player gets even close to 1 input action per second over the course of a fight.

Re: How the EVE Online Servers Deal with a 3,000 Person Battle

#64
post #8

The report of the battle they link to ( http://www.pcgamer.com/2013/01/28/eve-online-battle-asakai/ ) is even more fascinating to me. You spend hours and hours of effort in order to get a ship, and one way of thinking about them is as the time spent to earn them compressed into 3d form. Unlike (most) other MMO's, battles actually destroy things. So in that youtube clip, you're watching years and years of effort getti…

To be fair, most people who are using the high end ships aren't getting their funding by grinding anymore.

Its much easier to play the market and/or prey on new players moving expensive stuff in areas they think are safe.

Incidentally, probably the most fascinating part of Eve is really the economy. It's by the closest thing to a 'real' market ever created in a virtual setting.

Re: How the EVE Online Servers Deal with a 3,000 Person Battle

#65
post #38

It's like each solar system is a VM, and they can't move their VMs to a new physical server without disconnecting all clients. And all of their physical servers are at 100% load all of the time? Oh, I guess it's 100% utilization, not 100% load. As in, they don't spin down servers to save power during off-hours I guess. The time dilation is a neat solution to the server load problem, but it's sooo annoying as a player…

Two main solutions (given that the article mentions that they have huge machines already):- A) Allow a single solar system to span multiple machines. Very hard, especially if the server software isn't architected for this. Retrofitting this can be nigh on impossible. B) Have a few huge machines that can be used to host scenarios like this and, more importantly, have a way of migrating users over to the huge machine s…

They've been struggling with the issue of multi-thousand player fights for a while now, and have moved towards both of these solutions but are obviously not quite there yet.

For instance, the article actually talks about having said huge machines. There's a way in EVE to inform the GMs about anticipated big fights, at which point they'll do the reinforcement preemptively. In this case, there wasn't such a convenient warning.

Re: How the EVE Online Servers Deal with a 3,000 Person Battle

#66
post #7

Earlier quoted context omitted.

I have no idea whether more recent games have solved these problems. Most games solve this problem with completely separate servers and population caps. I know in Guild Wars 2 they actually stop displaying players past a certain number to improve performance. This works fine in calm areas like cities, but in PvP it causes issues with being killed by "invisible" groups that the game fails to load in time. I may be rem…

Guild Wars 2 is stupid about this. At least on release, they stopped displaying ENEMIES FIRST. So if you're in a big enough group, a couple enemies can walk up and none of you can see them b/c you hit the limit from displaying allies, but they can still see some of you guys and kill you while invisible. If they prioritized displaying just party members (parties only go up to 5 people) and maybe people on your friends…

They supposedly just fixed this in the patch yesterday. As a player who gets owned by unrendered thieves, I'm not convinced. -_- (OTOH, I'm also pretty bad at PvP anyways, so whatever.)

Re: How the EVE Online Servers Deal with a 3,000 Person Battle

#67
post #53

[Edit: this comment turned out not to really be about Eve and more about the difficulty of real time MMOs] This blows my mind. I've been thinking about writing a small multiplayer game for a few weeks. And today I was actually doing back of the napkin calculations. The thing that quickly became clear is bandwidth is O(n^2) where n is the number of players in the same location, since you have to share the location and…

I think one thing Eve has going for it (and this is only an assumption) is that it wouldn't need to sync each player's position on each frame. It could reduce the load dramatically by only sending the acceleration / orientation data for a ship. So if a ship has set a course and has stopped accelerating it doesn't need to send anything else unless that course is changed.

My guess is they only sync location on transaction (when you fire upon/are fired upon).

Re: How the EVE Online Servers Deal with a 3,000 Person Battle

#68
I always wondered how Eve coped with what seems like a massively data heavy game, keeping track of battles and logging data especially for epic battles where alliances are pitting their expensive ships against each other. Pretty insightful article, would love to know a bit more about their development processes and how they go about pushing new changes up. It's such a sensitive game, changing just one thing could throw the whole game into disarray. It's crazy when you think that they not only have to track battles, but they also have to capture every other action and movement within the game; mining, agent missions, the marketplace and all of the other components that rely on accurate and up-to-date data capture and realtime reporting.

What makes this all even more crazier is the game has been around for over 10 years and counting. I still play Eve everyday, once you get past the menial tasks, you can have some real fun with this game being a drug runner, miner or just straight up renegade roaming the infinite environment.

Re: How the EVE Online Servers Deal with a 3,000 Person Battle

#69
post #38

It's like each solar system is a VM, and they can't move their VMs to a new physical server without disconnecting all clients. And all of their physical servers are at 100% load all of the time? Oh, I guess it's 100% utilization, not 100% load. As in, they don't spin down servers to save power during off-hours I guess. The time dilation is a neat solution to the server load problem, but it's sooo annoying as a player…

Two main solutions (given that the article mentions that they have huge machines already):- A) Allow a single solar system to span multiple machines. Very hard, especially if the server software isn't architected for this. Retrofitting this can be nigh on impossible. B) Have a few huge machines that can be used to host scenarios like this and, more importantly, have a way of migrating users over to the huge machine s…

Option 4C) Create a raspberry pi cluster farm, and host every player with one microserver.

Re: How the EVE Online Servers Deal with a 3,000 Person Battle

#70
post #52
post #45

Earlier quoted context omitted.

Same reason people spend hours tending their farmville farms...

I've never played Farmville, so I probably shouldn't speculate, but I'm under the impression that it is at least ostensibly a social game where you invite people to help with or at least view your farm.

It's more of a social ponzi scheme. The fun part is the very-passive, easy progress. You just click on things. When you get people to participate in your farm, you're just saving yourself lots of time and clicks.
Post reply on HN