K-Mod: Far Beyond the Sword

Well I'm sure Karadoc has other things to do. I wonder if he would mind if someone carried on the work in his place, a sort of passing of the torch. Of course those are big shoes to fill. Or maybe it doesn't have to be a passing but a sharing...perhaps someone else could help Karadoc make a new version while Karadoc is still a part of the process.

For me, as I've said before, this mod increases the replayability of Civ 4 since I don't want to get into 5. The AI improvements are already amazing, the AI is so much stronger than it was before, and I wouldn't know how to improve the AI anyway. I think a bunch of simple balance changes could really improve the game, they would be easy to implement and play test.

Examples? Well, making sure each Civ has a useful UU and UB would be a start. We could tackle the most obvious stinkers first, like the phalanx and the SEAL. Karadoc completely fixed the panzer, which I'm thankful for, but the German UB is still crap.

If the mod were to do this I would genuinely enjoy playing more games. Playing the Russians, for example, or the French, is like playing with no UU or UB. The cossack never fights mounted units anyway, it's no different than a normal cav, the research institute is amazing if you are in representation AND going for a space win, if you don't meet either of those conditions it's crap, so the vast majority of games. The French UB never does anything significant in any game.

Compare that to the conquistador - not overpowered but interesting and can change game strategy, which is good for replayablity, and compare buildings to something like the new Celtic dun - altering the game and adding new strategic options. I like that.
 
Some more feedback (1.40). I'm playing using MMod >18 civ, so it is a bit tricky to determine where the feedback should go, but I assume it doesn't add that much to these points.

Napoleon declared an early war on me, while I was builder-ish and couldn't attack his stack. I could gather 3 archers to the first city in their path, and that was enough for the AI to ignore the city and march towards the next one. I then used a galley to transport 2 of the archers to the next city. This caused the AI to change direction and go towards the first city. Well, I could repeat this procedure due to galley's movement speed and loading/unloading so that I could make the AI army stuck doing useless zigzag movement. It might be a difficult one to handle, but the mistakes the AI did was to not pillage my economy / not remember the units i could "hide" in the galley / not do something different if it was repeating some move without any progress.

There are various not-so-well documented details regarding improvements. Watermills can only be built in graphically correct spots (secret) -> build-order dependency for the end result (annoyance). The cottage build button doesn't show up if the tile is plains+jungle (check for 0 food, even when valid?) (surprise). Cities spread irrigation, but only when on flatlands (not 100% sure about desert now) (secret). IIRC cottages can be built on tundra only next to river (secret). IIRC only *worked* mines can generate new resources (secret).

The hanging gardens doesn't always give +1 pop (if city size is 1? if city has 0 food in storage?), even when the description says so.

The production bonus from the apostolic palace is not in the wonder description (although some civilopedia article somewhat says it).

I was playing a religious game in MMod. I noticed I was gaining money randomly even though I was constantly on red. I'm not entirely sure what it was. Perhaps production overflow from amount-capped unit (missionaries) transforms into money?

In early game I can use a bored warrior to pillage a road (neutral area) that an AI worker is building to connect their cities. I can continue doing that, and the AI doesn't care.. it actually keeps building the road immediately after I demolish it ("7 turns to build"). The tile was corner-corner from a city, so I could continue do it even after the city culture expanded, and the AI never considered using his own territory instead. That poor thing had no idea of what was going on :lol:. Every small (no cost!) bit helps when I'm preparing for an early war.
 
v1.41 doesn't really change much. But I think that fixing the AI worker problem might have a bigger affect on the difficulty than you might expect. It was a pretty common problem and it sometimes slowed the AI down quite a lot in the early game.

Regarding the quechua change - I've barely tried that at all, but I think it's probably going to work out well enough. I was tempted to go with the culture nerf on terraces, and maybe I still will, but after browsing through some of the unique buildings, I decided that there are actually a bunch of pretty powerful buildings. I could try to nerf them all to be more balanced, but these buildings are part of what makes the civs unique - so maybe it's better to go the other way. ie. if they aren't balanced enough, then some of the weaker ones should be buffed.

Anyway, as I mentioned previously, I think the main cheesy thing about Inca is the potential for a quechua rush. So I guess it makes sense to try to weaken that strategy with minimal effect on other 'more legitimate' strategies. We'll see how it goes. (I think the early parts of civ4 in general are a bit too chancy and unbalanced, but that's another story.)

--

The problem with slavery is that it makes building with food more efficient than building with hammers until your cities are big enough that you would want to run caste for the specialists and/or workshops. Rushing as an urgent measure is appropriate, rushing as the main method of production just seems like poor design. Add on top of that the usefulness of whipping to manage the happy cap, and the fact that it's the only rush production available before democracy unless you build/capture the pyramids, and using universal suffrage early from the pyramids is almost always worse than using representation. I think you may underestimate the useful life of the whip. Also, serfdom comes right around the same time as caste system in most games, so it really doesn't have much of a role.

Other possible ideas for changes: make the unhappiness penalty last longer or scale with number of citizens whipped. Reduce the hammers per citizen to 25 or so. Make it so every time you whip it fully empties the city's food bin, eliminating some of the efficiency granted by the granary. Make slavery high upkeep. Make the slave revolt event built into the civic so it triggers even with events off. Just throwing out some ideas, take from it what you will.

Just my humble opinion here - on the fun factor - if free speech of all things deserves the nerfhammer, then slavery does too. I understand that culture works differently and all, but you did basically nerf an entire victory condition. Protective AI's whipping defenders every turn makes early wars such a pain. I usually just forget about war before catapults unless I get invaded. Is the game more fun if slavery is weaker? I say yes.
On the topic of changing slavery, I want to be careful not to change it in such a way that removes interesting elements of strategy from the game. There are some pretty bizarre aspects to slavery, such as the ability to speed up Wonders in some circumstances by switching to something else and whipping it to get overflow hammers onto the Wonder you are trying to build. That's weird, and it's not something I'd deliberately choose to put into the game, but nevertheless I think it's an interesting technique which takes some planning and some thought and so I wouldn't want to remove it from the game. Another example is whipping to keep cities happy. That's also a weird technique, since the main penalty of whipping is meant to be unhappiness! I think it would be a shame if slavery was nerfed in such a way that made the game more passive and removed interesting strategies, and I don't mind that it's generally more powerful than the other civics as long as there are at least some situations where the other civics are the better. ... maybe it could afford to be high upkeep though.

By the way, Free Speech definitely truly really did need the nerfhammer. It was absurdly powerful with the K-Mod culture spreading changes. Even after the nerf it's still difficult to hold borders against a Free Speech civ without using Free Speech yourself.

Karadoc,

I have been wanting to trade with Mao Zedong for forever, he has part of my christian religion, but hasnt converted yet, and is pleased with me, but for more than 100 turns wont trade techs with me.

Is this a bug?
It's not a bug. In the unmodded game, the AI would simply convert to the first religion to spread to one of their cities. I decided that this was poor strategy, and too biased towards the early religions. In K-Mod, the AI will only convert if some percentage of their cities have the religion or if they founded the religion themselves. In your case, Mao only has the religion in 1 of his 8 cities. He doesn't think it's worth having a revolution for that.

However, I just checked the code that handles this and I found that there is a mistake in it which makes it unlikely that civs will convert until they have a few cities. (At least, I assume it is a mistake. I wrote it a long time ago; maybe I wanted it to be like that!)

Incidentally, your save game isn't using the random personalities option that you and noto2 were talking about. It is only using unrestricted leaders.

This mod on Noble seems to be a bit easier than BBAI on Prince. In general I feel that the tech boost for AI for Prince and higher is a bit dull way to make the game harder. It would be interesting to know more about the design of difficulty levels. As I understand from some of the BBAI xml files, some of the settings make life harder for everyone, and some of the settings differentiate between AI and human (probably on any difficulty). It is a bit unclear what the free happiness/health amounts should "ideally" be and whether the choices benefit human more than AI or not, for example.
So far I haven't touched any of the defining features of the different difficulty levels. The only bonuses the AI gets for different difficulties are shown in CIV4HandicapInfo.xml (which isn't part of K-Mod, because it hasn't been changed). One of the advantage of not changing that stuff is that it allows players to more easily compare how much the AI has improved compared to the unmodded game. (Whereas if the AI's bonuses had been changed, it wouldn't be easy to tell if the change in difficulty was due to the AI or due to the difference in the bonuses the AI gets.)

Sometimes I think that maybe I should change parts of the code so that the AI doesn't use all of its best tactics on lower difficulties, so that novice players don't get too disheartened - but I don't think the AI is that good anyway. I think it probably only makes sense to have the AI play below the best of its ability if the difficulty level is such that the human player gets more artificial bonuses than the AI player - and that only happens on Warlord and below. Until I hear someone complain that the AI is too sneaky on Warlord, or something like that, I think I'll probably not implement any AI differences like that. Ideally, I'd like for changes in AI tactics to be the only differences between the difficulty levels. But I don't think the AI ever going to be anywhere near smart enough to beat expert players without artificial bonuses, and so we're stuck with the current system.

It was interesting to notice that religions can now spread to cities with even 2 existing religions. Though by my estimation they didn't spread as well to cities with no religions (I played a relatively isolated game without religions until later game). About new religions replacing old ones (at least with missionaries) - the only thing this meant to me was: If I were building a temple while the religion died, what would happen to the production process? This didn't happen though.
The probability of spreading is roughly the same - but it has been tweaked a bit so that religions are more likely to spread to larger cities. If a religion dies out while you're building a temple of that religion, the city is forced to switch to building something else - but the progress on the temple is not lost. You have to get the religion back into the city in order to resume the production of the temple. It can be a bit annoying, but it's relatively rare - and generally avoidable if you just build the temples of the weaker religions first. (Religions are weak if the holy city is far away and if the religion was founded a long time ago.)

I noticed that a colony gets free military units in each city when founded. This is completely unrealistic and unfair towards everyone who is at war against the new, suddenly appeared alliance. It would be more fair and more fun if the colony only got the cities - and that it would require me to defend it against any immediate threats. This also applies to cities I liberate to the colony. Additionally: the attitude bonus the colony gives me should depend on the amount of cities it had when founded. Otherwise I can - in a typical conquest case - first form a minimal colony and then liberate new cities to it for free attitude bonus (I'm not sure how much the attitude matters though).
Regarding the attitude bonus and the gifting of extra cities to colonies - it's actually not always easy to exploit that. When liberating the colony the game automatically choose all the cities that would be appropriate for the colony - so you can't hold back cities to gift later. You essentially have to found the cities after the colony has already been liberated, and then hope like hell that the new colony actually wants to accept them (because otherwise you might get stuck with a dud city that you don't want...) Nevertheless, I think you're right that the attitude bonus should be more dynamic. I probably won't change it though, mostly because I think the problem is too big to fix without a heap of other changes. For example, I think the gifting of workers and military units to the new colony is a really very helpful to them, but it barely affects their attitude - and the gifting of settlers could be just as useful to them as a new, but again the settlers don't affect their attitude.

The attitude bonus from liberating cities is a bit problematic in general. It's possible to declare war on someone; conquer their land, and then give back a bunch of their cities to end up with more positive relations than you had before declaring war! It doesn't really make much sense, but again it's not really easy to fix.

I notice there is some interest in tweaking some weak or strong details. The most obvious one IMO is the financial trait. How about limiting the bonus to cottage-type improvements only? This would almost give room for a seafaring trait. Also, the free +1 :) from charismatic could be removed.
I think it's fair to say that the Financial trait universally powerful. ie. it's powerful in all stages of the game, and it's not situational, and it doesn't really need the player to do anything special to leverage the bonus from it. I've often thought that it would probably be more balanced with the other traits if it only gave a boost to tiles with 3+ rather than 2+ (and it could then have faster production of banks or something like that to compensate for the massive nerf). But... well I generally lean in favour of not changing stuff, and I figure it doesn't really matter if not all the traits and civs are equal. Some people enjoy deliberately choosing weak leader and stuff like that... so I'm not sure, and I don't intend to change it in the near future. Incidentally, I reckon the Cultural trait is probably top-tier in K-Mod. I sometimes think that maybe it should lose it's production bonus to colosseums, since colosseums have been buffed and culture in general is much more important - but on the other hand, it's probably still not more powerful than Financial anyway!

Edit 2: So I finished reading through the changelog. I pretty much agree with almost everything you have done except for possibly this

"Tech trades in which the receiving player is more then 2/3 of the way through researching the tech or when the tech is behind the 'game era' no longer count towards tech trade memory."

Does 'game era' mean the players current era? If so doesn't that result in strange game play strategies such as prioritizing research one tech into the next era so you can then back trade for what you want without any tech memory. If that's the case shouldn't it be 'game era -1' instead
The 'game era' is the average of all the 'player eras', rounded down. So that will almost always be less than or equal to the player era. However, it actually does use game era - 1 now as you suggested. When I first made that change it didn't need the minus 1 because the game era average included the era of the barbarians, which is always behind the other eras and so the game era was always dragged down by that - but later on I removed the barbarians from that average (so that it didn't get screwed up when barbarian are turned off) and so the minus 1 was needed. — I see that the older version of this change is one of the things I left in the 'notable changes' list at the bottom of the shortened changelog. I'll edit it now so that it has the minus 1.

Negative money cost number stays yellow if there is enough money for the next turn, otherwise red
There's an option for that in the 'BUG options' screen.
I like this mod, but I'd like to set the diplomacy sidebar to show civ names instead of leader names, like in RFC and BUG mod.
There's an option for that in the 'BUG options' screen.
The default espionage weight is 1. This should be 0 to avoid the situation where the player mistakenly directs espionage to newly met civilizations, when the intention of the player is to focus EP spending.
If you want to focus EP on one civ, you should set the weight to 99 against that civ by right-clicking the + button. After I implemented this shortcut, I changed the default value 1 so that players could have uneven espionage distributions without completely neglecting EP spending on new civs when they meet them. (The shortcut is also very handy if you want to focus points for awhlie but you already have uneven weights that you don't want to mess up.)
 
There are various not-so-well documented details regarding improvements. Watermills can only be built in graphically correct spots (secret) -> build-order dependency for the end result (annoyance). The cottage build button doesn't show up if the tile is plains+jungle (check for 0 food, even when valid?) (surprise). Cities spread irrigation, but only when on flatlands (not 100% sure about desert now) (secret). IIRC cottages can be built on tundra only next to river (secret). IIRC only *worked* mines can generate new resources (secret).
I can't think of any viable way to communicate the secret info about the watermill placement, or fix the problem of it being dependent on build order. I think the cottage thing can be easily fixed. I'll look into that a bit later. Cities spreading irrigation... you're right that it's 'secret', but I can't think of a good way to communicate that. Perhaps it should be in one of the loading tips. That's where a lot of hidden mechanics info goes. (By the way, cities on desert do spread irrigation. That's a useful trick sometimes when it would otherwise be impossible to irrigate particular areas.) -- You're right about the cottages on tundra, and again it is not communicated by the game; but I think it's wrong to single that case out. Here are some more things: mines can only be built on hills unless there is a mineable resource. Windmills can only be built on hills. Cottage can be built on grass hills but not plains or desert hills, etc. In general there are a heap of different conditions for each improvement. Perhaps the conditions should be listed in the civilopedia, but for me that's pretty low priority because it's pretty easy to pick up just by playing the game, and it isn't very important if players don't know it. The city irrigation thing is not so obvious though, and it can sometimes be important for planning farm placement and city placement...

The hanging gardens doesn't always give +1 pop (if city size is 1? if city has 0 food in storage?), even when the description says so.
I don't know of any situation where the hanging gardens doesn't give the +1 pop. I've just looked at the code and I can't see any reason why you wouldn't always get the +1 pop in all of your cities.

The production bonus from the apostolic palace is not in the wonder description (although some civilopedia article somewhat says it).
I agree that that bonus should be mentioned in the mouseover text. What 'civilopedia' article says it has that bonus?
 
Aha! I think I just realised what was causing the chokepoint problem (I don't think it is related to the old odds problem with collateral untis). Unfortunately, it might be somewhat tricky to fix...

Here's what I think the AI was doing:
  1. The AI wants to attack your city, and it thinks it can walk there. So it starts walking.
  2. It gets to the choke point, and decides that it might be easier to go by boat, so it start walking back to its city...
  3. but when it gets just a couple of steps away, it no longer has sight of the choke point - it doesn't remember that it is defended, so it changes its mind about the boats and starts walking back to the choke point.
  4. this indecisive back-and-forth continues indefinitely, because the only knows about the defenders at the choke point when it is able to see them.
Does that sound like it would match what you saw?

So... that might be kind of tricky to fix. The obvious solution is to just allow the AI to cheat - let it know the defenders are there even if it can't see them. But I don't really want to do that.

The AI doesn't currently have any way to remember any tactical information about its enemies. It doesn't remember where any units are ever - that's the justification for allowing the AI to cheat in the first place. -- I'd rather not have to implement tactical memory just to solve this particular problem.

I'll have to give it some more thought.

Why not have the AI leave a unit nearby to keep an eye on the choke point? AIs should definitely perform surveillance.
 
I am getting desync errors in multiplayer sessions. playing with 2 friends. all 3 have k-mod version 1.41 and it is loaded. don't know if it is the mod or something else. tried it >1hour, installing 1.40 now to see if we still have the issue.

desync is normally around round 30-40.


okay, no desyncs with version 1.40
 
I am getting desync errors in multiplayer sessions. playing with 2 friends. all 3 have k-mod version 1.41 and it is loaded. don't know if it is the mod or something else. tried it >1hour, installing 1.40 now to see if we still have the issue.

desync is normally around round 30-40.


okay, no desyncs with version 1.40
Thanks for mentioning it. I'll try to fix it as soon as possible. I hadn't tested multiplayer myself with 1.41, and so I just assumed that I hadn't broken anything. I've got no idea what's wrong with it at the moment, but I'll try to work it out.

Why not have the AI leave a unit nearby to keep an eye on the choke point? AIs should definitely perform surveillance.
Well, the AI does do recon missions with spies and stuff like that - but that's just for general info. It's not especially for the purpose of working out whether or not a choke point is blocked, and frankly I think it would be a bit weird if the AI was told to just station a spy at each chock point just to know whether or not it has to go by boat to get around it.

In any case, that particular problem was fixed ages ago. To fix it, I gave the AI some (very basic) memory.
 
@Keindorfer, I've just played ~120 turns in a multiplayer game, and there were no OOS errors. I also skimmed over all of the code changes since v1.40 and I didn't see anything suspicious. (Although I did find a mistake which would slow the game down a little bit.)

So if you've got time, I'd like you to confirm again that this problem happens when you are both using K-Mod v1.41. When checking, delete the entire K-Mod folder from both computers before installing the new version - just to be completely sure that everything is correct. (And make sure you're installing it to the BtS mods folder, and not the base Civ4 mod folder and so on.)

If there are still OOS problems, I'd like a few additional pieces of information: Are you using simultaneous turns? Are you using a pitboss server? Are random events on? Do the OOS errors happen often or rarely? When you play on v1.41, are you starting a new game or loading an old game from a v1.40 save?

Currently my best guess is that it's simply a matter of something going wrong when you installed v1.41 in the first place. If that isn't the source of the problem then I still have no idea what is - because as I said, it worked for me, and I didn't spot anything that would cause OOS in the recent changes.
 
hello karadoc,

im so happy your here and released 1.41.
you are the man!

i can see the the github isnt updated with the source?


i ran into an infinite loop, that i bypassed by several loads,
but, i hope i solved it by changing the sdk , i give you this attached screen - seems that something that involves great spy, auto run, are getting stuck, in order to solve it i added in the "=" mark as in the picture, and the loop/sdk error went away - can you take a look and tell me if im right?
i use only your mod for the dll, i didnt add nothing more, just changed the xmls.
Spoiler :



thank you in advance , your awesome as usual.

*
p.s
i dunno if you came across it yet, but platyping has done some great ui things, in my build of your mod, i switched al of the python, i work with platypings ui, and removed bug (did only pyhton switch, no sdk, so i will still work only with your vanilla code).

**
p.s.s

every now and then i get some odd sdk errors, but no game breakers, im running the dll on debug, would you like me to keep uploading errors like that?
ill be glad to help track more errors.
 

Attachments

  • infinite.jpg
    infinite.jpg
    435.7 KB · Views: 519
Okay, we get the problem every time with 1.41.

Playing with 3 people over hamachi. random events are on, problem always occurs between round 15-40. we are using simultaneous rounds and random events, the desync comes always at the beginning of a round. we are starting new games with 1.41.

all 3 mods are installed correct but the numeric value of sync is identic for 2 people and the third always differs, but we can't figure out a problem with his installation, all is up to date.
now we decided that he has to reinstall, hopefully a fresh installation gets rid of the problem.

edit: new installation didn't helped, still the same problem
 
@keldath, the change in your screenshot cannot have fixed anything, because those FAssert things serve no purpose other than to provide debug information. ie. `FAssert(iScoreThreshold > 0);` will bring up a popup saying the the assertion has failed if iScoreThreshold is not greater than 0, otherwise it will have no affect. Also, FAssert is completely disabled when using a 'release' version of the dll (ie not the debug version). So that change can't be the fix to whatever problem you were experiencing.

By the way, when you say 'infinite loop', do you mean that the game stops being responsive and stop advancing turns, and nothing happens whatsoever? Or do you mean that you get an error popup saying that there is a unit 'stuck in a loop' in CvSelectionGroupAI::AI_update? Usually if there is an AI bug which causes a loop, there is a particular part of code with that error message to catch the problem and allow the game to continue.

In general the error messages you mentioned are only very useful when I see them myself. Because when I see them myself I'm able to stop the program right at the point of failure and see what's on the stack and so on to find the exact cause of the problem, whereas if someone just reports that they've seen the error then all I can know is that somewhere somehow there is a way to make the error happen - but that's all I know. It's still good to know what kinds of failures people are seeing, but in general I probably can't do anything about it unless I can find a way to reproduce the problem on my own computer.

Also, if you're using some other Python code from some other mod, it's quite possible that the problems are being caused by the Python rather than from the dll. Unfortunately, the dll isn't designed to be bulletproof — there are many things you can do in the Python part of the code which will cause the dll to crash. So, often if you are seeing a lot of those assertion failure error messages, it may well be because of changes in the Python code.

Roughly speaking, if everything is working correctly there should be none of those debug popups at all. (I know of a couple of rare cases which aren't bugs but which do trigger those popups; but other than those, I try to fix the problem on the spot whenever I see it happen.)


--

@Keindorfer, thanks for the info. I'll continue looking into it. I think it's interesting that v1.40 works for you, and that v1.41 is consistent on two of your computers but not on the third. It's difficult to tell if there is a new bug in the changes made in v1.41, or if it's an old bug that manifests more strongly in v1.41 - or something else.

In the mean time, I've got a guess for you that may help work around the problem. My guess is that the computer that is out of sync with the others is using a different operating system. ie. Either you have two computer on Windows 7 and one on Windows XP, or two on XP and one on 7. If this is the case, I suggest that you tell the Windows 7 computers to run the game in Window XP compatibility mode. – Ideally you shouldn't need to do this to make the game work, but it often makes these types of problems disappear. (Presumably it fixes the problem because it makes the bug affect all the computer in the same way - and thus keeps them in sync.)

--

If anyone else gets any OOS errors, I'd like to hear about it.

(I've actually found one bug already which could potentially cause OOS errors, but the bug is very rare and has existed for many previous versions of K-Mod, including v1.40. So that can't be the source of this particular problem.)
 
Thx for the answer karadoc. we are all using windows 7 64 bit versions, and we are running out of ideas to fix this issue, so we continued playing on version 1.40. i think it is not a big deal if nobody else has this problems, it has to be a problem from our third pc. if we start a game without our 'problem child' we don't get OOS errors.
 
hello karadoc,

thank you for the extensive answer.
as for my fix - after i added the "=" i compiled a debug dll - and i did not have this particular debug warning, so i guess it worked.

when i say infinite loop, i meant that the game is stuck on "waiting for other civs", the game wont advance in turns.
no error is received.

can you read what the errors means in the screen shot i gave you?


there isnt many popups in my mod, but i do get some regulars.
when i look at the call stack in vs, i cant pinpoint the soyrce, only narrow it to something, but thats cause ive only just began to use debug mode with vs.
wish i knew how to read the stack more :)

when i said i removed the pythons - i dont thing i did something that will affect the dubug things, i think its working well, maybe u can use platy work also some day, its realy nice and simple.

i will upload any serious debug stuff if i see any :)

thanks.
 
Karadoc - regarding the financial trait. It's quite clear the developers intended it to interact with water tiles, so please don't screw up that interaction. If you did nerf it to boosting only tiles with 3C, you should at least make it apply to water as well.
However, I'm going to say that I don't think the FIN trait needs to be nerfed. It's really not all that powerful late game, the ORG trait makes a bigger difference then. The FIN trait's power really comes in the early game with boosting cottages early on. Is it overpowered? I don't think so. Creative, as you pointed out, is very powerful, so is charismatic. I think the only trait in the game that is definitely underpowered is protective, and that's mainly because it was poorly thought out - hiding behind walls/castles just doesn't cut it in this game. Is FIN a better trait than EXP? That's debateable. I'd just leave FIN alone if I were you. If you want to change a trait I'd suggest looking at protective. I think the rest of them can be left alone.
 
when i say infinite loop, i meant that the game is stuck on "waiting for other civs", the game wont advance in turns.
no error is received.

can you read what the errors means in the screen shot i gave you?
I don't see any errors in the screen shot from your other post, so I'm not sure what you mean by that.

as for my fix - after i added the "=" i compiled a debug dll - and i did not have this particular debug warning, so i guess it worked.
I think you're looking at this the wrong way. The debug popup is not itself a problem. It's a sign that there might be a problem somewhere else. Removing the warning is easy. We can do that just by deleting the FAssert part completely, or by changing the condition in the FAssert to something trivial such as `FAssert(true)`, or we can simply compile the 'release' version of the DLL which has all of the FAsserts automatically disabled. But to do that would be to miss the point of why they are there in the first place - which is to serve as a warning that there might be a bug nearby.

In that particular case, I wrote FAssert(iScoreThreshold > 0) to warn me if the great spy was ever choosing to wait with a zero value of that number - because I expect that would be extremely rare if everything else is working correctly. iScoreThreshold == 0 at the end of that function suggests that Great Spy can't find anything of any value to do whatsoever. They can't settle in a city, they can't rush any buildings, they can't make a golden age, and they can't bulb a tech. Why would that ever happen? One way it could happen is if all of the civ's cities on that island got captured before the great spy was used - but that's pretty unlikely.

As it turns out, thanks to your posting of that assertion failure I was about to find a bug which could cause that condition to fail. But I don't see how it could cause an infinite loop.

The bug is that in the first part of the function, the great spy uses the flag "MOVE_NO_ENEMY_TERRITORY" to look for appropriate cities to move to, but at the end of the function when it actually performs the move it doesn't use that flag. So what can happen is that the spy can move into enemy territory while on its way to a friendly city; but then when it checks again for where it should be going, it finds it can't go anywhere without moving through enemy territory (because it's already in enemy territory). And so the spy decides it has no option other than to just wait*.

That on its own doesn't create an infinite loop. It only makes the AI waste time with its great spy. If it was the other way around it could create an infinite loop though... ie. if the great spy had to move through enemy territory to get to its destination, but MOVE_NO_ENEMY_TERRITORY was applied for the actual move - then the spy would be ordered to move and the move would be immediate canceled over and over. But as I said, that's the reverse of the bug I found - so I don't yet see how the infinite loop you saw actually arose.

(* Also, for the iScoreThreshold > 0 condition to be violated, the civ must actually have two great spies at the time - otherwise the spy will have a non-zero value for waiting so that it can pair with something else for a golden age.)

If you want to change a trait I'd suggest looking at protective. I think the rest of them can be left alone.
I'm currently not looking for changes in any of the traits. But in my view, Protective and Aggressive are the weakest two traits. And although everyone seems to think Aggressive is fine and Protective is weak, I think you're all living in the past! I reckon Protective is at least as strong as Aggressive in K-Mod, because the Drill promotions are so much better than they use to be. Drill now gives better protection against collateral damage, and it unlocks all the same promotions that the Strength promotions unlock. So it's a pretty effective promotion for both offense and defense. Maybe it isn't useful if you are attempting and early-game rush attack, but it is certainly effective for defending against rush attacks from enemies!

Anyway, as I said, I still think Agg. & Pro. are the two weakest traits. The faster jails and faster security bureaus added in K-Mod help a little bit, but I think the key problem is that neither of them give any significant peace-time advantage advantages; and I'm not sure what peace-time bonuses would be appropriate for them.
 
A so-so idea on how to boost protective trait: units roaming around a city for over 1 turns get damages like hurt by this:

Spoiler :







Not only this boost in a inimaginable way the defenses against pillaging in the 9 tiles around the city, but that works along K-mod typical AI attitude to roam around and rampage on improvements.

Of course, the dangerous point here is abusive on weak bait units to attract stacks near murder holes. Would make engineering tech a precious tech...somehow...
 
The bug is that in the first part of the function, the great spy uses the flag "MOVE_NO_ENEMY_TERRITORY" to look for appropriate cities to move to, but at the end of the function when it actually performs the move it doesn't use that flag. So what can happen is that the spy can move into enemy territory while on its way to a friendly city; but then when it checks again for where it should be going, it finds it can't go anywhere without moving through enemy territory (because it's already in enemy territory). And so the spy decides it has no option other than to just wait*.

This reminds me the GEngineer bug where an AI passing by a foreign city building a wonder would automatically rush it.
 
Top Bottom