Wednesday, January 22, 2014

Only you can prevent Hamster Fires

In my previous post, I took a stab at explaining the mathematics of lag. Subsequently, I was goaded pestered challenged encouraged by CSM Vice-Chair Ripard Teg to explain in more detail how the problem of lag might be addressed. As he put it, it "might require you doing more than one post in a month, but it'd be worth it."

In my post, I pointed out that (a) faster computers aren't going to help, and (b) more efficient code is helpful, but not helpful enough. The fundamental problem is that because it's never a bad idea to bring more people to a fight, "fleets expand to fit the lag available."

Fixing that is a hugely difficult problem that will touch many areas of the game. But perhaps there are some significantly simpler game design changes that can, if not solve the problem, at least buy us more time in which to deal with it. This is what I'd like to address in this post.

As with the previous post, all the examples given below are very simplified for purposes of explanation. And I want to make it absolutely clear that I am not involved in Sov-warfare, so I am sure that there will be many flaws in the example I give below. This is just an exercise in identifying the problems that need to be solved.

At the most basic level, what causes lag is that everybody has to fight in the same place at the same time. Since every object on a grid can potentially interact with every other object on the same grid, the amount of computation needed to process a fight increases non-linearly -- doubling the number of objects more than doubles the horsepower you need.

The key thing to keep in mind is that the important variable is "number of objects that can interact". For purposes of illustration, let's say that the computation load increases as the square of the number of objects; twice as many objects means four times as much computation.

As is well known, one of CCP's secret weapons is that their servers are powered not by common everyday electricity, but by genetically-engineered hamsters. Let's say that with the hamsters running flat-out in 10% TiDi, CCP's best server can handle 2000 players fighting it out on the same grid. 2000-squared is 4,000,000, so the server can be rated at 4 million hamsterpower.

If you draw a graph with # of players along the horizontal axis, and # of hamsters required along the vertical, you get something that looks like this:

The technical term for this situation is "Hamster Abuse."

Alas, when the line hits the top of the graph, we run out of hamsters  even worse, all the hamsters are working so hard that they catch on fire. As the aroma of roasted rodent chokes CCP's server complex,  two things happen: soul-crushing lag descends upon New Eden, and tomorrow's lunch menu at CCP gets an additional "meat dish".

But all is not lost; if we could split the fights up into 1000 player battles in the same system, then each battle only requires 1000-squared, or 1 million hamsterpower. Running flat out, the faithful hamsters can handle 4 of these battles simultaneously on a single server.

And even better, if we could spread out the fights to different systems, then each could potentially run on its own server, with its own set of hamsters.

So this is the first thing we need: Sov-warfare should take place on a constellation-wide basis, and require multiple simultaneous fights in multiple systems. And to discourage people from just jumping and bridging around to create local concentrations of force, Force projection by cyno must be cleverly nerfed.

Another thing to consider is that at present, battles are focused not only in space but also in time, thanks to the timer system. This is one consequence of the fact that Sov is a binary state; you either have it, or you don't. So timers have to go, and that means that Sovereignty must become a continuum.

Finally, Shooting structures is boring, so let's get rid of it.

I spent a few hours and came up with a humble suggestion that tries to incorporate all of these concepts:

Sovereignty is determined on a constellation-wide basis. In each system in the constellation, there is a Sovereignty Control Monitor (SCM).

The SCMs give out Political Points (PP) for ratting, mining, and just plain being in space, but they also give points for any kills that took place in the system. These points are given to the player who struck the final blow, and the amount depends on the value of the kill. SCMs that are giving out more than the constellation's average amount of PP reduce their awards, to encourage multiple fights. Obviously, this has to be structured so that sitting in a big blob in one or a few systems while your opponent hangs around in all the other ones is a losing strategy. I'll be the first to admit that figuring out a PP-awarding system that is resistant to abuse is a challenging problem, but I don't think it is an unsolvable one.

During peacetime, and periods when one side has timezone dominance, people can do stuff and get some points, but the real payoff happens when you fight and win multiple fights.

And yes, a super-rich alliance could descend upon a constellation and AWOX themselves to generate PP.  Good for them, they are demonstrating their awesome economic might in a massive space Potlach!

Each ship has a PP accumulator. The accumulator records how much PP the ship has, and what constellations they are valid in. Every day at downtime, 25% of your PP drains away, so it's use it or lose it. You can transfer your PP to another ship if you do not have an aggression timer, and you can also siphon PP off a wreck by salvaging it. If you have PP that is valid in a particular constellation, you can go to any SCM in the constellation and deposit them to either increase or degrade Sov, which is now a continuum -- let's say from 0 to 10. If your deposit is the one that drives Sov to 0, then Sov resets to 1 and the entire constellation belongs to your alliance.

Depositing PP takes a little time, and everyone in the system will know you are doing it. Stealing an idea from the ESS, the SCMs have bubbles around them.

When Sov is low, it takes more PP to degrade it than it does to improve it; when Sov is high, it takes more PP to improve it than to degrade it (and a certain amount just to maintain it). The closer you are to either 0 or 10, the harder it should be to push it there. Sov battles become a tug of war, with the emphasis on war.

Finally, we need to nerf force projection. We want to make both caps and subcaps useful and important ships in combat with distinct roles, and in particular, we don't want cynos and bridging to be used to leap around the constellation playing whackamole, because that stresses out the hamsters. So how about this? Ships get a new aggression counter; if they cyno or bridge within an hour of committing an aggressive act, they trigger a cooldown that does not let them cyno or bridge again for an hour or two.

So you can cyno and bridge across the galaxy, and you can cyno and bridge into a combat, and you can cyno and bridge out of that combat, but then things get a little interesting.

As I said before, I am sure there are many awful problems with the above, but perhaps it will inspire someone to come up with something that will work.

The hamsters will thank you!


  1. Renters will be wanted purely for their ability to work the 'farms and fields' by mining and ratting and I can already see fleets of mining bots being used to claim sovereignty. But I like the idea behind PP.
    Balancing between pve (nonstop) and pvp (more incidental) would be a challenge.

  2. Sounds good starting point for the sov warfare overhaul. I agree that sov holding should be continuum. But also I think borders should not be strictly between systems. The continuums could be instead for each planet (moons would go with the planets they are circling) so that even in each system there would be lot to do and one system could have multiple simultaneous owners.

  3. I believe your graph is not the best one to illustrate the issue Trebor. Use a graph showing how speed asymptotically approaches light speed as a ship accelerates, but never reaches it because mass grows exponentially thus preventing ever reaching light speed. That would be a better analogy IMO.

  4. I thought that whole "nerf force projection" was a topic of CSM 4 or 5. And it was this "threat" which galvanized the prime Null alliances to their concerted interest in the CSM since. Based on that - Trebor, do you really think they will allow you to kerb what is clearly an over effective defense/offence process?

  5. "Sovereignty is determined on a constellation-wide basis" don't you think this will make the chances of a smaller independent corp/alliance less likely to hold sov?

    I like a lot of your ideas, but I believe a more vibrant null sec (and therefore, successful game) could be attained if the current coalition meta was nerfed in some way.

  6. I like the direction of this, but why not take the analysis one step further: what are the specific in-game mechanical benefits that sov provides, and is there some way we can instead replace each of these with in-game anchorable structures that can be destroyed or compromised? Maybe make a new type of deep-space pocket where these things must be anchored to keep them away from POSes. Have them require fuel, participation points, or some combination thereof.

    Going the PP route, and making the PPs non-transferable, would mean a well-occupied system would be vibrant and bustling, whereas an unused system would be a wasteland ripe for the plucking; or if a "renter" were moved in, the system would de-facto belong to the renter rather than the rentee. A large entity could still exert a large sphere of influence, but the political map would instead show a cloud of smaller fiefdoms.

  7. Dude, you need to post more. Your ideas are worth sharing.

  8. Instead of another "aggression timer" I think a better solution is to lengthen the cooldown of cyno to 30 - 60 minutes. To keep capitals from being sitting ducks, capital-sized micro jump drives can be used defensively (but at a cost of dps or tank). Idunno, I barely play eve anymore but I like your ideas.

    Oh by the way, one thing I never quite understood. If there are around 5,431 systems in EVE, why not spend $5-$10mil and give each system a medium-speed server? I'm sure they could easily run each system with a $500-$1000 older model server. Systems that see more traffic would get better servers, and everything can be upgraded as technology improves.

  9. The technical term for this situation is "Hamster Abuse." ...