• We have updated our Community Code of Conduct. Please read through the new rules for the forum that are an integral part of Paradox Interactive’s User Agreement.

Victoria 3 - Dev Diary #105 - Migration in 1.6

16_9.jpg

Hello! I’m Alex, one of the system designers on Victoria 3 and I’m here to tell you a bit about what changes we have been planning for Migration in 1.6. I have also conscripted volunteered one of our programmers, Konrad, down from the code mines to give us some of the nitty gritty details about what’s going on.

Goals for the changes​

To begin with I’d like to clarify what the goals for these changes are, and (importantly) what they aren't. Unlike say the military rework, the goal here isn’t to completely change the gameplay surrounding migration. In fact, gameplay should feel somewhat similar, particularly if you don’t know the exact details of how it used to work.

So what is the purpose of this? Primarily, it’s about performance. We hear your concerns about mid- to late-game pacing and we’re constantly looking for opportunities to improve how well the game runs. Part of that is making small optimizations here and there, caching this or that value, pushing how much we can run in parallel and so on. Another aspect of it is looking at what design decisions we have made and considering if we can change them so gameplay still works but the mechanics are more performance-friendly.

These changes fall into the second category. In the current version of the game, migration works by regularly splitting Pops up and moving the pieces all over the place, which of course results in a higher number of Pops and worsened performance as the game goes on. In 1.6 we avoid splitting Pops for migration as much as possible so we can keep the number of Pops down.

On top of performance, another reason we are doing these changes is to make the system more maintainable and easier to work with in the future. The new implementation is simpler to understand when you are working with it which is a big plus for us, and incidentally should also make life easier for modders!

Finally, we also wanted to take the opportunity to sneak in some QoL and UX improvements while we were at it, which you’ll find towards the end of this dev diary.

General Concepts​

Before I go into details below, it’s important we are on the same page for what different terms mean and how they work. Migration in Victoria 3, as you might know, comes in two main forms: Market Migrations and Mass Migrations.

We also took the opportunity to fine tune the wording on a few of our concepts!
DD105_01.png

Market Migrations happen exclusively within your market and are largely due to economical factors in a Pop’s life. Mass Migrations on the other hand are the mechanism for Pops to migrate between different markets and have a stronger cultural focus.

How we select where people go and how many people move is highly dependent on the Migration Attraction a state has. This is a metric which indicates how much people want to move there due to factors like available employment, arable land, trade and so on. When migration attraction is used, what matters is the difference in migration attraction between two states and not the absolute value in a vacuum. It is also worth noting that migration attraction can change fairly quickly and in particular if a state receives a lot of migration, its migration attraction is likely to go down which then leaves room for other states to receive migrants.

Finally, you will often see mentions of terms like “Pops”, “number of Pops”, “Population” and so on and it is good to understand the difference between them. A Pop (also known as a Part Of Population) is a segment of a population with a specific job, culture, religion, living in a particular state and working in a specific building, e.g. Swedish Protestant engineers working at a Tooling Workshop in Stockholm. The number of Pops is how many different unique Pops we have in a building, state or even the whole game. This means that if the Tooling Workshop above employs both Swedish and Norwegian engineers, then the number of engineer pops in that building is two. Lastly, population is how many individuals we model through the use of Pops. The Swedish engineers above might be 5000 people large for instance.

These general concepts remain unchanged between 1.5 and 1.6.

You might notice the mention of a new concept: Mass Migration Attraction. We’ll go into what that means further down in the dev diary.
DD105_02.png

So, what has changed?​

Pop Selection​

On a very basic level what you need to know about how the system used to work is that we’d pick small portions from a lot of Pops all over the place and then move them around between states. In other words, migration as a system was taking consolidated larger pops and turning them into a larger number of smaller pops, which is bad for performance.

What we instead are doing now is that when we pick people to migrate, we try to pick as many “whole” pops as possible, sort them from smallest to largest and start sending them to new states. When they arrive we attempt to merge them into existing local Pops. Sometimes we still need to fragment pops, for instance if they’re too large, but we try to do so with more restraint.

Migration Destinations​

Previously, pops would migrate to essentially any state that seemed attractive enough and that would allow them based on your Migration and Citizenship laws. This led to a very spread out many-to-many migration system, which again, coupled with the Pop Selection system resulted in more pop fragmentation.

In the new system, we only allow pops to migrate to states with a so-called Cultural Community for the culture that pop belongs to. If there are multiple available cultural communities, we send migrants to all states within a certain margin of the highest migration attraction state, distributing them according to their migration attraction and if they’re actually able to take in that many migrants.

I’ve heard that Michigan is lovely this time of year. Maybe we should create a Swedish cultural community there?
DD105_03.png

Cultural Communities​

If you played the 1.5 open beta, you might recall when we tried introducing some of these changes (and how it accompanied some… interesting bugs with pops ignoring migration laws and all that). One of the changes was this notion of Cultural Communities. The idea is for them to model that you are more likely to migrate somewhere you know people of your culture already live in. You can of course move somewhere completely new, but that is not as common.

Do you tend to look through the in-game concepts like this one often? Did they help you when learning the game? We’d love to hear your thoughts!
DD105_04.png

Cultural communities exist everywhere there is at least one pop of a given culture. Additionally, every month there is a chance for a new cultural community belonging to a culture in your market to spawn in one of your states. If no one of that culture moves to that state, the cultural community disappears after a few weeks.

It is important to note that the relevant factor for performance is not the size of the population, but rather the number of Pops. This means that if the migration mechanics produce more homogenous results, we end up with a better performing game without having to compromise on the fidelity of the other aspects of the simulation (employment, pop consumption, population growth, qualifications, etc) at all. Since the concern we've heard from players previously is not at all that the simulation produces too homogenous results but rather a sometimes immersion-breaking mix of pop cultures in any given state, this system lets us scale down the average number of cultures present in each state.

If you are into modding, the weights and conditions for cultural communities to spawn are completely customizable through a script value that runs every month for every combination of state and culture in a market. I’m looking forward to seeing what you come up with!

Mass Migrations​

Mass migrations used to be more tightly coupled to market migration in 1.5. For 1.6 they work more in parallel having their own limits and conditions. Essentially, when evaluating if we should spawn a mass migration we go through the following steps:

  1. For every culture, go through the countries where that culture has homelands and calculate the chance for a mass migration to spawn from there. This includes filtering out countries or cultures that don’t fulfill the requirements for mass migrations, like having enough cultural turmoil or actually allowing migration to happen
  2. Pick one of the eligible countries above as the origin for the mass migration
  3. Calculate the Mass Migration Attraction for that culture to migrate to all different countries. This is the average migration attraction of the eligible states in the target countries.
  4. After adding a small random factor so we don’t send all mass migrations to the same place, pick the country with the highest Mass Migration Attraction
  5. Go through the eligible states in that country and pick the one with the highest migration attraction (after adding a small random factor)

After all this we spawn the mass migration for the selected culture and country we picked in step 2 to the state we picked in step 5.

You might also have noticed that we now mostly display migration as a weekly value, instead of an annual one. The reason is that migration can change pretty quickly between weeks which used to make it confusing or even misleading when we focused on the annual value.
DD105_05.png

At this point, similarly to market migration, we select pops we want to move, trying to prioritize smaller whole pops and send them on their way to their new home. We do keep track so we don’t send too many people from any one state or to any one state so we neither depopulate nor overwhelm states during mass migrations.

Results​

So how did all these changes turn out? For now our own tests have given us positive results with a reduction of around 15-20% in the number of pops towards the end game. This comes both from a reduction in fragmented pops, but also in pops getting more concentrated in which states they are sent to, which also leads to somewhat fewer buildings overall.

For all you gamers economists out there, in this case line go down is good!
DD105_06.png

New shiny UX improvements​

I bet you’re thinking “What about the UX improvements you mentioned though? Give them to me!”. Also hello to all of you impatient readers who skipped through the details right to the shiny screenshots and UX changes. As mentioned, with the migration changes we wanted to also make the system a bit more accessible from a UX perspective as development itself showed there was a lot of information that felt way too hard to access and understand given how important it is.

One change I personally am quite a fan of is that we now clearly display if a state can actually receive a mass migration now:
Who’d ever want to go to Rhode Island of all places?
DD105_07.png


DD105_08.png

If you are wondering about what the requirements for this are, they are now displayed in the updated concept for Mass Migration targets:

DD105_09.png

These requirements are not new, we just haven’t properly exposed them before. It can of course be tedious to check states one by one if they are eligible for mass migration, so we also added a map mode that shows you this:

Remember to integrate your states if you want them to get any mass migrations! Also, it’s probably a good idea to make sure they are properly connected to your market..
DD105_10.png

While we are on the topic of map modes, we have also added a map mode that tells you roughly what country is most likely to receive a mass migration:

The New World displaying its promise for greatness in bright green!
DD105_11.png

This map mode also includes a new concept for Mass Migration Attraction:

Can’t get a mass migration if you’re so small people can’t even spot you on a map
DD105_12.png

Something I’ve felt has been missing from the game for a long time is a map mode that shows you where people are actually moving, rather than where there’s high migration attraction. We have that now!

What’s up with Idaho, though?
DD105_13.png

Finally, we also reworked the old migration attraction map mode so it only shows states in your market, rather than the whole world. This should better communicate the difference between market and mass migrations as well as show you where in your market people are likely to move to and from:

Now you should be able to more clearly understand the migration flow in your market even in other countries.
DD105_14.png

For the modders out there, you’ll find we also restructured, renamed and removed a bunch of defines (this is your reminder to update your mods when 1.6 drops):

DD105_15.png

Next Time​

That’s it for today! Hope you enjoyed reading about how we’re working with migration and that you are looking forward to playing with these new map modes and other improvements when free update 1.6 releases on March 6! If you can’t wait until then, the next dev diary (two weeks from now) will have the full changelog for 1.6, which will include all the other things we've done outside of migration and UX improvements. See you then!
 
Last edited by a moderator:
  • 123Like
  • 44Love
  • 12
  • 11
  • 2
Reactions:
This is an improvement but man does it still leave things to be desired. For one thing, why can non-integrated states not receive mass migrations? The American frontier was heavily settled not just with Americans, but by immigrants specifically leaving their home country for the promise of owning their own homestead in the new world. I assume this is to prevent Europeans from migrating in large numbers to their African and Asian colonial possessions, but I think there are better ways to implement that.

For another thing, I really disagree with preventing mass migration to states with fewer than 30 arable land. The way the simulation works as it stands currently, historically early to industrialize and densely urbanized areas like Southern New England become ghost towns within a few decades meanwhile [because of the recent tweaks to local-prices], historically rural West Virginia becomes a metropolis from all of its mining and industry. I assume this is to prevent a mass migration to small islands or inhospitable jungles / deserts, but wouldn't that be better suited by a state trait debuffing immigration attractiveness to said states rather than a blanket ban on small states? All six states in New England, Maryland, DC, and Delaware all have less than 30 arable land, but these areas received huge amounts of international immigration historically. Under the current system that will never happen.

Victoria III really struggles in a lot of ways with simulating low population states, and its a very frustrating problem. By choosing to divide the US into its real life subdivisions, the northeast is artificially punished for having a greater level of detail than other areas. Other countries that have their subdivisions merged into much larger states don't have this problem. For example, geographically larger states in Mexico that are in reality mostly desert, mountain, or jungle are able to receive mass migrations while temperate states that were already by the game's start centers of industry and commerce can not.

I'm also unsure why nations with four or less states would be penalized in mass migration attraction because of their number of states. New Zealand is only two states total, and for around the first half of the game Australia is divided into multiple nations each with less than 4 states, and yet Oceania received significant numbers of migrants even outside of the British market.


Overall, the whole immigration system seems really binary when it should be more fluid. I understand that this is likely force performance reasons, but it really hurts the overall simulation. New World nations already almost never reach their OTL populations because their just isn't much migration, and it's made even worse by mass migrations being so artificially restricted.
 
  • 16
  • 2
  • 1Like
  • 1
Reactions:
A bit odd that a cultural community can spawn with at least a pop present. If there is a Romanian farmer in New York, that won't really convince me to move there. I'd see the system as a total of population. If at least 0.05% of total population of a province is Romanian, a Romanian community might spawn. So as a migrant, I'd know where to go, to the Little Bucharest in New York, instead of searching for the other, single Romanian bretheren that lives somewhere there.
I think they're going for the "relative moves to America and inspires family and friends to do the same" thing. I agree it shouldn't immediately create a community, but I do like the idea that the odds of a culture migrating to a state increase as more of them move there.
 
Last edited:
  • 5
  • 1Like
Reactions:
So it's not surprising that people who have bought the Grand Edition and thus effectively pre-ordered Sphere of Influence it are getting curious about the release date.
Especially when it's the big one that includes a bunch of stuff we've wanted from launch.
 
  • 7Like
Reactions:
Do you tend to look through the in-game concepts like this one often? Did they help you when learning the game? We’d love to hear your thoughts!

Yes! They are extremely helpful! More!

Not just while learning the game - I bounce between games often, so they're incredibly helpful if I come back after some time, or if there have been changes since I last played (which is often the case). Clear, descriptive, and up-to-date tooltips are a huge boon to the player.

I would generally distinguish concept-explanatory tooltips (what is MAPI?) from condition-test tooltips (why won't they accept this offer?), and I agree with Brynjar that the latter could be improved. The requirements should be clear and actionable. Text like "[State] is not eligible for mass migration" is neither clear (why is it ineligible?) nor actionable (how do I fix this?).

But the concept-explanatory tooltips are great.
 
Last edited:
  • 10
  • 1
Reactions:
I just wish there was a way to keep smaller states from becoming skeletons of themselves. Currently, smaller states inherently have less arable land, leading to a lower migration attraction, leading to everyone moving to larger states. This can be pretty problematic for places like Canada, where your only source of lead is a small state that tends to send all of its population elsewhere.
 
  • 9
  • 1
Reactions:
This is an improvement but man does it still leave things to be desired. For one thing, why can non-integrated states not receive mass migrations?
It's kinda just to stop mass migrations to colonies and treaty ports. On launch there was a problem with many mass migrations targeting Africa, because France or GB had the Colonial Resettlement law and untaxed colonies with +100% migrant attraction were huge mass migration magnets.

Would that be better solved by finally having a third tier of states for colonies, and not just incorporated vs unincorporated? Probably.
 
  • 6Like
  • 3
  • 1
Reactions:
Would that be better solved by finally having a third tier of states for colonies, and not just incorporated vs unincorporated? Probably.
I don't think this is the way.
What were the real reasons Europeans didn't migrate to Africa en masse?

First of all, they did :) Maybe not in numbers that went to Americas, but still, several million people did resettle to Belgian or Portuguese or French central Africa, even not counting the more suitable English/Dutch settler states in the South or accessible French noir departments in the North of the continent.

Second, the factors that impeded migration were related to the climate/deceases and to the lack of institutions and security familiar to the Europeans. The latter is perfectly representable with the tools currently in the arsenal (e.g. plain SOL increase for incorporated states does that), devs just need to apply them more liberally and possibly increase turmoil penalties to migration attraction. The climate should, ideally, differentiate between peoples "more suitable" or "less suitable" for tropical climates, which can be an additional pain, but the pain doesn't sound major. And anyway, even applying the same "climate" SOL penalty for all peoples, regardless of their heritage, sounds like a more or less acceptable solution.

To be honest, I think that the problem is the lack of migration, not the abundance of it.
But with state-level migration attraction it's hard to fix the imbalances in the system. Regardless of how badly Zulu railroads need English engineers, they can't pay them three times their normal salary, and if they would, the engineers in Midlands wouldn't understand that and move. And poor locals' suffering leads to overall state attraction factor is very low and the engineers will never move to live a much better life.
I actually think profession-level (or even qualification-level) migration attraction is the only way forward. However, it will increase the number of pops slightly and the number of actual migration calculations greatly. I think this is the reason why it isn't implemented yet.
 
  • 2
Reactions:
awesome, really excited for this. Just add FDI now back again and remove the reinvestment cap on Laizze faire and im a happy man :D
getting a little close to the silly glory of beta 1.5.5 again when I filled up California with 15M Han pops and texas with 20M.... That was awesome
 
  • 2
Reactions:
I always appreciate performance enhancing improvements in a game. While pops are a huge factor in the world-building realism of PDX games that employ them, they are also notorious for slowing the late game performance.

I'd also like to see soon some improvement in the migration laws, at the moment the "closed borders" policy preventing movements of pops inside a nation it's a bit unrealistic, especially if serfdom is no longer legal in that polity.
 
  • 3
Reactions:
Maybe a (very) unpopular opinion, but if the number of pops is the problem, why not simplify the pops a bit more?

You could build more statistics around these 'cultural (or religious) communities' and the pops could have a value that shows it's 'affinity' to these communities. Then you could stop splitting pops based on religion and culture and you would have less pops then. You would have Bureacrats in Wales that have a certain affinity with the 'Welsh Community', 'English Community', 'Catholic Community', 'Protestant Community' ... etc and you don't have to track how many 'Protestant Welsh Bureacrats' and 'Sunni Javanese Farmers' there are and how much they earn and what they consume.

We don't split pops on interest group level, so why would we want to split on cultural/religious level? 'Because Vicky 2 did it as well' is not a good answer I think.
I would say we cannot because of discrimination. As discrimination affects wages and therefore needs, wealth, and SOL. In theory would could try to have 'accept / discriminated' attribute instead of culture and religion but then that adds complications when other things could change the status such as: discrimination laws change, migration to a place with a different set of accepted, etc..

Interest group 'membership' does not affect needs, wealth, and SOL, so the separation isn't needed. All the attributes that lead to discrete PoPs (culture, religion, profession, building, state) affect the wage of the PoP.

I am wondering whether you can get realistic results if migration is dependent on market membership....

Example: The Chinese moving to America in the late 19th century to build the railroads. Japanese migration to the West Coast... These things happened. Can this be modelled if the system of migration is more hinged on market membership rather than simply your immigration laws?
Isn't this a case of Mass Migration mechanic and not the Market based migration mechanic?

All six states in New England, Maryland, DC, and Delaware all have less than 30 arable land, but these areas received huge amounts of international immigration historically. Under the current system that will never happen.
Couldn't this be represented by mass migration to New York and then marker migration to those states (except DC as I never seem to be able to Pops to go there)?
 
  • 3Like
Reactions:
Do you tend to look through the in-game concepts like this one often? Did they help you when learning the game? We’d love to hear your thoughts!
Yes! So helpful.

In fact, they're helpful for learning new concepts added with new updates!

An idea:
Track which concepts were added with each release. Then add an optional splash on program load to review recently added in-game concepts.

I haven't played since before 1.5 (no time), so it'd be handy to have a quick overview screen of the (new) concepts directly, in addition to the organic method of learning them via tool-tip in play.
 
  • 2
Reactions:
Remember to integrate your states if you want them to get any mass migrations!
Can certain regions like argentina's new territories and the american west be in a new category of "unincorporated" instead of it being the same as a russian province taken by prussia? I think whether a territory is incorporated by the government that owns it is not the only factor that should be on the table. It makes a ton of sense for people to mass migrate to unincorporated land in the US like homesteading, doesn't it?

And long term, will there be a change in how culture works? Specifically there's this issue to me where people from one region move to another, then become part of the dominant culture, which 50 years later could make them ethnonationalists directly targeting people from that original place. There's some precedent for that but it seems very two dimensional.
 
  • 2
Reactions:
@Alexhesse

What about splitting cultural communities into

- Accepted Cultural Communities
- Marginalized Cultural Communities
- Discriminated Cultural Communities


So for example in the USA in one state you would have Yankee as accepted, Irish and South Italian as Marginalized, and African American as discriminated. The different tiers would fluctuate with benefits/penalties for the POPs belonging to that culture.

On a nation-wide basis, cultures should also be three tiered as opposed to Accepted and Discriminated. Being a North/South German in a French province would have you more of being marginalized than discriminated, with discriminated probably being someone of Antillean, Senegalese, or Maghrebi culture. Likewise, you could even justify having South Italians as marginalized in Northern Italy or Irish and Welsh marginalized in English states.
 
  • 5Like
  • 1
Reactions:

New shiny UX improvements​

I bet you’re thinking “What about the UX improvements you mentioned though? Give them to me!”. Also hello to all of you impatient readers who skipped through the details right to the shiny screenshots and UX changes. As mentioned, with the migration changes we wanted to also make the system a bit more accessible from a UX perspective as development itself showed there was a lot of information that felt way too hard to access and understand given how important it is.

One change I personally am quite a fan of is that we now clearly display if a state can actually receive a mass migration now:
Who’d ever want to go to Rhode Island of all places?
View attachment 1083474

View attachment 1083475

There are same problems as before, information feel way too hard to access and undestand given how important it is.
I see same numbers without any brake-down why those numbers are that or that.
I know that i have to hover over that number, and there hover over another number - but why trying to improve visibility and accessibility of understanding that numbers just don't show this math?
If i ever see this window, i'm there only to hover over that one number anyway. Want to see the actual interesting screen - why are you hiding it?
Can you just reconsider showing numbers hidden under "high" "low" migration attraction in this "main" screen?
Will there by any option to see breakdown of the number of total migrants last week? Breakdown by region of origin and also math behind making this number of weekly migrants compared for migration attraction number would be very useful.
Can there be also shown why this state is eligible/not eligible as a Mass Migration Target?

Thanks in advance, really happy that you are working on migration right now - that is thing turning game into real-feel and alive. Hope for good changes, also in UI subject!
 
  • 2
  • 2
Reactions:
I think they're going for the "relative moves to America and inspires family and friends to do the same" thing. I agree it shouldn't immediately create a community, but I do like the idea that the odds of a culture migrating to a state increase as more of them move there.

Make sense. Anyways, my own thoughts on the matter are quite similar as when reading these concerns I thought, "Why not have some sort of scaling modifier that caps out when a target number is achieved?" Though that might just complicate things and slow the game down more.
 
  • 2
Reactions:
does cultural communitys being required for market migration, mean that you will only get majority culture migrants to colonies? that minorities just won't move to new places unless a mass migration takes them?

Also again, could there please be a consideration for out of market migrations to gold rushes and etc, situations to allow historical chinese/balkan/german/italian minorities to develop following the gold rushes as happened around the world?
 
  • 1Like
Reactions:
Make sense. Anyways, my own thoughts on the matter are quite similar as when reading these concerns I thought, "Why not have some sort of scaling modifier that caps out when a target number is achieved?" Though that might just complicate things and slow the game down more.
If I know anything about Paradox, they're gonna find out that the lag was largely caused by something stupid.

In CK2, it was all the Greeks contemplating castration, while In Stellaris, it was every single pop's political views being refreshed every single day.
 
  • 4Haha
Reactions:
If I know anything about Paradox, they're gonna find out that the lag was largely caused by something stupid.

In CK2, it was all the Greeks contemplating castration, while In Stellaris, it was every single pop's political views being refreshed every single day.

Probably, and it will also probably give us years of amusement too.
 
  • 1Haha
Reactions: