Emigration

I personally think that factors such as wealth, culture, faith, science, distance, neutral/hostile, happiness, percentage of immigrants, etc. of two given cities as well as between empires should figure in to immigration. Also, immigration should work based on a similar function within empires, in order to kill ICS and make nurturing of large urban centers worthwhile.

Emigration 4 beta already considers wealth, culture, science (as well as production, food and GP points) and works for particular cities not the whole empires, so basicaly internal and external migrations are the same. "Population pump" effect is also observed in the v4.

Emigration 4 alpha thats about to come will also consider distance and current era (less migration in the earlier eras).
 
i made a "cover" for the steam workshop:



..and thought, maybe make a distinct icon for the migration event?
ivory coloured, like on the picture
or just leave the standard ones (green/red citizen ico)

The ivory one - really cool!

\Skodkim
 
This mod is great, but I think it has some issues. For example, I found myself losing citizens rapidly as Polynesia to a City State that was at least 30 tiles away across an ocean in 3000 BC...this is kind of a bummer. I'm looking to change Emigration rules so that there is a max distance that citizens can emigrate (starting at 0, i.e. borders are touching) and then having certain techs increase that max distance (i.e. flight increases to 30) and other variables as well. How can I go about changing these things?
 
This mod is great, but I think it has some issues. For example, I found myself losing citizens rapidly as Polynesia to a City State that was at least 30 tiles away across an ocean in 3000 BC...this is kind of a bummer. I'm looking to change Emigration rules so that there is a max distance that citizens can emigrate (starting at 0, i.e. borders are touching) and then having certain techs increase that max distance (i.e. flight increases to 30) and other variables as well. How can I go about changing these things?

thanks for you feedback!

the ancient migration problem will be solved in the v4 alpha on which i have resumed to work recently. migrations will start to occur from the classical era, becoming more frequent with time and gaining 100% rate in the industrial era.

max distanse is an interesting idea, i'll consider it.
 
thanks for you feedback!

the ancient migration problem will be solved in the v4 alpha on which i have resumed to work recently. migrations will start to occur from the classical era, becoming more frequent with time and gaining 100% rate in the industrial era.

max distanse is an interesting idea, i'll consider it.


I guess you mean the v5 alpha?

I've been looking at the code, and I think I might play around with the idea of mix distance...I'll post up here if I come up with anything possibly worthwhile.
 
I guess you mean the v5 alpha?

I've been looking at the code, and I think I might play around with the idea of mix distance...I'll post up here if I come up with anything possibly worthwhile.

v4 alpha
v4 thats available now is beta
the code was changed since beta to incorporate distance factor into the GetDestinationCity function (distant cities have less chanse to be picked as a destination) and number of bugs were fixed as well. in the GetDestinationCity function a city-specific emigration rating list is created, where the ratings for the possible cities are being divided by log5(distance) from that subject city (the new statue of liberty's effect is to remove the distance penalty for the foreign immigration). i can include maxdistance check there as well. not certain what maxdistances should be though. greeks were moving across mediterranean in the classical era and from the renaissance era people were moving as far as to america.
maybe 20 (classical), 40 (medieval), 80 (renaissance), 160 (industrial)
 
v4 alpha
v4 thats available now is beta
the code was changed since beta to incorporate distance factor into the GetDestinationCity function (distant cities have less chanse to be picked as a destination) and number of bugs were fixed as well. in the GetDestinationCity function a city-specific emigration rating list is created, where the ratings for the possible cities are being divided by log5(distance) from that subject city (the new statue of liberty's effect is to remove the distance penalty for the foreign immigration). i can include maxdistance check there as well. not certain what maxdistances should be though. greeks were moving across mediterranean in the classical era and from the renaissance era people were moving as far as to america.
maybe 20 (classical), 40 (medieval), 80 (renaissance), 160 (industrial)

I thought beta came after alpha. Anyway, that doesn't matter.

Those numbers seem OK. I guess we can always tweak them. I would say that eventually the max distance should just be removed (i.e. at industrial/modern) because I only really think that max distance is useful early on, when transportation just wasn't that well developed.
 
I thought beta came after alpha. Anyway, that doesn't matter.
hmm.. you right :D
then v4 release

Those numbers seem OK. I guess we can always tweak them. I would say that eventually the max distance should just be removed (i.e. at industrial/modern) because I only really think that max distance is useful early on, when transportation just wasn't that well developed.
ok then i keep these
 
I'm going to try it, thanks for the update.

BTW, can you make it so that I can turn off debug mode? The debug takes up a lot of space in lua.log.

you can use any text editor
"replace all" command for the Emigration.lua: replace "print" with "--print"
 
I think it'd be useful to make a small function like

function eprint(text)

if b_verbose then
print(text)
else
return
end
return
end

and then have a global variable b_verbose that you can change to true or false accordingly.
 
Would you mind if I use an adapted version as UA for a new civ? It would be perfect for the Nri kingdom:

"The kingdom was a safe haven for all those who had been rejected in their communities and also a place where slaves were set free from their bondage."
 
I think it'd be useful to make a small function like

function eprint(text)

if b_verbose then
print(text)
else
return
end
return
end

and then have a global variable b_verbose that you can change to true or false accordingly.
you are right its quite useful
but i'll comment out all the print calls before the release anyway
in terms of performance its better to do nothing than to call a function that does nothing :)

Would you mind if I use an adapted version as UA for a new civ? It would be perfect for the Nri kingdom:

"The kingdom was a safe haven for all those who had been rejected in their communities and also a place where slaves were set free from their bondage."
ofc you can use it
Nri kingdom - very interesting! just read about it, never heared of it before.
 
wouldn't it be better to move food instead of actually population? that way you can't push big cities by making smaller cities unhappy. but it would be getting hard if a city with not enough food loses too much such that its population would decrease...
 
wouldn't it be better to move food instead of actually population? that way you can't push big cities by making smaller cities unhappy. but it would be getting hard if a city with not enough food loses too much such that its population would decrease...
happiness is global so it isnt possible to make small cities unhappy
its possible to grow them without developing their infrastructure so their wealth would be low and their citizens start to emigrate, but its not guaranteed that they'll move to your big cities, not your rival's ones.

i thought of moving food instead of citizens and decided that it would be boring.. and strange
 
Top Bottom