Issue#6: Overpopulation

Glimpses from the Future, #2

Today we’ll analyse a problem, and then study two different solutions: a proper one, and a placeholder, considering the pros and cons of both of them.

The problem is overpopulation.

Meanwhile, the previous “future feature” discussed here, the “Brawler loans”, is already up and running!

A crowded District

With the Province update (5.0), Users will be able to move their Teams to different Cities, but right now we have a single District: every Team stays there, together with all of their supporters.

This, compared to the game in its final future form, is an anomaly; it causes a few unbalanced side‑effects, which we will try to solve.

Inflated earnings

Since every single supporter is in the same District, and all the Matches are played there, there will always be an inflated number of spectators attending, which in turn will cause SG earnings to raise excessively.

Technically this isn’t currently a problem, because:

The earnings raise proportionally for everyone.

There are no other SG sources, so it’s not even unbalanced towards other sources.

SG are only spent through auctions, not through any fixed means, so this doesn’t cause Users to have an increased purchasing power.

While this isn’t cause for concern right now, it’s important to keep this in mind when we analyse the rest.

Too many Eggs

The Ivory Ritual allows you to create a Brawler Egg using some of your supporters, all from the same District. Since they are all in the same District, instead of being spread through several, it’s too easy to meet the requirements to perform such a ritual.

This causes too many Eggs to be generated, which inflates the amount of available Brawlers and thus the power level of the Teams.

However, it’s not too high. Only slightly. This means that we’ll have to take care about this in a possible fix, preventing it from going too low instead.

Placeholder: max population

Say that we wanted to fix this problem right now, even if we can’t create extra Districts. A solution might be to set a soft population cap to the District: going over this limit would cause daily curbings, which in turn should gradually bring the population back below the max.

It’s a bad idea. Let’s see why.

Proportional: newsers get cut off

If we had such a system in place, and it curbed supporters proportionally from all groups, it would hinder terribly the new Users.

Think about it: you start playing, you have 0 supporters. You get a few new supporters, while other users have many. Then every one of you loses some, proportionally.

But the amount of supporters you need to perform an Ivory Ritual is fixed. This means that the new User will have a much harder time trying to catch up and produce its own Brawlers, while the old users likely already have many.

While catch‑up methods might be bad for several reasons, doing the opposite surely is not going to help!

Curbing the top

Ok, so we might “curb the top”: drastically reduce the amount of supporters of the most popular Teams, leaving the smaller untouched.

This is also bad: the population cap already would already be an arbitrary number, and introducing arbitrary numbers is problematic from a balancing point of view… this “solution” would introduce even more of them!

It might also become more convenient to have many small Teams rather than a popular one. While this wouldn’t be a violation of any of the “safety & order” design rules, it would still be a nasty problem:

pressing Users not to win when they could…

in order to have more supporters…

which would help them to create more Brawlers…

which would be used to…

win more easily.

It doesn’t make any sense.

Real solution: migrations

The real solution, which is planned for the Arenas update (4.0), will have supporters to automatically migrate from the most populated District of a City to the least populated ones, regardless of how much crowded they are.

Crowded District: incentives

In order to better understand how and why this works, first we need to consider this: if we don’t do anything to prevent it, it will be massively more convenient to just have all the Teams stay in the same District. The reasons are the same reasons we talked about earlier, describing the current situation: inflated SG earnings, easier Rituals.

Our goal is to make it more convenient, one way or another, to move to less crowded Districts, so that Teams and supporters will spread around.

Mechanics, base

Every week, for each City, the daemon will calculate which are the most and the least crowded Districts. It will calculate the difference between the two. A percentage of that difference will move (let’s call this “moving quota”).

Population is, however, heterogeneous: there are multiple Teams, multiple Races… so who’s gonna move?

First we’ll pick a random Team, from that Team we’ll pick a random race. If they are enough to fill the “moving quota”, such a quota will move, and we are done. Otherwise, we’ll repeat the process.

Casualties

Once we have determined who’s going to move… they are not all going to reach the destination.

A percentage of the “moving quota” will get lost and vanish during the trip.

Strong incentives

Why is this forced migration a strong incentive not to overcrowd a District?

Ironically, for the very same reasons why it is convenient to have them all in a single District if there wasn’t such a mechanism!

It is convenient to have, as much as possible, all of your supporters in the same District. You don’t want to risk that huge random chunks of them will go elsewhere or vanish, so you’d rather move everyone to Districts where such a thing is less likely to happen.

Balance

What if you move to a less crowded District that, over time, will become crowded due to multiple forced migrations?

Well, this won’t really happen, for natural causes: the population will eventually balance out. Sure, a District will always be slightly more or less populated than another one, but if the difference is minimal, the forced migration will be minimal as well! Not a big deal, then.

Sure, it’s possible that the District will become crowded for other reasons, such as too many Teams moving there, or Teams there being much more performant than Teams elsewhere… in that case, it will be eventually be more convenient to move again…

Cities

This solution only balances multiple Districts in a single City, but will eventually have to be extended to support multiple Cities.

While the core mechanic will be quite similar, some adaptation will be necessary: different Cities will have a different amount of Districts, so the overall population of the City itself will not be relevant as much as the actual population as their Districts.

Furthermore, Cities will be more or less distant from one another, and this will also have an effect on migration (will likely affect the total amount of migrating supporters, and might also affect the percentage of those who arrive safely at destination).

Team moving

Teams will thus be allowed to move voluntarily from one District to another one.

Cost

The cost for moving a Team will be proportional to the population difference in the two Districts: moving to one more crowded than your current one will be very expensive, while moving to a less crowded one will be quite cheap.

Population

When a Team moves this way, most of its supporters will follow. This will be somewhat proportional to the population difference too.

Cooldown

Teams will only be allowed to move if they haven’t moved in the last 5 weeks. This will NOT depend on the population difference between the two districts.

This is because while we want to encourage Teams to spread around, we do not want them to become nomads. It would be ugly, and also unsettling for their opponents: when you win in an opponent’s District, you get supporters in that District… against a nomadic Team, the others would get their own supporters unjustly spread around much more than they should…

Timeline

We ditched the placeholder solution, and the full feature will be introduced in version 4.0, after adding the new Districts to Coalington.

That being said, always remember that the Cthulings are mutable, and everything may change!