Possibly Simple Question

cwaugh

Chieftain
Joined
Nov 21, 2005
Messages
6
I'd like to make one simple change to the game - slow down research by a factor of 2 or more. What is the best way to do this? I can see the stuff I want to override in CIV5GameSpeeds.xml.


(Unrelated question: what does 'ICS' stand for?)
 
Change

<Row Name="BASE_RESEARCH_RATE">
<Value>1</Value>
</Row>

to

<Row Name="BASE_RESEARCH_RATE">
<Value>0.5</Value>
</Row>

In GlobalDefines.xml

This will slow the progress of research by 1/2.
 
I'd like to make one simple change to the game - slow down research by a factor of 2 or more. What is the best way to do this?

There are a few different ways to do this. The problem is that it's not always obvious how far each change extends; for instance, the Base Research Rate mentioned above; while it'd decrease the base value from 1 per population to 0.5 per population, I'm not sure it'd decrease the additional base from the Library (+1 per 2 population), so you'd only see a decrease of 1/3 instead of 1/2. I'm also not sure whether that Base Research Rate affects flat +research bonuses, like the +3 from the Palace or any other +research buildings you decide to mod in.

Another way to do this would be to change the effective costs of the techs themselves. You don't actually need to go through and edit each tech to do this; an easier way would be to edit the CIV5Eras.xml file. Each era has a research cost multiplier, used whenever you start a new game in that era (so if you start a game in the Renaissance Era, it might multiply the costs of every tech by 0.4 to compensate for your lack of large cities). So all you'd need to do is multiply each of those multipliers by 2 (or if you only ever start in the Ancient Era, only that one), and voila, all techs now take twice as long to acquire.

Personally, I went with a more complex solution for my own mod. To me, the research pace at the earlier eras is just fine; it's the later eras, once you get the stacked +50% bonuses from the University/Observatory/Public School and the +100% Research Lab, that everything falls apart. So I just edited all of those (to 30/20/40/50, respectively, with 1/3/1/0 culture added to each) downward. Also, the Library; it's +1 per 2 population, but that means that it's the only +research that ISN'T purely additive. That is, a Library multiplies your research by 150% regardless of those other buildings (while the +50% of a Public School might only take you from 200% to 250%, effectively a 25% increase). So in my mod the Library was reduced to +1 per 3 population (and +1 culture).
End result: in the core game, the full set of research buildings gives you 5.25 research per population in the Modern Era. In my mod, it's down to 3.2, so you get a slower Industrial/Modern research pace without affecting the earlier eras by much.

(Unrelated question: what does 'ICS' stand for?)

Infinite City Sprawl.

It means settling as many cities as possible, in as tight a pattern as possible, and keeping them small (size 4-5) to limit unhappiness; in the end it's impossible, graphically, to tell where one city ends and the next begins (hence the name). Build a Library and slot its Scientists, build a Colosseum, and with the right policies each city becomes a net positive (neutral happiness, gain science, gain money), especially if you go for the right Wonders (like the Forbidden Palace). You end up getting so much money that you can rush-buy whatever units you need, and you'll far out-science the AIs.

Many of the changes in the most recent patch drastically limited this strategy, but there are still a few advantages to making as many small cities as possible. There are quite a few threads in this forum discussing other ways to limit ICS. Basically, we dislike it because it's an easy way to win even on Emperor difficulty, and obviously the AI doesn't know how to do it so it feels even more like an exploit.
 
Thanks for the answers. I'm pretty sure I want to override CIV5GameSpeeds.xml, since that controls the basic cost of technologies:

<Row>
<Type>GAMESPEED_STANDARD</Type>
...
<ResearchPercent>100</ResearchPercent>
...
</Row>

However, I can't(?) mess with the basic files, so I guess my real question is how to override it with a simple mod. I can try following the modding guide, although it is not an object, per se...
 
so I guess my real question is how to override it with a simple mod. I can try following the modding guide, although it is not an object, per se...

It's very simple; this sort of XML change is the simplest mod you can possibly do. Make an XML file with
Spoiler :

<GameData>
<GameSpeeds>
<Update>
<Set ResearchPercent="200"/>
<Where Type="GAMESPEED_STANDARD"/>
</Update>
</GameSpeeds>
</GameData>

But this only changes it for that one game speed, you'd want to do a similar change for Marathon, Epic, and Quick speeds (taking their values and doubling them).

Then do the usual OnModActivated/UpdateDatabase, and you're done.
 
Another option you have is to go into the file CIV5Eras.xml and change the <ResearchPercent> for each era. As it is currently, the percents are 100, 85, 50, 33, 20, and 10 percent as you go from Ancient to Modern Era. So each era reduces the cost of technologies too; I believe that this percent change is done after the game speed change, although I'm not totally positive about that.
 
I believe that this percent change is done after the game speed change, although I'm not totally positive about that.

They're multiplicative. If one from Eras is 85 and the one from GameSpeeds is 200, then you'll end up at 170 (meaning all costs are 1.7 times the base).

So yes, you could edit all eras or all gamespeeds. Since there are seven eras and only four game speeds, it's probably just easier to adjust the multiplier in the speeds file, but either would work. Of course, this all falls apart if anyone adds new Eras (if you edited that file) or adds new game speeds (if you edit that one). New eras tend to be a requirement of many content mods, so I'd generally steer clear of editing that one.
 
I would think the simplest way to uniformly increase all tech costs is to just use a small SQL mod. For example, the following saved as an SQL file and set to an OnModActivated/UpdateDatabase action will double the base cost of every tech:
Code:
UPDATE Technologies SET Cost=Cost*2
Since it is a single statement, you can operate on the tech tree directly rather than trying to go through the era or game speed tables, and it should be easier to maintain if you find you want to change the multiplier.
 
I would think the simplest way to uniformly increase all tech costs is to just use a small SQL mod.

It's the simplest, no question, but using SQL for this can cause major compatibility issues. If you're trying to combine this with some other mod that ALSO doubles the amount of time needed for research through one of the XML methods, then you'd end up having things take 4 times as long.

Also, doing it this way has some other, less obvious drawbacks. It wouldn't mesh well with mods like Tech Diffusion, or anything else that gives flat +research. For instance, if you're using one of the mods that have Great Scientists give a flat number of beakers (instead of a constant 1 tech), then that flat number gets multiplied by all the ResearchPercent multipliers but wouldn't be affected by the SQL change.

Bottom line, no matter what you do there's the potential for some strangeness. Personally I dislike SQL changes in general, because it seems to have more potential for accidental conflicts, but it all works.
 
Top Bottom