News Liste Victoria 3

Dev Diary #105 - Migration in 1.6
Victoria 3
15.02.24 15:00 Community Announcements


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 [strike]conscripted[/strike] 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!


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.


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?


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!


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:
[olist]
  • 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
  • Pick one of the eligible countries above as the origin for the mass migration
  • 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.
  • 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
  • Go through the eligible states in that country and pick the one with the highest migration attraction (after adding a small random factor)
  • [/olist]

    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.


    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 [strike]gamers[/strike] economists out there, in this case line go down is good!


    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?




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



    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..


    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!


    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


    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?


    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.


    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):


    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!
    Logo for Victoria 3
    Release:25.10.2022 Genre: Simulation Entwickler: Paradox Interactive Vertrieb: Paradox Interactive Engine:keine Infos Kopierschutz:keine Infos Franchise:keine Infos
    Einzelspieler Mehrspieler Koop

    Aktuelle Steam News
    Neue Steam News in der ePrison Datenbank

    Victoria 3 - Dev Diary #137 - The 3D Art of Pivot of Empire
    Victoria 3
    14.11.24 15:00 Community Announcements
    Victoria 3 - Dev Diary #136 - Pivot of Empire Narrative Content
    Victoria 3
    07.11.24 15:35 Community Announcements
    Victoria 3 - Dev Diary #135 - The 2D Art of Pivot of Empire
    Victoria 3
    31.10.24 15:00 Community Announcements
    Halloween Update 1.7.7 is now LIVE! - Not for Problem Reports!
    Victoria 3
    31.10.24 09:03 Community Announcements
    Victoria 3 - Dev Diary #134 - How I Learned to Stop Worrying and Love the Map
    Victoria 3
    25.10.24 14:44 Community Announcements
    Victoria 3 - Dev Diary #133 - British Indian Caste System and Social Hierarchies
    Victoria 3
    24.10.24 14:00 Community Announcements
    Victoria 3 - Dev Diary #132 - Pivot of Empire
    Victoria 3
    22.10.24 14:04 Community Announcements
    Victoria 3 | A look back through free updates!
    Victoria 3
    21.10.24 14:00 Community Announcements
    Dev Diary #131 - Famines, Starvation, Harvest Conditions
    Victoria 3
    10.10.24 14:00 Community Announcements
    Dev Diary #130 - Political Movement Radicalism and Civil Wars
    Victoria 3
    03.10.24 14:00 Community Announcements
    Dev Diary #129 - Discrimination Rework
    Victoria 3
    26.09.24 14:00 Community Announcements
    Dev Diary #128 - Political Movement Rework
    Victoria 3
    19.09.24 14:00 Community Announcements
    Victoria 3 Sale until the 18th of September!
    Victoria 3
    13.09.24 18:02 Community Announcements
    Dev Diary #127 - Bulk Nationalization and Companies Building Ownership
    Victoria 3
    05.09.24 14:00 Community Announcements
    Dev Diary #126 - Update 1.8 Overview
    Victoria 3
    29.08.24 14:00 Community Announcements
    Hotfix 1.7.6 is now LIVE! - Not for Problem Reports!
    Victoria 3
    28.08.24 12:03 Community Announcements
    Dev Diary #125 - Hot Bug Summer
    Victoria 3
    15.08.24 14:01 Community Announcements
    Hotfix 1.7.5 is now LIVE! - Not for Problem Reports!
    Victoria 3
    12.07.24 08:49 Community Announcements
    Hotfix 1.7.4 is now LIVE! - Not for Problem Reports!
    Victoria 3
    10.07.24 12:04 Community Announcements
    Dev Diary #124 - What’s next after 1.7
    Victoria 3
    04.07.24 14:00 Community Announcements
    Hotfix 1.7.3 is now LIVE! - Not for Problem Reports!
    Victoria 3
    04.07.24 13:36 Community Announcements
    Hotfix 1.7.2 is now LIVE! - Not for Problem Reports!
    Victoria 3
    03.07.24 12:02 Community Announcements
    Paradox Steam Summer Sale!
    Victoria 3
    27.06.24 17:05 Community Announcements
    Dev Diary #123 - Sphere of Influence Post-Release Thoughts
    Victoria 3
    27.06.24 14:00 Community Announcements
    Hotfix 1.7.1 is now LIVE! - Not for Problem Reports!
    Victoria 3
    27.06.24 12:03 Community Announcements
    The Victoria 3 Sale Starts Now!
    Victoria 3
    24.06.24 19:17 Community Announcements
    Wealth and War Bundle available for a limited time!
    Victoria 3
    24.06.24 14:05 Community Announcements
    Dev Diary #122 - Sphere of Influence/Update 1.7 Changelog Part 2
    Victoria 3
    20.06.24 14:01 Community Announcements
    Dev Diary #122 - Sphere of Influence/Update 1.7 Changelog Part 1
    Victoria 3
    20.06.24 14:01 Community Announcements
    Dev Diary #121 - Maps Maps Maps
    Victoria 3
    13.06.24 14:01 Community Announcements
    Dev Diary #120 - Modding Features in 1.7
    Victoria 3
    06.06.24 14:01 Community Announcements
    Dev Diary #119 - Smörgåsbord of Changes in 1.7
    Victoria 3
    30.05.24 14:00 Community Announcements
    Dev Diary #118 - Power Blocs Round Two
    Victoria 3
    23.05.24 14:01 Community Announcements
    Dev Diary #117 - The UX of Sphere of Influence
    Victoria 3
    16.05.24 14:02 Community Announcements
    Steam Publisher Week Sale!
    Victoria 3
    15.05.24 11:21 Community Announcements
    Dev Diary #116 - The Art of Sphere of Influence
    Victoria 3
    09.05.24 14:01 Community Announcements
    Dev Diary #115 - Graveyard of Empires
    Victoria 3
    02.05.24 14:00 Community Announcements
    Dev Diary #114 - The Great Game
    Victoria 3
    25.04.24 14:00 Community Announcements
    Dev Diary #113 - Diplomatic Catalysts
    Victoria 3
    18.04.24 14:00 Community Announcements
    Sphere of Influence / Update 1.7: New Release Date
    Victoria 3
    15.04.24 16:00 Community Announcements
    Dev Diary #112 - Political Lobbies
    Victoria 3
    11.04.24 14:00 Community Announcements
    Dev Diary #111 - Subject Improvements
    Victoria 3
    04.04.24 14:02 Community Announcements
    Dev Diary #110 - Building Ownership & Foreign Investment
    Victoria 3
    28.03.24 15:01 Community Announcements
    Dev Diary #109 - Power Blocs
    Victoria 3
    21.03.24 15:02 Community Announcements
    The Paradox Spring Sale 2024 is now live!
    Victoria 3
    14.03.24 17:08 Community Announcements
    Dev Diary #108 - Sphere of Influence and 1.7 Overview
    Victoria 3
    14.03.24 15:38 Community Announcements
    Hotfix 1.6.2 is now LIVE! - Not for Problem Reports!
    Victoria 3
    14.03.24 13:05 Community Announcements
    Dev Diary #107 - 1.6 Post Release Update, Sphere of Influence and more on Train
    Victoria 3
    07.03.24 15:04 Community Announcements
    Hotfix 1.6.1 is now LIVE! - Not for Problem Reports!
    Victoria 3
    07.03.24 09:12 Community Announcements
    Sphere of Influence available to pre-order and Free Train Bonus Pack release!
    Victoria 3
    06.03.24 17:01 Community Announcements
    Dev Diary #105 - Migration in 1.6
    Victoria 3
    15.02.24 15:00 Community Announcements
    Dev Diary #104 - Quality of Life improvements in 1.6
    Victoria 3
    01.02.24 15:00 Community Announcements
    Hotfix 1.5.13 is now LIVE!
    Victoria 3
    29.01.24 14:03 Community Announcements
    Dev Diary #103 - 1.6 Teaser
    Victoria 3
    18.01.24 15:01 Community Announcements
    Victoria 3 and Paradox Interactive Winter Sale!
    Victoria 3
    22.12.23 14:02 Community Announcements
    Hotfix 1.5.12 is now LIVE!
    Victoria 3
    14.12.23 13:08 Community Announcements
    Hotfix 1.5.11 is now LIVE!
    Victoria 3
    13.12.23 13:05 Community Announcements
    Dev Diary #102 - What’s next after 1.5
    Victoria 3
    07.12.23 15:02 Community Announcements
    Victoria 3: Hotfix 1.5.10 is now LIVE!
    Victoria 3
    29.11.23 09:05 Community Announcements
    Nominate Victoria 3 for Labor of Love!
    Victoria 3
    21.11.23 19:01 Community Announcements
    Victoria 3 is on Sale!
    Victoria 3
    21.11.23 18:05 Community Announcements
    Victoria 3: Hotfix 1.5.9 is now LIVE!
    Victoria 3
    17.11.23 15:59 Community Announcements
    New Player? Start here!
    Victoria 3
    17.11.23 09:07 Community Announcements
    Victoria 3 play for free!
    Victoria 3
    16.11.23 18:04 Community Announcements
    Victoria 3: Hotfix 1.5.8 is now LIVE!
    Victoria 3
    16.11.23 15:37 Community Announcements
    Dev Diary #101 - 1.5 Post-release Update
    Victoria 3
    16.11.23 15:01 Community Announcements
    Update 1.5 and Colossus of the South now available!
    Victoria 3
    14.11.23 15:09 Community Announcements
    Dev Diary #100 - Anniversary Update Changelog
    Victoria 3
    09.11.23 15:01 Community Announcements