Im thinking of making a mod where I go in and change all the values for research for each tree. Granted, this will take a bit of time and effort( was easier in GC 2 thats for sure) but its about the only way I think will really slow down research. Ive changed all the values for the buildings in game(for everyone) and still research just flies by. Changing the research rate in Pacing above 1 isnt that great either...yes it slows it down, but only until you build enough that you flood over it. So, that leaves me with going into each tech tree and changing the values there.
What Im wondering is...how much upkeep will this prolly take? Basically, when they put out new patches...will I have to go into each tech tree and see if there was a change or will the game error out if they changed something, but I didnt? Also, is there a quick way to find a difference between the new tech tree(from SD's update) vs mine in Notepadd ++? Im not sure on what values I will do, though im thinking of doubling the cost, because in GC 2 I liked that rate...really slowed it down making each tech special...which is my way of playing and im sure, not the majority's. Still, im looking for a bit of advice on that, because Ive never done something as big as this will end up being. I wish there was a simplier way of adding X amount onto the existing tech cost, but I dont see that. Ive tried to figure out how to make a global event happen at the beginning of each game that would increase the amount of the techs(or even decrease generation, but im thinking that would be the same as changing Pacingdefs) cost, but couldnt figure it out. So, im headed this way.
Any tips, suggestions, or constructive ideas are very welcome!
Check the "TechAgeDefs.xml" in the \data\Game\ folder, you can set the number of techs required for each age there. But it doesn't mean anything in practice. Another way is to put all your planets in build mode and skip research for a few turns Interstellar travel (and maybe Universal Translator) is usually all I get early on.
Wait... that's what those numbers mean, number of techs researched?! I was never able to ken that. That is prime fodder for a new tooltip right there. Why wouldn't it mean anything in practice? Wouldn't doubling that number make your age about 30%-50% longer, assuming you continue to build out research?
Edit- Does this mean that each race enters the new age at different times depending on how many techs they've researched?
Yes, modifying "TechAgeDefs.xml" will indeed change the number of techs required to be eligible to unlock the next Age Technologies. I have modified this in my game to make the first age (Age of Expansion) last 20 Techs.
I think what Saruboy was trying to say was, it will not slow your research rate down, just mean you need more techs to unlock higher level ones.
Ya....ive changed mine to 30 for the first age...there are notes in there so it will help you decide.
Yes, modifying "TechAgeDefs.xml" will indeed change the number of techs required to be eligible to unlock the next Age Technologies. I have modified this in my game to make the first age (Age of Expansion) last 20 Techs.I think what Saruboy was trying to say was, it will not slow your research rate down, just mean you need more techs to unlock higher level ones.
I get that. I want to modify both the Age value and the Research required per tech.
I'm working on the research values right now, Saruboy did a great job with his script but I am looking for a much lower maintenance solution and I've been playing with the tech inflation values in the xml. It's simply a case of working out the exact formulas the game applies them to. The fact that costs are inflated exponentially means any change to those values could be too extreme to play.
Feel like I'm hitting my head against a brick wall but I have made a breakthrough I think. For the life of me I couldn't work out exactly (mathematically) how the multiplier and exponent were affecting tech rates. Then I realised that research values are adjusted by a hidden value based on map size. The only modifier based on map size I can find in the xml is the ship range one and it's not using that value... so right now I can't seem to pin down the exact formula but it's progress albeit slow.
Map size modifiers appear to be approximately:
Medium 0.77Large 0.86Huge 0.9Gigantic 1.32
Obviously I'm missing something, so the formula isn't straightforward. I was hoping I could find some insight in the xml but since I haven't maybe someone else has?
Eureka!
Found my missing variable, HABITABLE planets! LOL it's been a long slog but so close now!
Of course that's the fun trying to see through something opaque... it must be hardcoded into the game.
Oh right, the Tech Age do matter. It blocks research if you aren't in it. I think a "Doh!" is in order... Doh!
I am also unhappy with having to run the script every time I want a different research cost scenario. And copy paste TechDefs files all the time. But it's only until Stardock fixes things.
The formulas I found for tech cost were:
case A (normal): Cost = 29 * e^(0.3715*tier)
case B (+10% cost): Cost = 1.1 * 29 * e^(0.3715*tier)
case C (-10% cost): Cost = 0.9 * 29 * e^(0.3715*tier)
tier = 0 to 9 (at least I think 9 is highest), normally how deep a tech is in a tree, but some have higher or lower values than one might expect
If the Cost has a decimal value it is always rounded down (so 60.9 becomes 60).
Most techs are of case A. For the weapons; Kinetics are case A (+0%), Beams are case B (+10%) and Missiles are case C (-10%). This seems to be offset by the cost of the support techs to each weapon.
If you wish to modify the tech cost, you can insert a modifier like this
Cost = 29 * e^(0.3715*tier*modifier)
And then to have the Cost be, say 10 times higher, for the tier 9 technologies, you can calculate what modifier you want
10 times higher at tier 9 is what i want -> 10 = 29 * e^(0.3715*9*modifier)
rearrange the equation -> modifier = LN (10*29) / (0.3715*9) = 1.695792111
That makes it easier to avoid crazy research costs
Dude I am not army computer right now (its broken anyways) but there is one file called game pace defs that has research pace values for all civs. You can alter it to make the very slow setting be as slow as you want or make a very very slow setting if you desire. Saves you alot of time.
you can alter production rates too or make it so only do shipyards produce slower, whatever you want you can do it.without editing every tech value.
DARCA
Wait.. the base value are different for each race? Or just can be... how does that work with custom races?
Yes, this is how it works, you need x amount as defined in TechAgeDefs.xml (default 12 to enter Age of War) techs for a race to enter each age. An age is specific to each player, it is not global.
No, don't worry, the base values come from the Tech Trees. There may be minor cost differences or discrepancies between similar techs amongst the trees, I haven't looked too closely, but most seem the same. The only modifiers based on race/civ are their racial bonuses like clever/productive etc. Custom races can pick these also. Those bonuses are minor in practice as they only amount to a basic factory or lab per planet.
I agree, we can do what we want without editing each tech value, but it's not in the PacingDefs.xml.
There is a major reason for this from my point of view, and that is the exponential growth of your research production over the length of your game. Right now early game costs are fine and feel about right. Past mid game you reach a point where you are popping out a tech each turn.
Currently PacingDefs.xml provides a global bonus or penalty to you colonies. This modifier affects you at the beginning of the game and is practically irrelevant after a short time once your percentage bonuses on the world equate or surpass this value. -50% to a colony makes little difference when you have +500% bonuses from a cluster of labs.
So you can see by adjusting the current pacing, firstly will prove little worth past a few turns, and secondly would only slow you down early game, which is not where the problem lies.
There is a way to simply cut total faction research values by a percentage, but this doesn't show in game and could cause confusion on the governor screen and additionally this will affect either early game too much or the late game not enough.
The solution has to do with the tech inflation mechanic the game uses. Once I nail the formula I will start experimenting.
Well put and most of us here already know about pacingdefs and it isnt the fix we want or a fix that will help. Its basically like going up a big hill...put down enough research and you break over it...instead, changing the tech values to a higher number, will slow it down to a reasonable level(or whatever reasonable is to you).
Hmmm... Seems that with old galciv percentages mattered more. Now like you said (and I forgot) the percentage becomes less effects when you have more positive ones from labs. Might be possible to have actual rp deducted and percentages? Or devs could make the pacing be the last in the algorithm? Then again, it won't matter as you will always have the same amount of rp. Observe: 20p * (100% - 50%) = 30rp. 20p * 100% - 50% = 30rp
So I can the problem of slowing the game, with every colony and RP it gets harder to keep the game slow. Sorry.
Actually there is a way you can cut total research points by a total percentage like you suggest and I mentioned this before. It can be applied directly to your faction. It's the same way the Research Cloisters, Quantum Research Foundation and Ascension Gate work (which I am certain HAS to be a bug!) Currently if your total civilization is producing 10,000 research, these buildings increase it 50%/100%/200% to 15,000/20,000/30,000 respectively. Not to mention you can exploit this and have all three buildings at once to bump 10,000 research to 45,000...
I've modified these buildings in my game as I consider them game breaking.
The problem with using this mechanic, as I said above, is that it will hamper you too much early game to make it effective at the end. 50% reduction will make techs at end game take two turns not one (not a big deal) but early game 30 turns instead of 15 is a big difference.
The way forward is by using the built in tech inflation mechanic the game uses. Currently, research costs are increased for every technology you unlock. Costs are also modified by how many habitable planets are in your galaxy (this took a while for me to figure out, it appears hardcoded in the game and I thought my discrepancies were due to galaxy size at first). I'm reluctant to modify these until I completely crack the formula however as I don't want to get to end game and have insane research times due to exponential inflation.
Gathering data is time consuming but over the last couple of days I've made progress. I'm having some problems with the exponential increases however and might have to ask someone with superior mathematic skills to assist me.
Thanks for all the hard work on this Rspiccaver!
Thanks for the encouragement! Even though I'm doing this for myself it's nice to know it can potentially benefit others.
Good news is I cracked the formula about 5 minutes ago!
Just a couple more things to double check now and I'll share my findings.
I am overly excited to hear this math.
OK, I thought I had it pinned down exactly but I'm off by about 1% which I'll try to find when it bugs me more than tires me to look at. The problem is the habitable planes modifier.
Currently the game uses a set of mechanics to modify the base tech costs we all see in the TechDef files:
The default values for these can be found in GalCiv3GlobalDefs.xml:
The most important one to look at is the TechInflationExponent_All and TechInflationMultiplier_All. I suggest leaving the others at their default values.
The formula I am giving below is an approximation as I haven't been able to exactly pinpoint the equation for habitable planets. My approximation is throwing the costs involving the multiplier out by about 1% but that's not much in the grand scheme of things since all else seems to be accurate.
What I have got is:
Research Cost = b + (t+4)^e + (t+4)*b*m*p
b = base research cost from the TechDeft = techs unlocked as shown at the bottom of the tech screene = TechInflationExponent_Allm = TechInflationMultiplier_Allp = planet modifier
where (note this is an approximation)
p = 1 + (number of habitable planets over 50)/100 + (number of habitable planets over 100)/400
So as an example:
b = 821 (Cultural Affinity)t = 180 (Techs unlocked)e = 1.2 (default exponent)m = 0.12 (default multiplier)p = 1.25 (75 habitable planets)
Research Cost = 821 + (180+4)^1.2 + (180+4)*821*0.12*1.25 = 24003
This value will be additionally increased by the "Tree" inflation settings, depending on how many other technologies in that tree (Government in this case) have been unlocked. It will not be affected by the specialization settings since it's a core technology.
I haven't looked at the tree and specialisation tech costs too closely besides to assess what they affect. However, the math appears simplistic at first glance with them being a simple multiplier and exponent.
So how do we apply this to our games? I think it's going to be a little trial and error with the various effects compounding inflation on top of inflation. The default values Stardock has set don't seem high at first glance but you can see from the example above how much they are actually inflating costs even if we can't see it. Adjusting this values is going to come down to personal preference but in the first game I'm about to start I'm going to set the exponent to 2.0 and the multiplier to 0.2.
Also be warned that I'm unsure how this is going to affect the AI. there are various balancing issues we might need to consider like tech trading (adjusting the value AIs place on tech) and for those on higher difficulties the free war technologies the AI can receive each turn. In most cases I think this will be detrimental to the AIs since most people that want slower research will specialise their planets and the AI doesn't (at least not well).
What I have got is:Research Cost = b + (t+4)^e + (t+4)*b*m*pb = base research cost from the TechDeft = techs unlocked as shown at the bottom of the tech screene = TechInflationExponent_Allm = TechInflationExponent_All (editing quote: copy paste error, should be: TechInflationMultiplier_All)p = planet modifierwhere (note this is an approximation)p = 1 + (number of habitable planets over 50)/100 + (number of habitable planets over 100)/400
Aweseome Really nicely done!
it looks like e = m, is that correct? i see from the example what it is, the name were the same though
and a <1% error, that almost sounds like some sort of rounding could be going on somewhere
Haha, I wish, IE crashed just as I finished the post and I had to quickly take a screenprint and retype it all!
Fixed it now.
There are many great features available to you once you register, including:
Sign in or Create Account