|Update: Population Stabilization|
January 4, 2019
This week's update focuses on a bunch of bug fixes and other little improvements. I took some time off for the holidays this week, and will be back with a substantial content update next week.
The biggest change is an improvement to the way that players are automatically distributed among the available servers. The original goal was to keep as many players as possible together on the same server, and only expand to additional servers when necessary during a population boom. During a population decline, we still want as many players as possible playing together, so the remaining players should be brought together onto one server, instead of being left spread out on the overflow servers.
This system was working as intended, but had some unfortunate side-effects on village fertility. Essentially, if you were on one of the overflow servers during a population downswing, your village was doomed, because no new players would be sent there. As player population changes throughout the day, this means that various villages die out again and again. And even worse, other logic in the player distribution code tries to make sure a given player always plays on the same server, whenever possible. So, depending on the time of the day that you play, and the luck of the draw, you might get stuck always being born on an overflow server right before a population downturn---always playing in a doomed village.
Take a look at the red line (server 4) in this graph, which was generated by Thundersen:
You can see that as the population rises, server 4 is brought into the mix to handle it, and then the population reaches a noisy plateau, which soon after results in server 4 being removed from the mix, only to be brought back into the mix a few hours later, only to be removed again shortly after. Villages on server4 were dying out over and over. Pity the players who were stuck playing on server 4 that evening.
Also, that system was designed a long time ago, when Eve distribution wasn't really in place, and I imagined players mostly all playing in the same area on the map. Now that players are playing in separate villages anyway, keeping them clumped on the same server together isn't as high of a priority.
CrazyEddie suggested that we try a different method, picking an appropriate number of servers for the load, and then just letting populations rise and fall on the servers together, as long as we're still above some lower threshold. Thus, once a server is brought into the mix, it generally stays in the mix. As population falls, it falls simultaneously on all servers, but no server is singled out to be childless. This means that a village being doomed by outside circumstances will happen way less often---almost never (except in very rare cases where the overall population falls to very low levels and a server really does need to be taken out of circulation).
Keep in mind that villages are still competing for babies, due to variable mother fertility factors (warmth and diet variety). So, that's still happening on each server. If your village is dying out, perhaps another village is stealing incoming players by taking better care of their fertile mothers. There is no explicit trans-server competition, though there's a kind of meta competition, based on how many of the players that are assigned to your server are motivated to keep playing across multiple lives.
I have something special in store for next week. Not magical, but still magic. Well, I guess it's only called "not magical" because of how jaded we are. If I told you that a few coils of copper wire and a galena crystal could be used to pull invisible voices from the sky, you'd probably think I was crazy. But to the untrained eye, a schematic can easily be mistaken for a sigil.