Tech upkeep based on population (Settled Area)

What would you like to see in Freeciv? Do you have a good idea what should be improved or how?
User avatar
Corbeau
Elite
Posts: 907
Joined: Mon Jan 13, 2014 11:13 pm

Tech upkeep based on population (Settled Area)

Postby Corbeau » Thu Feb 22, 2018 12:03 am

Among others, one of the options for tech upkeep is "multiplied with the number of cities".

How difficult would it be to tweak the code so that there are more ruleset options to set this up?

Namely: after calculating base upkeep (based on number of tech and pre-set values), instead of multiplying it with the number of cities, multiply it with:

A * pop + B * city

pop - "Settled Area" from Demographics, a real effective representation of the population size
city - number of cities
A, B - values to be chosen in the ruleset

(With A=0 and B=1 this is the already existing option that uses the number of cities)

Reasoning:
1. Realism
A nation needs to expend resources to maintain the literacy and expertise level of its population. Simply put, it needs to educate plumbers, carpenters, technicians, medics. teachers etc. or else all the knowledge it has gathered throughout history will be lost. And obviously, the more people there are, the more doctors and teachers you need. But also, the more cities there are, the more needs to be invested into infrastructure: maintaining roads, pipelines, communication, post office...

2. Gameplay
This gives enormous flexibility to setting limits to the size of the empire and ways of crossing those limits. Adjusting A can make smallpoxing impossible, while adjusting B can make it possible to have effectively very different games regarding the technological gap between big and small empires.

nef
Veteran
Posts: 138
Joined: Mon Jun 25, 2018 5:01 pm

Re: Tech upkeep based on population (Settled Area)

Postby nef » Mon Nov 12, 2018 11:30 am

A simple solution to this is to make tech upkeep a basic commodity (like F/P/T, G/L/S) so that it can be selected with an output type predicate. One could then make it dependent on almost any city parameter (e.g. per city, per tile worker, per specialist), and could be modified by techs, buildings, era, gov etc.. The big question I would have is the consequences to AI support for ANY changes in areas like this. No issue for MP games, of course which probably makes it fine for Corbeau but not so fine for SP players like me.

Currently the engine does not support a per player rule (that I know of) that would accommodate a base rate so that would have to remain (for now) as server or game.ruleset options.