Mod idea: farm to cottage growth

Colon

King
Joined
Sep 25, 2001
Messages
870
It has always somewhat ticked me off that surrounding your cities with cottages (that would ultimately develop into towns) basically meant choosing for the smaller city/country population. You've got an urbanised area, if anything that should mean more people and certainly not fewer. I also get a bit annoyed at constantly having to decide between building one instead of the other. I've thought about removing cottages from the game altogether, but instead I'm trying out just letting farm develop into cottages. They would retain the food bonus of farms, but can no longer be build directly. This should boost economic output quite a lot, so I'm also extending upgrade times. Ideally, you'd only see a map full of towns by the end of the 20th century.

One thing I would like to do but don't know how is to prevent cottages growing on bonus tiles (rice, wheath, corn), to prevent uberproductive tiles and because leaving bonus tiles as farms would be more visually pleasing. Does anyone know how I can do that?

2 downsides to these changes I'm foreseeing:
- The city specialisation strategy gets neutered, since you no longer have to choose between GP or commerce, and specialist production cities may be too weak. I rather somehow keep the benefits of city specialisation while making sure cottages produce as much food as farms, but that's like squaring a circle.
- Extending growth times for the cottage-to-town chain and disallowing direct construction of cottages can make wars economically (even more) devasting to the losing side, to the extend it will never really recover. A solution might be to making pillaging harder somehow.

Thoughts?
 
Last edited:
At first glance, this change seems to remove an interesting and important choice from the game. Improvement choice and city management are, IMO, one of the most interesting parts of Civ4. Planning the one or two farms your city might need to support more cottages/mines/specialists is really satisfying.

I also think this would change the game more then you might think! Food is king and having every city just be completely surrounded by farm/cottages would shoot economic output through the roof. On the other hand, building cottages is vital as a way to obtain early commerce if you don't start near gold/silver/gems/seafood. Having long growth of farms into cottages would make these kinds of low commerce starts completely unviable.

In Civ4 the happy cap plays more of a role in limiting city size than total food. And with a switch to state property and/or discovering Biology food is barely limiting at all. The limitation disappears altogether when running Sushi Co.

There are a lot of cool things though that can be done with improvements through modding though. Generally I tend to think in terms of buffing the weaker improvements/nerfing cottages. In vanilla BTS it's generally correct to build a cottage on a given tile most of the time. In comparison, lumbermills are pretty useless. workshops and watermills, while strong in the late game, aren't usually worth building until chemistry and electricity respectively. And windmills are niche at best.

One thing I would like to do but don't know how is to prevent cottages growing on bonus tiles (rice, wheat, corn), to prevent uberproductive tiles and because leaving bonus tiles as farms would be more visually pleasing. Does anyone know how I can do that?

This should be pretty easy and you can do it using only XML. Just make another improvement which can only be placed on cereal resources that is identical to a BTS farm in art and mechanics but doesn't grow like you're planned farm/cottages do. Either keep the name farm or rename it to something like agricultural center or maybe farmland. Have farm/cottages not provide additional bonuses when built on cereals (though farm/cottages might be so powerful they get built on corn/rice/wheat anyway). Within Civ4ImprovementInfos the XML tag you're looking for is <BonusTypeStructs> to control whether an improvement is "built on" a resource.
 
I realise that just giving cottages the food bonuses of farms would massively boost economic output. That's why I'd only allow farms to develop after a significant periode. I've currently set the <iUpgradeTime> to 120, which implies it takes a quarter of the game time before the first cottages could possibly appear. I'd additionally increase the upgrade periodes for the cottage-town chain. Alternatively, I could cap maximum levels depending on technology (maybe towns could only appear with a modern tech like refrigeration). Towns should not be as omnipresent as they tend to be in vanilla.
Additionally, I could change/nerf cottage bonuses that come with civics. And for the early game I could give farms a commerce bonus with slavery.

It would remove an interesting dynamic from the game, but conceptually it's never sat right with me that you'd weigh up farms and cottages (ie urbanisation) as a matter of economic development. Historically, urbanisation is economically superior, period (only the Khmer Rouge thought otherwise). In my eyes, the only question should be on how to foster urbanisation in the game.

I also think it'd make the AI more capable if it becomes just a straightforward matter of constructing farms when possible. In so far it carries out city specialisation (not sure if it does) it's not as good in it as the human.
 
Last edited:
Urbanization is not and has newer been economically superior. Not even today. Just weigh up the surface area of farmland we use vs that which is urbanized. Food production is still a very resource and land intensive thing. And up until very recently (basically the mid 20th century post WW2) it has been the primary occupation of most humans and the primary branch of our economies.
 
How feasible would it be to mod it in such a way to make growth a probable occurence? Eg: a 1% chance of growth every turn a tile is worked.
 
Not easy. That would either take DLL work or a python function. And I don't like the python idea because you wouldn't get the cool stuff like tooltips and AI integration.
 
I figure that instead of automatic growth I might instead let workers build each development stage directly, with the requirement of a farm first. To that end I tried adding the following code to <Type>IMPROVEMENT_COTTAGE</Type>

Code:
<FeatureMakesValids>
           <FeatureMakesValid>
                   <FeatureType>IMPROVEMENT_FARM</FeatureType>             
                   <bMakesValid>1</bMakesValid>
               </FeatureMakesValid>         
 </FeatureMakesValids>

However, I see no effect and workers can still build cottages without there first being a farm.

Would it be possible to build improvements on top of eachother, the way you can build them on top of roads?
 
Unfortunately FeatureMakesValids won't do what you need here. Features are things like Jungles, Forests, and Oases while cottages are in the separate category of improvements. I don't believe there's an XML only way to make building an improvement dependent on another improvement already being present in the tile.

You could try messing with Civ4RouteInfos to see if that helps you. Here's a thread on making routes produce yields. But I've never really used that XML file myself so can't tell you if it'll accomplish something close to what you want.

You might look at Civ4BuildInfos (IIRC located in the warlords section of your install) to see if there's anything that helps you there. The XML there affects worker build actions and you can choose tech pre-requisites for building things along with other useful tags.
 
Last edited:
I agree that Farms are superior to Cottages in Civ4 - or at least in RoM-AND.
In my modmod I tried this: +1 specialist per Cottage in city vicinity but that's too powerful, so I removed it sometime later.

What would be a cool thing is a code that counts Cottage population (Cottage 1, Hamlet 2, Village 3 and Town 4). For every 4 points of Cottage population you receive 1 free specialist.
 
What about workshops? I almost newer build those. Would buffing farms and cottages this way not completely ruin them?
 
Last edited:
I agree that Farms are superior to Cottages in Civ4 - or at least in RoM-AND.
In my modmod I tried this: +1 specialist per Cottage in city vicinity but that's too powerful, so I removed it sometime later.
Rather then buffing farms I think it makes sense to rework specialists. One farm = 1/2 extra specialist in commerce or about 1.5 science. 3 Science with Rep. This is a lot worse than a cottage which already generates 2 flexible commerce after 10 turns and only grows bigger from there. Topping out at 5 commerce (and technically +1 hammer with US but US is not a very good civic and shouldn't be run unless the UN forces it on you). Specialists are also always -2 food which slows growth significantly versus cottages which are usually food neutral. Specialists also generate GPs of course, which are absolutely vital to obtaining good Tech Trades and grabbing the military advantage needed to win the game via bulbing. In addition to their use in building academies, shrines etc. But usually GPs are only produced in one or two cities and specialists outside of these cities are useless. A small buff to specialists, 4 science from scientists, 4 GPT from merchants etc. might help.

A bigger fix might be to change the way GPs are generated so that specialists outside of major cities could still produce a GP occasionally or their GP points get added to a global pool. Something to make the GP points of specialists outside GP cities matter.

EDIT: I misread Zeta Nexus’s post. He’s suggesting that farms are stronger than cottages(!). While I think farms not on resources (obviously on resources they are extremely powerful) are useful I definitely end up building far more cottages than farms.

What about workshops? I almost newer build those. Would buffing farms and cottages this way not completely ruin them?

Once you can switch to State Property, workshops (with Caste System if possible) are very strong and I often build them on top of villages and even towns if not going for a Space Race victory (and frequently even then). Hammers are just a very flexible yield type. Workshops are reasonable improvements in general as long as you have at least two of Guilds, Chemistry, Caste System and State Property. The issue with workshops is they're completely useless if you don't have at least two of these buffs which isn't until a point in the game where the outcome has often been decided. My natural fix has been to start workshops at 2 hammers and remove the hammer bonus from Guilds which would make Workshops useful from the moment you have Caste System, which should liven up the improvement game in the medieval era.

To refocus on @Colon's question though, one suggestion to achieve the affect he's looking for might be to have cottages generate food and provide resource bonuses the way farms and pastures do now. Higher level cottages = more food = more people, more urbanization = more Specialists. Commerce (and with reworked specialists) hammers could be largely dependent on city size in mid-late game whereas in the early game when the happy cap was low, raw tile yields from mines/quarries/plantations etc. would be more important.

This would of course be a very a dramatic change to the game but would be interesting. If Caste System was changed so that specialist slots were actually dependent on buildings, the city specialization aspect could also be preserved. Although city location would matter significantly less, I imagine this is a solvable problem with some creative design.

I also would like to say that I think the Civ4 improvement system as is is really good! Even if I would probably buff lumbermills and windmills and make some small changes to the other improvements. Like I said before, one of the best parts of the game.
 
Last edited:
How do you disallow workers from building a cottage, so that I can only result from growth (the way hamlets etc are)?
 
Deleting the BUILD_COTTAGE entry from Civ4BuildInfos should do it
 
Yes, I agree with a lot of your thoughts. I considered removing cottages too, but ultimately decided that improvement variety makes for a more interesting game.

My main beef with CIV is how unnecessary farms are. So I went a whole different direction. Citizens consume 3 food. Farms get +1 food at chemistry and combustion. Workshops have no food penalty and are replaced by factories with steam power tech. Hamlets can be built with railroad tech. Of course, I made associated changes with civics too and a lot of other balance changes to buildings and coastal tiles to mitigate the food deficit.

If you do create a new farm improvement I think you will have to tinker with the plotLsystem or the improvement graphics won't update when you get to new ages. Just copy the existing code in that file for farms.
 
Last edited:
Why would you ever run state property when you can capitalize on corporations? Those things are basically religious shrines on steroids.
 
Top Bottom