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!
Easiest way to do it and to maintain it, as far as I can see, is to make a script that does it for you.
Hmm a script...I think that goes beyond my meager understanding of XML. Will have to check into it then. Thanks!
This is just a thought, I haven't tried it.
Buildings give multiplier bonuses, and multipliers can always cause extreme cases. If you want to keep things in check, you could try a <BonusType>Flat</BonusType> for buildings and wonders. Not sure what kind of values to aim for here, but from the top of my head I think a +3 bonus for the very first research building would be fairly balanced, and then increase it by one for every new tier. The building level bonus multiplier should be changed into a flat value too, like +0.25 regardless of tier.
This approach has two backsides I can think of right now. It will require planning or testing to find good values for the buildings. And a flat bonus will remain when the Governor settings are changed, so a lots-of-labs planet would still produce plenty of research even when asked to do only manufacturing (but that might not be so bad actually).
edit: relic bonuses would need tweaking too, and multipliers from space stations as well, and probably more things i forgot about
edit 2: also test tp make sure the game will allow flat bonuses for research, i haven't done it
Ok ill try that out and see what happens. I know I have changed the value so that research buildings start off at 1% vs 10% and if they do give a flat number, that would still contribute towards the total tech cost...or at least in theory lol.
how about upping maintenance cost for research facilities?
you could also look into nerfing the base research rate for planets.
So far the flat rate is working fine...will have to keep playing more to see how it goes!
Did you change how starbases work as well ? If not that would add some multipliers which could be unbalancing
whats to stop someone from building a bunch of reaserch buildings and then focusing all in wealth?
No havnt got to them and im leaving some of the multiplyers that some buildings give...mostly the global ones. Will have to look into SB's as I didnt know they had research buildings on them.
I looked at an old save to see what kind of research I would have got with flat values.
My main research world had class 12 with 12 population, and it produced 369 research per turn (not great, i know, but just to compare against something)
Raw research is 34.8
8 research labs (tier 4) with additional 45 levels of bonus
Technological capital with 7 levels of bonus
Positive multipliers from racial, tech bonuses, relic and just one starbase for +110%
Game pace penalty -50%
Assuming research labs start at flat 3 with +1 for every new tier, this would give 6 per lab
Technological capital can be.. lets say 20
And each level of bonus (45+7) is 0.25
This would give a total of (34.8 + 8*6 + 20 + 52*0.25)*(2.1 - 0.5) = 185.28
So down to about half. That is still too much imho.
I started off with 1, then 2, 4, 6, 8, 10, etc. There are tons of % multiplyers out there, not to mention if you get special bonuses on the planets and tiles, so its working ok so far. Any race having the clever trait, certainly will be rocking more than those who dont know. Ill be doing more testing and seeing how it goes.
Well after playing over 100 turns, its still easy as hell to gain research. I have pacingdefs at -75%, made changes to the base buildings rates as I stated above and it still gets redonkoulous on how much research you can make. I only have 2 main research planets as well...Im still betting, that best bet would be to go in and edit every since tech cost, but good grief...that is almost 300 for each tech tree...I have no idea how to do that easily and quickly...but im thinking that if I were to change those numbers, that would be the way to go...but sheesh...
How about adding a penalty to the civilization capital? I've been thinking about this myself as researching a tech per turn is a bit off putting for me.
This is the current (imo crazy and I've modded it out) bonus applied to the research cloister line of buildings which increases total civ research by 50%
<Stats> <EffectType>Research</EffectType> <Target> <TargetType>Faction</TargetType> </Target> <BonusType>Multiplier</BonusType> <Value>0.5</Value> </Stats>
You could possibly change the value to -0.5 and add it to the civ capital improvement. That would half your research rate. Thoughts? I think I might try it on my next game.
I made a script to change research costs. It works for me, not sure if it works for others. It's VBscript, so should work under any windows, i didn't need to install anything (new) to get it to run on Windows 8
EDIT: Also check the post below for alternative Research cost formula (fast start, slower middle and end game)
EDIT2: Included "TechDefs.xml" and "PirateTechDefs.xml"
EDIT3: as a result of a post by rspiccaver (https://forums.galciv3.com/467114/page/1/), this script now uses an exponential growth model for the tech cost. GalCiv3 already used exponential growth for research costs, so things are closer to Stardocks design like this, only differance is that you can now choose how fast that research cost grows.
EDIT4: cleaned up the code, improved comments
------- copy/paste everything below this line -------
'Disclaimer: I can't program, so the code is noobish, but it does the job
'The tech cost will follow the same exponential growth that Stardock use for the techs'The only differance is that you can make that growth steeper or shallower with this script'How much steeper is your choice, it depends on the number of habitable planets and your tastes'Much steeper growth is recommended for larger maps with many habitable planets'A bit steeper is recommended for maps with a handful of habitable planets
'1) Save this as a .vbs file (visual basic script)'2) Place file into a "My documents\GalCiv3\Mods\xxx\Game" folder, xxx=name of mod'3) Copy/paste all *TechDefs.xml files into same folder'4) Adjust EndGameResearchMultiplier to a desired value (a few lines down)'5) Run script once, it takes a few seconds to do all the changes'If there were no errors, all techs should have their research costs adjusted
'-----------------------------------xxxx-----------------------------------'How many times more expensive do you want the END-GAME technology to be?Const EndGameResearchMultiplier = 20'-----------------------------------xxxx-----------------------------------
Const NumberOfFiles = 10Dim FilesToOpen()ReDim FilesToOpen(NumberOfFiles)' --- List of files to changeFilesToOpen(0) = "AltarianTechDefs.xml"FilesToOpen(1) = "DrenginTechDefs.xml"FilesToOpen(2) = "IconianTechDefs.xml"FilesToOpen(3) = "IridiumTechDefs.xml"FilesToOpen(4) = "KrynnTechDefs.xml"FilesToOpen(5) = "TerranTechDefs.xml"FilesToOpen(6) = "ThalanTechDefs.xml"FilesToOpen(7) = "YorTechDefs.xml"FilesToOpen(8) = "TechDefs.xml"FilesToOpen(9) = "PirateTechDefs.xml"
Const TechBaseCost = 29Const DeepestTechTier = 9Const ExponentialGrowthValue = 0.3715
Const TristateFalse = 0Const ForReading = 1Const ForWriting = 2
Dim objFSO, objFile, strText, floatResearchModifierDim intPosition1, intPosition2, strLeft, strRight, intCost, intTemp(5)
' --- PreparationsSet objFSO = CreateObject( "Scripting.FileSystemObject" )intPosition1 = 1floatResearchModifier = Log(EndGameResearchMultiplier*TechBaseCost) / (ExponentialGrowthValue * DeepestTechTier)
' --- StartFor i = 1 to NumberOfFiles ' ---- Open a file Set objFile = objFSO.OpenTextFile ( FilesToOpen(i-1), ForReading, False, TriStateFalse) strText = objFile.ReadAll( ) objFile.Close
' ---- Modify content '--the loop uses "exit do" to break out when the end of the file is reached Do intPosition1 = InStr(intPosition1, strText, "<ResearchCost>")+Len("<ResearchCost>") intPosition2 = InStr(intPosition1, strText, "</ResearchCost>")
strLeft = Left(strText, intPosition1-1) strRight = Mid(strText, intPosition2, Len(strText)) intCost = Mid(strText, intPosition1, intPosition2-intPosition1)
'--when the file reaches the end it restarts from the beginning, that turns intCost into a string if isNumeric(intCost) = False Then exit Do 'WScript.Echo " pos1=" & intPosition1 & " pos2=" & intPosition2 '-for debugging End If
'--when a tech cost larger than zero is located, do this if intCost > 0 Then '--determine tech tier (by using three averages and then round off to closest integer) intTemp(0) = Log(intCost / (TechBaseCost*0.9)) / ExponentialGrowthValue intTemp(1) = Log(intCost / (TechBaseCost)) / ExponentialGrowthValue intTemp(2) = Log(intCost / (TechBaseCost*1.1)) / ExponentialGrowthValue intTemp(3) = Round((intTemp(0)+intTemp(1)+intTemp(2))/3, 0) '--determine if research has + or - 10% to it by comparing the three cases to the calculated tech tier If ABS(intTemp(3)-intTemp(0)) > ABS(intTemp(3)-intTemp(1)) Then If ABS(intTemp(3)-intTemp(1)) > ABS(intTemp(3)-intTemp(2)) Then intTemp(4) = 1.1 Else intTemp(4) = 1 End If Else intTemp(4) = 0.9 End If '--tier and modifier are now known, calculate the new research cost and round down intCost = Round(intTemp(4)*TechBaseCost*EXP(ExponentialGrowthValue*intTemp(3)*floatResearchModifier)-0.5) '--replace old cost with new strText = strLeft + CStr(intCost) + strRight End If Loop
' ---- Save the file 'Set objFile = objFSO.OpenTextFile ( "test.xml", ForWriting, True, TriStateFalse) '-for debugging Set objFile = objFSO.OpenTextFile ( FilesToOpen(i-1), ForWriting, True, TriStateFalse) objFile.Write strText objFile.CloseNext
WScript.Echo "Finished"WScript.Quit 1
Ignore
Alternative Research Cost Formula for normal research speed during Age of Expansion, and slower research in Age of War and later.
Replace
intCost = Round(Mid(strText, intPosition, intPosition2-intPosition)*intResearchMultiplier)
With
intCost = Mid(strText, intPosition, intPosition2-intPosition) If intCost > 100 Then intCost = Round(intCost*intResearchMultiplier) End If
Thanks for doing that, Saruboy. Was considering doing it myself, but now I don't have to!
Just tested it. Works great!
Awesome
I am honestly very surprised it works. It was my first script. I had no idea how to make one when I started. But with some help from the Google fairy and the copy/paste fairy, it pretty much wrote itself.
How do you run that file you make? When I double click on it, nothing happens. Sorry noob on stuff like this. Basically i get an error saying cant find software to run this file...so not sure what I should use.
NM...got it to run, but getting an error....says file missing haha.
Edit 2...Strange ran the script it error out at line 41 but it changed all the tech values...going to try it out now!
Wow it works! I figured out what I did wrong and it works...slick as ...err...snot! Awesome job dude! Guess you now have a mod you can post if ya want haha! Thanks so much! Sending you karma(my first time so hopefully I do that right!) Awesome job buddy!
Your script is currently not modifying the basic tech tree "TechDef.xml"
Oh right, the generic tree. Should "PirateTechDefs.xml" be in there too? I'll add both, I guess.
Ty for pointing it out.
Updated the script: https://forums.galciv3.com/467013/page/1/#3562335
It now uses the same exponential growth curve that GalCiv3 use, so it's more like Stardocks intended design. The script just makes that curve steeper (or shallower).
As a default, the script is set to put end-game research cost at x20 (earlier technologies will recive a lower multiplier).
I'd like to hear how the script is working out in game. I prefer very very slow games. I'd be happy if the research/manufacturing was at 10% or less of normal. Also, I hope you can add this script to the Steam Workshop when 1.1 comes out.
I have played a game (Challenging, Humans, medium map) to turn 100. I used the script at x100 research cost (so later techs are going to be really expensive). I have 13 colonies and research output is near 900, with some planets doing manufacturing only (my shipyard has 370 manuf per turn). So far, I feel like I am only beginning to notice that techs are taking longer to research, the early ones just flew by like normal. Some of the available slow techs right now are: Large Scale Construction (21 turns), Interstellar mining (9 turns), Harpoons (8 turns), apart from several that are 2 turns and 4 turns. When I look deeper into the tech tree I see Massive Scale Construction (121 turns) and Singularity Drivers (683 turns), so things get pretty extreme down the line. A Technological victory doesn't seem like an option, at least not on a Medium sized map with x100 research cost for the end-game techs.
Overall, I am pretty pleased with the pacing, an early rush that then slows down. I always enjoy the mid-game content more anyway. And even though my fleets will become too much for the AI in the end, I don't expect to have an extreme technological edge against it. And there won't be new techs popping up every other turn, so choosing what to research will definately become more important.
I don't think I will put the script on Steam. Because I really believe that Stardock will get the research well balanced. And then there won't be a need for hacks like this. And if anyone wants it anyway, it's just a forum search away.
This reminds me. Is there some way to set how long each tech age is? I always think the Age of Expansion is way too short.
I'd like to see the script on steam anyways. More options are always better for power players and I really don't like modding my game manually, I want the workshop to manage them for me.
There are many great features available to you once you register, including:
Sign in or Create Account