• 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.
Status
Not open for further replies.

unmerged(164239)

Sergeant
1 Badges
Sep 8, 2009
97
0
  • Victoria 2: A House Divided
Hi, how do you like Victoria 2? I have somewhere read that V2 has potential to be best paradox game. That's exactly my view.

Introduction
My biggest issue with v2 is its economical model. I'm a PhD student in Economics. I've analysed current model and its issue. Pops are not spending their money. Than comes lower demand than supply for every good. Than factory not selling and pops not making money. Pops needs compared to production is too small with high tech and vice versa with low tech. This ratio should be something like 1:1 regardless of tech or year. When you are high tech country, you have to much money, so have your pops and you can't sell your surplus production on the market. If you have low tech country you have no money so your pops. It is like one or zero not anything between.

Also I've Mgr (equivalent of MSc) in IT. I've some ideas how to fix it. I've tried to mod them into the game. Check pops cash_reserves and rise needs through poor_life_needs etc. But current modding tools are too weak for this. Also if these ideas make it into vanila, everyone can benefit. Here is my model and something like source code for it.

New model - Real economy
I could make better one, but this is enough for V2 needs. And it is huge improvement compared to current one.

Victoria benefits
+ simple model, configurable by parameters
+ working economy for small, big, low tech, high tech country, any year
+ fixes problems of current economical model
+ primary purpose of model is better gameplay
+ model's characteristics are close to real word
+ player doesn't have to be economics expert
+ no good characteristic of old model is lost
+ no impact on game speed
+ easy to implement (actually I've already did it for PI)


1. Making pops spend their money (modeling consumption function)
Pops' cash reserves shouldn't go to infinite (maybe it should, but by logarithmic function not arithmetic one). It should be: the bigger cash reserves the bigger spending. Some pops like farmers would keep smaller reserves other like capitalists bigger.

variables (skip it!):
Code:
 good_need   # from popfiles modified by pop size, events etc. (current model buying)
 cash   # how much money they have
 cash_daily_needs   # how much money they need every day for buy all goods they need (it is already calculated)
 reserves_days   # how many days can pop be without income and buy all goods
 minimal_reserves_days   # when pop starts spending more money (different for all pop types, saved in popfiles)
 surplus_reserves_days_impact   # rate of spending increases (different for all pop types, saved in popfiles, could be also different for needs # everyday, life, luxury)
 (something like [COLOR="Cyan"]marginal propensity to consume[/COLOR])
 goods_need_modifier   # modifier of original values
 final_good_need   # result of function


function (skip it!):
Code:
 reserves_days = cash / cash_daily_needs
 goods_need_modifier = 1
 if (reserves_days > minimal_reserves_days) {
   goods_need_modifier = 1 + (reserves_days - minimal_reserves_days) * surplus_reserves_days_impact
 }
 for (goods) {
    final_good_need = goods_need_modifier * good_need
 }

example:
Pop has 100 money. cash = 100
They need 2 money every day for buy all goods. cash_daily_needs = 2
reserves_days = 200/2 = 50

They are farmers.
farmers.txt minimal_reserves_days = 10 surplus_reserves_days_impact = 0.002 # can be modded

goods_need_modifier = 1 + (50 - 10) *0.002 = 1.08
They would buy +8% goods

grain = 10 * 1.08 = 10.8
cattle = 5 * 1.08 = 5.4
They need 10 grain and 5 cattle but they will buy 10.8 grain and 5.4 cattle.

IMPLEMENTATION NOTE: State paid pop's cash reserves and their potential spending increases shouldn't influence state spending (loop danger - pops spend more -> higher maintenance -> bigger wages -> pops spend more).


2. Influencing pops demands by goods prices (modeling demand curve and marginal utility)
If some good is too expense its demand is dropping and vice versa. So pop is making 50 money and buy 10 grain for 2 each and 6 cattle for 5 each. If price of cattle rise to 10. Pop shouldn't buy 10g + 6c. In real world it would be something like 15g + 1c. But this would by harder to implement (not much, 10-30 code lines). Easy to implement would be to scale demand by price. So pop would buy 10 grain and something between 2 cattle (same spending - unitarily elastic) and 6 cattle (same count - perfectly inelastic).

variables (skip it!):
Code:
 original_good_need   # from popfiles
 good_price   # base price of good - goods.txt (not price from yesterday)
 market_good_price   # current in game price on the global market
 price_change_impact   # impact of price changes, between 0 (same count - [COLOR="cyan"]perfectly inelastic[/COLOR]) and 1 (same spending - [COLOR="Cyan"]unitarily elastic[/COLOR]) (saved in defines.lua, could be also different for needs   # everyday, life, luxury)
([COLOR="cyan"]price elasticity[/COLOR] with opposite sign)
 base_good_need   # modified popfiles value

function (skip it!):
Code:
 for (pop_types) { # it is global for pop types, function is started only once a day
   for (good_needed) {
     base_good_need = original_good_need / (1 + (market_good_price - good_price) / good_price * price_change_impact)
   }
 }

example:
Pop needs 5 steel.
Starting price of steel is 10. Pop would spend 50 to get needed steel (with price 10). But current price of steel on the global market is 20. Impact of price change is 0.5.

base_good_need = 5 / (1 + (20 - 10) / 10 * 0.5) = 5 / 1.5 = 3.33

Pop will need 3.33 of steel (instead of 5) and will spend 66 (it would be 100 for original 5 with price of 20).

3. Setting goods prices on global market by demand and supply (NEW)
I has been thinking that this is actually working in vanila. But marshman and shikaka opened my eyes.
If demand is bigger then supply, price should rise and vice versa.

My observing:
1.Demand in market is "virtual demand", what would pops buy if the have money. This is definitely wrong. I think it would be changed in some patch. Demand should be based only on pops which can afford good.
2.Price almost doesn't change (at last down). I think this is on purpose by PI. If they allow real price changes, their current economics system would crash in no time.

How to do it right:
We know supply. Here is no problem in vanila now. We just need to get real demand. When pops buy some goods, we add it demand. When pop wants to buy some good and that isn't on the market we add it to demand. We add states buying. We have real demand now. We can calculate price for next day.

price change function (skip it!):
Code:
price = old_price * (1 + 2 * (demand - supply) / (demand + supply) * price_change_speed)
price_change_speed - set speed of dropping and raising of price (between 0 - no changes and 1 - fast, I guess optimum would be something like 0.02)

example 1:
Good is steel. Its demand is 25000 and supply is 15000. Price is 5.
price_change_speed = 0.1 (0.1 - this would be fast)
price = 5 * (1 + 2 * 10000/40000 * 0.1) = 5 * 1.05 = 5.25
Price of steel for next day would be 5.25.

example 2:
Good is grain. Its demand is 15000 and supply is 25000. Price is 5.
price_change_speed = 0.01 (0.01 - this would be slow)
price = 5 * (1 + 2 * (-10000)/40000 * 0.01) = 5 * 0.995 = 4.975
Price of grain for next day would be 4.975.

Conclusion
It's complex and simple. I have speend too much time thinking about this. So I would be happy for any feedback from you.

Regards to Naselus, way2co0l, KonradRichtmark, Valentin the II and others from "Reworked POP needs to stimulate demand" team. Also Brownbeard, he is working on BROWNBEARDS pop overhaul. You are doing great job.
Have fun! D.
 
Last edited:
It looks like a good idea, but anytime someone suggests calculations like this someone else comes in and says it will kill performance in the late game.

I agree that this seems like a good way to handle the under consumption problems in the game though, and hopefully with a system like this in place they could tone down the craftsmen base needs.
 
These are some good ideas. Nice to see elastic and inelastic demands taken into consideration. I hope Paradox can get the economy fixed in an elegant way without kludging it too badly. I am sure that in 1 or 2 patches it will be vastly better, but it may only be so through brute force methods which are not realistic and may lead to future problems.
 
AFAIK the lua's allow for user made variables but I'm that familiar on exactly how you go about it.

I agree and it seems to me the RGO's (aristocrats and labors) are the most wealthy in the game simply because they generate free resources without much cost.

Even if the market is flooded with a good, they still make good money because the aristocrats and laborers needs are relatively low compared to their incomes.
 
Dishonor, try contacting PI about your ideas on the economics, maybe they will consider testing the equations in their current system.
 
well the tweaking done so far by the aforementioned gentlemen works really well in my current game. should probably move this to the mod forum for more qualified discussion ;o
 
The point about people not spending doesn't truly break the game - it happens all of the time in the real world (like right now, for example). As long as that money keep piling into the national bank, someone (right now, a government) will borrow and spend it for them, which isn't that big of a problem.
 
There are already constant recalculations of how much money POPs are spending and so on. This sounds like a few extra lines added on there. It's straightforward arithmetic with no loops; I don't see why this would be a performance problem. It's not a massive AI change.

It's also quite necessary. I spent a lot of time today trying to figure out how to work out my POP needs so I could continue playing the game without either starving the game of demand or starving my craftsmen -and do it without tweaking my poptypes constantly (which feels like cheating).

Fine control of POP needs that are moddable would definitely enhance the game as well, I have a lot of faith in the mod community even though I don't play mods much myself.
 
There are already constant recalculations of how much money POPs are spending and so on. This sounds like a few extra lines added on there.

But just a few extra statements would be double/triple the calculations needed, which I think is pretty significant given how much the game slows down as POPs increase after the first few decades.
 
Thanks for support everyone.

AFAIK the lua's allow for user made variables but I'm that familiar on exactly how you go about it.

That would be nice, but this functions aren't in the lua files.

Dishonor, try contacting PI about your ideas on the economics, maybe they will consider testing the equations in their current system.

You are really a positive person. I don't think that it is possible.

But just a few extra statements would be double/triple the calculations needed, which I think is pretty significant given how much the game slows down as POPs increase after the first few decades.

I understand. I'm playing on old notebook!

I can say you are referring to part 1 (which would be started for every pop), part 2 would be started only once globally. I've wrote "no impact on game speed". Not because of promoting my idea but because I believe so. I have estimated about +5-10% max.

I can be wrong. I know it. We can only guess without trying it (Which I've done with event for every pops something like 5x complicated code. Event fired immediately. There are many more thinks that are computing for every pops like promoting, demoting, births, emigrating, militancy, consciousness and a lot of staff we don't know about.). But lets say your estimation is right +100-200%. What about updating goods_need_modifier every 10 days? That would be +10-20% (and +0.5-1% for mine).

It can be done without slowing performance. What do you think?

BONUS - Does anyone noticed that "cappitalist borrowing from bank" feature isn't in the game?

And why?
Pops don't spend their money -> they save them in the bank -> to much money in the bank -> capitalists can build max level railroad and full state of factories in one year (that would be stupid)

If part 1 would be in game, there wouldn't be so much money in the bank. This feature can be reintroduce.
 
Thanks for support everyone.

BONUS - Does anyone noticed that "cappitalist borrowing from bank" feature isn't in the game?[/SIZE]
And why?
Pops don't spend their money -> they save them in the bank -> to much money in the bank -> capitalists can build max level railroad and full state of factories in one year (that would be stupid)

If part 1 would be in game, there wouldn't be so much money in the bank. This feature can be reintroduce.

what if the player could manually lend money to specific capitalists, coming not from the bank by government funds. so it was expensive so not easy to do, but then you could give money to new capitalists in countries without factories. without having to worry about wealthy bank problems
 
i havent thought that something like this is possible without too much cpu usage.

like it
 
We have an educated fellow here :)

Good ideas. I also have degree in economics, that's why I still wait for the next patch and/or mods to see if they fix the current broken economy model. Personally I also see problem in the factories model, for example they can't upgrade/downgrade, convert to another production. But I already mentioned this in another thread.
 
@Dishonour

Finally somebody that knows his stuff. They could have used you during the dev cycle. You should see about joining a mod team. My personal recommendation is the Victoria Improvement Project (VIP). Unless I'm mistaken, OHGamer is the bigwig there, drop him a line.
 
Pops don't spend their money -> they save them in the bank -> to much money in the bank -> capitalists can build max level railroad and full state of factories in one year (that would be stupid)

It might be stupid gameplaywise, but it would certainly be realistic. When investing in new infrastructure/production in the real world, starting with old technology and then scrapping every "level" to build the next level of technology would be stupid. :)
 
Good ideas indeed !

It would make my day / week / month if they listened to you, or us economists. I too have a degree in economics ;)

I was very stoked on hearing the potentials of the current economic system, e.g. with the realistic flowing mony system and autopromotion of pops. But disappointed upon the realization that demand was static, which makes it impossible to link up demand / supply in any realistic way later in the game -> huge productivity increases whilst static demand causing overproduction and infinite saving..
 
First, thanks for putting on equation what I've trying to say in other threads. To much money sitting on banks and savings. Second, for capitalists to use that money whould be realistic and if you add a feature allowing people to take money from the bank, it would solve the problem of instant industrialization. If you take the progressive spenditure model you describe above and add credit taking, it would add a use for the money sitting on banks.
2. Projects should be more expensive. 1250$ for a factory, in front of 2mil$ sitting on banks and/or national funds is too cheap. There should also be a limit to how much a POP can take in debt from banks, so the money just doesn't disapeared.
 
Status
Not open for further replies.