The Medieval Economy

Actually, In M:C there is at least one building you can change what is produced. When you have discovered new armor types you can click the Armorsmith building and change what type of armor you want to produce. This is at the moment hardcoded to just the Armory, but we could make this XML friendly if there is a need, or maybe there is a better way to even do this?
Make different professions use the same building. That might work already (haven't tested).

Also, another point in the matter there would need to be a benefit to having a Standing Army, with paid wages, as there is no benefit to doing this. The player gains more benefit in putting his units to work in his cities.
Currently the only benefit from having a standing army is that it provides iPower. The AI looks at the combined iPower in all players (cached in vanilla) and use this to determine if it is ok to threaten or even attack another player. The concept of having a massive army, which appears out of nowhere when attacked isn't in the AI's mind... or maybe it is as I seem to remember something about gaining power from stored weapons.
 
Hey guys, can you get multiple yields from a single building. For Example, cattle going into a butcher would give food and hides, or would there need to be two buildings, or seprate choices in the same building to make food or hides?
The yields are not actually written into the buildings. They are written in professions. It has a list of yields produced and consumed. Buildings then have iProfessionOutput to tell how many.

If you are asking if it is possible to produce 4 food and 2 hide, then I can't answer, but I do know that hunters in RaR produce X fur + X/2 food. If we need something like that in M:C, then we know where to look
I had thought Multiple Professions Per Building was in this mod, but it seems this may be a feature from RaR. If this is feasible to bring over from RaR it would remove the need for separate hardcoding specific to armor (ie could simply allow any of the armor-producing professions to work in armory buildings, and do the same whenever you wanted a flexible profession choice.)

Originally Posted by Lib.Spi't View Post
Technically my question was about code. 'Does the code exist for unit maintenance like in Civ.'
No. Short and simple answer
If we make soldier professions cost money, then what will prevent players from putting a whole lot of weapons in the cities and then only actually make the military units when needed? The upkeep works in civ because you can't make 40 new units during a turn (not even from turn to turn, but during a turn). You can do that in colo, which is why the idea isn't just a copy paste from civ.
I agree, making Profession-linked maintenance seems problematic for the reasons you point out. However it might be interesting using something non Profession-linked, like being assignable to a Promotion or Unit. This way you could design elite or Mercenary units which have an upkeep per turn.

It might be also interesting to essentially combine this with the plan for having civilian promotions that can modify yields per turn; ie create a single tag <YieldperTurn> that can modify any Yield type and can be positive or negative, making it quite versatile for modding. Ie if you wanted to let a unit with the Pious promotion create small amount of Crosses while working in any profession, this promotion could give it YIELD_CROSSES +1 per turn. A unit which consumes more food than average (perhaps someone with the Gluttonous promotion ;)) could have YIELD_FOOD -1 per turn. Anything costing 1 gold per turn in upkeep could use YIELD_GOLD -1.

For yields that are pooled globally like Gold/Crosses/Liberty/Fealty it should be pretty easy to a apply per-turn maintenance or bonus to this global pool. For other yields a basic version of this would likely just apply when the unit is working in a city; but if you do want to use the plotgroup system for supply lines (ie consuming Food maintenance in a plotgroup), this could be a good way to accomplish that too.
 
Yes RaR has multiple professions in a single building, the port does rope and sail cloth I thnk and the warehouse does two kinds of bean drying I think, for coffee and something else..

Yeah I know that the Armourer can choose to output different armours, but the input (ore) is the same, so I realised it would be a different function. I would like to use this system for my Smelter scheme, where ore goes in and you select what metal comes out. So having this xml coded would be great!

That was one of those features I now remember would be nice to have from RaR :D (I always like new xml features :D)

Back to the standing army, the 2 main benefits are to me, training and geography. Geography could be overcome like you said, moving a soldier and then setting him to work in the town and picking his weapons back up if needed.

Training I think is the more important one of the two. So we could have every unit start with a Levy promotion (except knights) which has a number of negatives, and could be lost after X turns in service. You also have the trained promotion like now, this could be gained after X turns garrisoned, and lost after X turns if not in a combat profession.

The other problem with 'quick-raising' is that there is a storage limit on weapons and armour so you could only raise maybe 6? units in a town per turn, we could increase equipment costs to reduce that further, so if you want a large army it has to be built and maintained over time.

It could also be that the soldiers produce great general points and/or military FF points per turn, so again there is a benefit to keeping troops on the payroll over time.

Basically with the precedent of the trained system, there is a butt tonne of stuff we can do to make standing armies meaningful :D
 
hey Kail,

I am just reposting my desires for multiple yield code, in case you forgot.

It would be great if in the professions you had two xml tags (1 new one)

<yieldsproduced> (AND)
then
<yieldsproducedOR> (which would be the armoury code essentially, just with this tag instead of a hard code)

Anyway, loving the civics work. I am about to look into the xmlgenperl script, to see if I can make my life easier for making all the new buildings and professions.
 
hey Kail,

I am just reposting my desires for multiple yield code, in case you forgot.

It would be great if in the professions you had two xml tags (1 new one)

<yieldsproduced> (AND)
then
<yieldsproducedOR> (which would be the armoury code essentially, just with this tag instead of a hard code)

Anyway, loving the civics work. I am about to look into the xmlgenperl script, to see if I can make my life easier for making all the new buildings and professions.

Ok, yeah, we'll have to talk it over with Nightinggale about the best way to go about this as he has mentioned somethings on it as well. This is somewhere on the todo list just not priority right now. I plan on finishing the Civics Screen and then starting a branch for upkeep costs and maintenance and such, and then working on the Economy aspects, adjusting xml values for demands and such, and then when thats done, I'll have to decide whats next :crazyeye:
 
Hey Kail, how does the code handle the building of the 'economic' building when found a city, you know like if it has access to grapes it gets a winery, and if barley it gets a distillery?

It basically searches for the most dominate yield with precedence on the city plot yield I believe because you get free yields from the center. Does this need to be turned off as I think it is hardcoded to work every time you found a city?
 
The simple solution to the assert message is to remove the assert itself as the code should do fine if no building is found. However I think a redesign would be better. I think it would be best if CvPlayer::getBestFreeBuilding() returns INVALID_BUILDING if no building fits the criteria for the yield while NO_BUILDING means all buildings considered for this city has not yet been invented.

I found a possible bug in this feature btw. It doesn't use canUseYield() and is perfectly happy providing a building for a yield the player haven't invented yet. The same goes for professions. This mean it can provide the building for cotton long before the play invents cotton.

Rather than patching up this code (which isn't easy to patch up), we should consider what we want from it before even starting.
 
Could we just put the on/off switch into civicinfos?

That way it could be turned on by either a civic choice or a tech, and if it is not wanted you just don't make an 'on' civic.

That would certainly make it more flexible for modding, rather than it simply being on or off..

I quite like it as a feature, but it just doesn't fit for the start of WH... I would like to be able to get in to kick in part way through.
 
Right now it is enabled by civics in the sense that you have to enable the building with civics. We could make an identical setup for allowFreeBuilding, which mean ou would need both the civic for allowing the building and the one allowing that building as a free building.

Alternatively we can make an allow for free buildings in general as well as a default setting for that in globalDefinesALT and we can even do both at the same time. It depends on what we want in the game.
 
Could we just put the on/off switch into civicinfos?

That way it could be turned on by either a civic choice or a tech, and if it is not wanted you just don't make an 'on' civic.

That would certainly make it more flexible for modding, rather than it simply being on or off..

I quite like it as a feature, but it just doesn't fit for the start of WH... I would like to be able to get in to kick in part way through.

Like Nightinggale is saying, there is basically an on and off switch already in Civics. I know a lot of people like the whole starting "base camp" idea where you start with no buildings at all except the base camp, but I never liked that with the "Found Settlement" idea. When people went out to found a settlement they usually found some area with some resource to exploit and went from there, so that's one reason I added the free starting building based on the available resources, plus given the number of turns, vanilla Col wasn't designed to start with no buildings. So, you would need to reduce building cost or increase the game length in order to keep the same balance. This "base camp" idea would work with a WH mod however, were you start with the bare means.

Alternatively we can make an allow for free buildings in general as well as a default setting for that in globalDefinesALT and we can even do both at the same time. It depends on what we want in the game.

We should add the free starting building based on the available resources as an globalDefinesAlt value, that way we would not have to create a Tech that had this ability if we wanted it to be a default setting.

From what I have learned about history so far is that the people of the so called Dark Ages were not so backwards as I once thought. They would have easily had the means to construct simple initial buildings for a Settlement. I have also come to understand that it was the Romans who were in fact the "barbarians", they were 'backwards" and behind the times in so many areas, in regards to Technology and Social advances. What they did have is greedy, ruthless leaders and a superior military. And it was their uncivilized acts that set up the whole "Dark Ages" to begin with. If the Romans would have attempted diplomacy and to learn from their neighbors instead of initiating conflict to wipe them out and steal their gold, then I believe the whole Dark Ages could have be avoided altogether.
 
We should add the free starting building based on the available resources as an globalDefinesAlt value, that way we would not have to create a Tech that had this ability if we wanted it to be a default setting.
We can actually have a number of free buildings set in globalDefinesAlt and then modifiers in civics. That will allow default 1 in some mods and 0 in others. It will also allow a civic, which provides an extra free building when founding cities. We can also provide a -1 modifier to kill the free building if we feel like that for some reason.

From what I have learned about history so far is that the people of the so called Dark Ages were not so backwards as I once thought.
Amazingly people today do not appear to have better IQ genes than their ancestors. This mean they did stuff as clever as we do today, though later times prefer to state otherwise. Especially the victorians had a very liberal approach to historical facts when stating how they wanted the past to have been.
For instance a monk in the 12th or 13th century became obsessed with leaving earth. He studied birds and built wings, he attached to his back and jumped off the highest point of the monastery. He fell to the ground and broke "every bone in his body". While staying in bed recovering he had time to think about what went wrong and realized the importance of the tail, stability and controllability. He came up with a mk2 plane to correct this issue, but the other monks prevented "this loon from hurting himself" and he was banned from attempting again. Today we know that mk2 appears to be a primitive, yet functional and controllable glider. So much for no understanding of physics in Medieval times.

The same goes for indians. Some jewelry was once found in the Andes, which was made to look like insects. The work was actually rather nicely done by a goldsmith, which on its own is interesting. One day somebody saw those two brooches (or whatever they were) and wondered why they made models of odd looking insects. They had triangle wings. In fact the shape looked more like a concorde. Being an engineer he ended up building a model of that thing, except he supersized it, giving it a wingspan of more than a meter. He then added controls from a remote controlled aircraft and added the smallest jet engine he could find as well we wheels. He then took it to an airstrip for remote controlled planes and took off. It was fully capable of taking off and maneuver while in the air. It would appear that some natives there figured out how condors were able to fly and managed to fly on the upwards draft in the Andes as well. However those brooches are the only indication we have of that. Everything else appears to have been lost.

All in all people do not appear to have been stupid just because they were born before the modern age. Assuming stupidity in days gone past is... well stupid.
 
I don't know anyone that would assume ancient people were stupid, it is not about intelligence but about the evolution of technology, one advance adds to the next.

In relation to the Romans, they were primarily engineers, this is where they made great developments and their strength was based, everything from structural engineering, to social engineering and civil engineering, they were a culture of application, and they had no problem with absorbing advancements and 'working ideas' from other cultures, they even happily absorbed others gods if they seemed to 'work'.
Most advancements of Rome came from greece, but Romans showed no real interest in knowledge unless it was practically appliable, there was even a greek theory of germs, but it was never given backing or support and exploration, because the romans could not immediately apply it.

Like I said before, the dark ages really happened because of the loss of 'logistical connection' in the wake of the roman empire, life and travel became more perilous as there was no unified security system, so knowledge was lost from one end to the other, and technical evolution slowed down, but knowledge known locally was still known, but much knowledge that once travelled, no longer did.

"free starting building based on the available resources"
It is this function that I am saying should have an on off switch in the civic code, so you could have a civic like guilds that would do this, or a technology like 'resource exploitation' or whatever, and if a game wants it to be on from the start, then you can just make a free tech that everyone has.
 
For instance a monk in the 12th or 13th century became obsessed with leaving earth. He studied birds and built wings, he attached to his back and jumped off the highest point of the monastery. He fell to the ground and broke "every bone in his body". While staying in bed recovering he had time to think about what went wrong and realized the importance of the tail, stability and controllability. He came up with a mk2 plane to correct this issue, but the other monks prevented "this loon from hurting himself" and he was banned from attempting again. Today we know that mk2 appears to be a primitive, yet functional and controllable glider. So much for no understanding of physics in Medieval times.

His name was Eilmer of Malmesbury and he is a Founding Dignitary in M:C's Art and Science category ;)

In relation to the Romans, they were primarily engineers, this is where they made great developments and their strength was based, everything from structural engineering, to social engineering and civil engineering, they were a culture of application, and they had no problem with absorbing advancements and 'working ideas' from other cultures, they even happily absorbed others gods if they seemed to 'work'.

Yeah, not saying Roman's were ignorant savages, but archeology is showing they were behind in lots of areas and they were not the first road builders either. There where societies that matched or even rivaled Romes engineering skills. The Romans were behind socially, in that in Rome you could dump your unwanted children in a trash heap, while in other cultures they had laws that protected children and women. At the height of the power when Rome conquered some "barbarians" they attempted to stamp them out completely and have them portrayed as vile savages to justify their genocide. When Rome was weakened they had to start making deals that allowed the barbarians in to their little toga club.


"free starting building based on the available resources"
It is this function that I am saying should have an on off switch in the civic code, so you could have a civic like guilds that would do this, or a technology like 'resource exploitation' or whatever, and if a game wants it to be on from the start, then you can just make a free tech that everyone has.

We'll do a GlobalDefineAlt, so you don't have to worry about adding additional free techs to every Civ and that will work for everybody.
 
I don't know anyone that would assume ancient people were stupid, it is not about intelligence but about the evolution of technology, one advance adds to the next.
Obviously you haven't studied history books. The 19th century provided historians who did a much making up as historical research and wasn't questioned at the time and many of those statements have been used as facts until the last 20-30 years and some still are. The problem is that they have been accepted as facts and later works use them as foundation. One really famous fact online is the Spanish Inquisition. It was described in the 19th century full of horrors and witch burnings and stuff. Recent studies reveal that this one book is mostly a work of fiction. While bad stuff did happen, it made the people in charge stupid and superstitious. Looking at the actual sources for this, this book told of more than a thousand burned people for every witch burning, which can be justified by real sources. There are plenty of other statements, which can't be backed up by any other source at all. Even though we know this book is mostly fiction, it is still fairly common to see online jokes about the Spanish Inquisition killing/torturing everybody.

There are similar works telling stuff like medieval peasants were stupid people with no reading skills at all, could hardly speak and passed their time playing with mud or manure. However no sources can confirm this. In fact we have well written letters sent between peasants telling that this isn't the case.

"Parents in medieval times were brutal to their children. They threatened to drown their children in the village well and would do so if they misbehaved". Sadly this is taken from a history book used in school today :eek: If we start to look at actual evidence of how children were treated, I say we should instead look at a Renaissance law, which states that it is unlawful to hit another person (children included) in the head. This mean the slap to the chin, which were quite common in the 50' and 60's was a criminal offense during the Renaissance. It wasn't illegal to hit children as part of their upbringing, but it was illegal to do it in a way, which could leave permanent damage and by law any blow to the head would be considered a potential cause of permanent damage. Going back further there is a book preserved in England from around 1300, which is an official record of dead children. When a child died, official workers showed up and investigated what happened and wrote the result in this book. It would appear that the king ordered this work by law as murder should result in jailing the murderer. A parent didn't have the right to kill his own child.

As for the drowning children in wells. It just makes no sense whatsoever. Even if the child should be murdered (which could lead to execution of the parent!), doing it in the village well would be insane as this would poison the water supply. It wasn't uncommon for villages to have just one well, meaning poisoning that one would be potential murder of the entire village. In other words doing something like that would be a serious crime, which would really attract the attention of the king's investigators.

It is a reference to source-less books about past stupidity, which is the reason behind the statement about people in the past not being stupid.
 
Well I'm definitely too stupid to enter into a discussion involving Eilmer of Malmesbury! :jesus::lol: he sounds like my kind of guy though. :mischief::cool:

But here is some evidence even our grandparents might have been a bit stupider than us if it helps you feel better :p http://en.wikipedia.org/wiki/Flynn_effect

Anyway apropos of the freebuildings customization; fwiw it is also possible to grant individual freebuildings directly by having a tech or civic apply a Trait effect and then using FreeBuildingClass within the Trait XML.
 
Top Bottom