Advanced Civ

@giorgio1234:
Would appreciate if you, giorgio, could check whether the crash still occurs with that DLL placed in the mod's Assets folder. Since this seems like a rather long shot, I've also added assertions that should result in an error popup at the end of each player's turn (e.g. "Turn of player 0 ends"); just to narrow down where the crash occurs. May want to use windowed mode to avoid having to Alt+Tab whenever one of those popups halts the game. That is, if there's still a crash, I would like to know the player id in the last error popup.

Hi f1rpo,
thank you for your support.
The crash still occurs with the new DLL. End-turn messages reach player 6, then I get the attached assertion two times, and then the game crashes.
More info: I'm using AdvCiv_v1.06-beta version on Windows 7 system.
Thank you very much.
 

Attachments

  • endPlayer.png
    endPlayer.png
    25.3 KB · Views: 33
  • failure.png
    failure.png
    20.9 KB · Views: 33
Last edited:
I also tried the attached DLL. The game crashed in my case also. The popups were similar to those giorgio1234 received. Note that in my case I am player 16, as the game in question is from the Earth18 scenario (where I played as Huayna Capac). My voluntary vassal (Ashoka) canceled the agreement. Huayna Capac is team 16 in that scenario, and India is team 2.

I first got the popup in the image titled "1-first-popup". Then I clicked "ignore once", and then I got the second popup. After clicking "ignore once" on the latter popup, the game crashed.

Also worth to mention: After producing these popups, I wanted to double check that I had restored the original DLL. When ending the turn, I actually did not have the game crash when Ahsoka canceled the agreement. Getting curious, I then quit to main menu, reloaded the same save, and ended the turn again; then the game crashed. So clearly this issue is not a "crash 100% of the time", as I originally stated...
 

Attachments

  • 1-first-popup.png
    1-first-popup.png
    22.3 KB · Views: 30
  • 2-second-popup.png
    2-second-popup.png
    22.4 KB · Views: 33
well,
i lost my autosave with that situation of the diplo offer. i thought i had it.
i turned on the UIAI per turn.
so ill start a new game in a few days and try to reproduce.

oh and about the gp not fitting the screen - it works for me only if im with 1600 resolution and above (windowed)
cheers.
 
Last edited:
@giorgio1234, @SantaFlagship: Thank you both. I think I've found the issue; looks like my code was deleting the vassal deal twice (among other desecrating acts). That would be consistent with the unpredictable behavior and the failed assertion about one of the players no longer being involved in the deal. I'm pretty sure that something was wrong there, but I hope you can also confirm for me that it's fixed properly; DLL attached, again with assertions enabled, but without the one that had triggered on each turn.

Not sure about Santa's reported assertions. The IDs in the assertions start at 0, so the human master would be 15, Montezuma 16, Roosevelt 17, Hatshepsut 0 and (the vassal) Ashoka 1. If Roosevelt and Hatshepsut are dead, then the crash might've occurred on the vassal's turn – which is what I'd expect. But I'm surprised that it didn't crash at the end of the vassal's turn (no assertion about player 1 ending his turn). Well, maybe I'm just confused, we'll see how it goes.

The popup still doesn't allow declaring war, and stating the reason ("we don't like you enough") for not wanting to become a peace vassal is unhelpful when canceling a capitulation deal, but I know how to fix that once the game no longer crashes.
 

Attachments

  • CvGameCoreDLL.zip
    2.4 MB · Views: 23
i lost my autosave with that situation of the diplo offer. i thought i had it. i turned on the UIAI per turn. so ill start a new game in a few days and try to reproduce.
Maybe I'll also keep an eye out for situations when a human could join a war just to get lucrative peace deal.
oh and about the gp not fitting the screen - it works for me only if im with 1600 resolution and above (windowed)
Fits for me at 1400x768. If you use a greater height, then it could well be that the width has to be increased further to get all progress bars on a single line.
 

Attachments

  • Civ4ScreenShot0001.JPG
    Civ4ScreenShot0001.JPG
    188.2 KB · Views: 31
Hi F1rpo,
the crash doesn't occur anymore with the new dll.
Thank you.

Only for your information (not related to this problem): the attached assert appeared some turns later, but it didn't interrupt the game and I could keep playing without problems.
 

Attachments

  • assert.png
    assert.png
    33.7 KB · Views: 26
I think I've found the issue; looks like my code was deleting the vassal deal twice (among other desecrating acts). That would be consistent with the unpredictable behavior and the failed assertion about one of the players no longer being involved in the deal. I'm pretty sure that something was wrong there, but I hope you can also confirm for me that it's fixed properly; DLL attached, again with assertions enabled, but without the one that had triggered on each turn.

Confirmed! I tried ending the problematic turn 6 times. I loaded the save three times without closing the game, and closed the game before loading the save the remaining three times. I did not have a single crash.

Not sure about Santa's reported assertions. The IDs in the assertions start at 0, so the human master would be 15, Montezuma 16, Roosevelt 17, Hatshepsut 0 and (the vassal) Ashoka 1. If Roosevelt and Hatshepsut are dead, then the crash might've occurred on the vassal's turn – which is what I'd expect. But I'm surprised that it didn't crash at the end of the vassal's turn (no assertion about player 1 ending his turn). Well, maybe I'm just confused, we'll see how it goes.

My bad for getting the indices wrong! The dead civs in that game are: Egypt, Rome, Germany, Japan, Greece and Spain.

EDIT: giorgio posted his reply when I was writing mine. After reading his comment, I decided on testing whether I could get the same assert they received, and I managed to once, but only once (out of 4-5 tries). The popup-text was identical to the letter. Unfortunately I forgot to have the game in windowed mode, so I had to kill the game, but I have no reason to expect the game would have crashed had I clicked "ignore once", given giorgio's statement.
 
Last edited:
So, would anyone here be up for an advanced civ GOTM-style game, where we play the same turn-zero save and everyone does a little write-up on how it went, so we can compare notes?

Will admit I am very partial to my own settings (see sig below), but if you are interested, please let me know.
 
Hi! I'm afraid my question does not have much to do with this particular mod (which I will try), but perhaps you might be able to answer: what is it exactly that Python handles in CivIV? Is it simply a matter of interface? Is the AI completely ruled by C++? I'm asking because I'd be interested in making my own changes to how the AI functions (by using modern AI techniques instead of just complicated chains of if-then statements), and I myself am much more familiar with Python than with C++ (although this could prove a useful learning experience for me).
 
what is it exactly that Python handles in CivIV? Is it simply a matter of interface? Is the AI completely ruled by C++?
Yes to both. I've noticed your posts in the K-Mod subforum too – the AStar Python utility in K-Mod is part of BUG (purely a UI mod), which uses it for highlighting tiles that human units can reach in one turn. (But that feature is disabled by default.) For AI pathfinding, an A* star implementation in the EXE (C++, closed source) was originally used; I think that's the only example of AI code outside of the (GameCore) DLL, and K-Mod has reimplemented that more efficiently in the DLL (KmodPathFinder class).

There are also a bunch of "callback" Python functions (CvGameInterface.py) through which modders can alter the game rules and, in a few instances, also the AI. However, the AI callbacks and AI functions exposed to Python by the DLL are too few to rewrite significant portions of the AI in Python; I think the idea is only to make minor additions (perhaps for making the AI at least somewhat capable of using some novel element of gameplay) in Python that run before or after the AI code in the DLL.

It shouldn't be too difficult to give Python more control over the AI by exposing more DLL functions and adding more callbacks, however, Civ4's Python system uses Python version 2.4, and my understanding is that integration with a more recent version would be a major undertaking. (Similarly, the DLL is stuck at Visual C++ 2003.)

I don't think performance – overhead of calls between DLL and Python and just interpreted code being much slower than compiled – would have to be a major obstacle so long as pathfinding (at least in AdvCiv the biggest time hog) and other low-level routines remain in the DLL. For example, I expect that a good part of the AI war planning logic that I've written would be fast enough in Python.

Your posts bring to mind this AI project for the Caveman2Cosmos mod. [Edit: A month later, all threads and posts by @JaguarDemon are gone. Don't know what's up with that.] The thread linked there about the abandoned Machine Learning project also touches upon the issue of upgrading the Python system. I don't believe (for one second) that a full re-design of the AI is feasible as a one-person project, let alone for the most complex Civ mod (but, then, I've only skimmed through that thread). Imo the most efficient approach to improving the AI in one person's spare time is to work with what we have as much as possible. That's not to say that this will accomplish a great deal – I'd agree that BBAI, K-Mod and AdvCiv haven't accomplished any quantum leap –, and of course it's not all about efficiency. Engaging with those old programming languages and largely unstructured AI logic is somewhat dispiriting and not necessarily all that useful as a learning experience.

Maybe you could tackle some well-defined subproblem that the AI needs to solve? For example, I've replaced the AI logic for war planning (essentially scrapping the existing code, i.e. not exactly heeding my present-day advice) and have largely rewritten the city placement AI. [Let me link to some code here, let's say, the entry points UWAI::Agent::doWar and AIFoundValue::evaluate.] Unit movement (CvUnitAI), i.e. worker management and combat tactics, remains a weak spot. Those are big chunks to bite off, however, that seem pretty tightly coupled with the rest of the DLL. Difficult for me to imagine moving that to Python.
 
Last edited:
So, would anyone here be up for an advanced civ GOTM-style game, where we play the same turn-zero save and everyone does a little write-up on how it went, so we can compare notes?

Will admit I am very partial to my own settings (see sig below), but if you are interested, please let me know.

If we are somewhat compatible difficulty-wise, I think this could be fun! About your preferred settings:
  1. Huge Marathon -- By far the most important settings imo, and I prefer huge marathon to the point of playing it exclusively.
  2. Totestra -- I usually play Fractal, but recently I've played with the PerfectMongoose map, which I liked. I have never tried this map type, but I'm up to try it!
  3. 18 civ -- I tend to stick with the default 16 civs for huge maps, but 16 -> 18 is not too a big deal in any case, so this is fine by me.
  4. rnd personalities -- I used to always have rnd personalities enabled, in the age where I didn't play with mods. With Advciv specifically, I prefer non-random personalities, but it's not something I feel strongly about.
  5. no tech trading -- About 33% of my Advciv games so far have had this option enabled, but as time went on I gravitated towards playing with tech trading. Again, not something I feel super strongly about, especially if "no vassals" is enabled. I'm unsure how enabling this will affect my overall playing strength, as it's been some time since my last "no tech trading" game.
  6. no vassals -- This is a big one. In vanilla I used to enable this option in half of my games. However, one of the (many) huge selling points for me with Advciv is the improved vassal mechanics, especially capitulated vassals. I've played every Advciv game with vassals, and I love them in this mod. This I do feel quite strongly about...
  7. no goodie huts -- Not significant to me, usually I play without them.
  8. no events -- I usually play without events also, but either is absolutely fine by me!
Lastly, about difficulty. Looking at your profile, I suspect you're probably a notch above me skill-wise. In Advciv I win very reliably at Monarch, but not reliably at all on Emperor, which is the difficulty I play nowadays. So far I've won less than half of my Emperor games -- although I have a bad habit of playing too fast in general. This is something I probably wouldn't do in a GOTM-style game, so my Advciv Emperor win chance might be slightly above 50% if I play at my best. This is, however, only guessing on my part. Anyway, Immortal is too much for me in Advciv!
 
Excellent @SantaFlagship, so that's two. If we can find a third player, I'd set this up.

@keldath , how about it? :)
 
Replying to @Jorunkun, @SantaFlagship and (a little bit) to @xyx. (But those users shouldn't feel obliged to read all of this.)

Barbarians:
Spoiler :
On the barb side, I think the settings are tough but playable. The AI certainly suffers from them as much as the player does. In every game, I've had two or more "failed states" due to early barb invasions. These are Civs that have had one of their cities taken (often from galleys) and stay on the back foot for many centuries thereafter. I think this is fun, but barbs sure make for a more swingy game. If you lose one city to them, it can be a major setback and they are really hard to dislodge once they build walls or connect a strategic resource. But again, I like it like this.

If you were to make barbs a little easier, you might want to consider turning off barb galleys spawning a new crew in the FOW and only allowing them to be crewed in barb cities.
Interesting idea on barb galleys only spawing new crew cities. It might be too big a nerf to them, though. Maybe it's a coincidence, but in my experience land barb spawning is far more disrupting on average than those from galleys -- both for me and the AI.
As I've written before, I suspect that Huge Totestra with 18 players gives each player a lot more space (perhaps 50% more when there is no New World) than the mod normally does, resulting in high Barbarian activity and few early-game wars. I would recommend a smaller map size (Large, perhaps with Low sea level), higher player count (with the 48-civ DLL) or the AdvCiv version of PerfectMongoose, which uses a smaller map grid than Totestra. I don't know if you've customized the Totestra script somehow, but standard Totestra also generates far more Forest than most other scripts, distributes rivers quite unevenly, and takes over the placement of resources and starting sites from the DLL, meaning that AdvCiv changes to those algorithms don't apply.

It could be that the Barbarian placement on Galleys doesn't scale well with the available land. On Standard-size maps, the problem has rather been that seaborne Barbarians are so rarely a factor that it's easy to forget about them entirely and then be, occasionally, caught offguard. In retrospect, it probably would've been better (at least more in the spirit of the mod) to implement Barbarian naval attacks entirely through AI changes, i.e. to let Barbarian land units seek out Galleys. Not going to change that now, but I'll look into curbing Barbarian placement at sea when there are a lot of Barbarian Galleys. Naval attacks being too punishing is also an issue on watery maps.
Also, you might want to have a lower chance for spawning axes and swords until later in the game.
Once the Barbarians have Iron Working (and not yet any Medieval tech), there should be an equal chance of spawning a Warrior, Archer, Spearman, Axeman or Swordsman (on land and at sea). Maybe Warriors should be considered as pre-Ancient units in this context (having no tech requirement), meaning that they'd stop appearing once the Barbarians reach the Classical era. Could then give units that have no resource requirement a higher probability to make Archers more common. I tend to agree that Barbarians are a bit too heavily armed on average if there's still a lot of unclaimed land when the Barbarians reach Iron Working.
AI attitude and trades:
Spoiler :
I find diplomacy (-modifiers) still a bit meh - you get a plus here, a minus there, but they mostly oscillate around cautious +/- 1 for most of the game, except if you share/don't share a religion, raze or liberate cities or find yourself at war together or with one another. I don't have a good idea for how to fix this without making the AI too gameable, but things like open borders and trade should maybe matter more. I like that AIs eventually stop holding grudges about wars long ago but I wish it was easier to make lasting friends. I hardly ever get anyone to pleased, but maybe I just don't understand the system enough though.
You've pointed this out before, and I agree that, without tech trading, relations stay too close to Cautious, even more so in AdvCiv than in BtS. Yes, it would probably be good if the Open Borders and Defensive Pact modifiers could reach +3 when they're especially valuable, e.g. when there are important trade routes; at least when tech trading is disabled. I don't seem to get around to experimenting with that.
Also, I once got a "joint military" struggle bonus from an AI I had just met, when the only opposition I had fought were barbs. Bug or feature?
Probably feature. It is possible to get "mutual military struggle" if you kill barbarians inside an AI's borders. I am unsure if you can do so if you kill barbarians close to, but outside, their borders though.
Should've been fixed by v1.04. So hopefully this had happened only prior to that update. Has to be within their borders to count. Kind of a needless complication (rarely going to be enough to actually lead to +1 relations), but exempting Barbarians entirely from "mutual struggle" could also be regarded as a special rule.
A bug that persists is the AI sometimes offering you gifts of gold per turn, apropos nothing.
Could those be "this deal no longer works" diplo popups? When the AI acquires a tile with a previously imported resource, it'll cancel the deal. Though, even in that case, I think the resource should appear on the trade table - even if the AI is no longer willing to import it. If you can actually accept such an offer and receive free gold, then there's obviously a problem.
That the AI sometimes offers gifts for nothing, not even a peace treaty, has perplexed me too. Mostly it is a resource, so they don't take any losses doing so if they can't sell it to someone else. Maybe they sometimes gift a resource, if they can't sell it, to other AIs as a means to build "supplied us with resources" relationship points? And doing so to the player is unintended? I am only guessing.
The AI will also cancel a deal when the human side has acquired a previously imported resource. But it does sound rather unlikely that you'd both misinterpret those proposals. The AI may gift a resource or tech when the human player is falling way behind, but that's also pretty unequivocal ("you might need this"). I don't think the AI is being clever either, so, probably a bug; I'll wait for a savegame or at least a screenshot. (To actually debug a trade offered by the AI, I'd really need a savegame at the end of the preceding human turn because, on the turn that the diplo popup appears, the AI decision to offer the trade has already been made. It's pretty difficult to get such a savegame because autosaves only happen at the start of a turn; to reproduce an AI offer from there, one typically has to make the exact same choices as before throughout the turn, otherwise the random number generator will likely not end up in the same state and the AI offer won't happen. One of several reasons why it would be nice to, technically, move AI-to-human diplomacy to the start of the human turn.)
Also, they sometimes ask for a ressource at price X, but then refuse their own deal after you click "negotiate".
As for the refusal to accept their own deals, that is intended: AI offers can be one-time offers, so that immediately clicking "care to negotiate?" isn't always best. I'm sure I've read that somewhere in the manual. I even think K-Mod has this as a feature. It can happen with resource and tech trading, and even peace offers.
Right, K-Mod introduced that. (I've extended it to peace offers.)
Revolts:
Spoiler :
On pacifying conquered cities: I really like the changes, as they slow down attackers - but the Ai seems a bit inept at keeping their conquered cities garrisoned. Maybe this is a choice [...]
Can be by choice, i.e. a restive city receiving no extra garrisons to speak of doesn't necessarily mean that the AI is unaware of the problem.
- they deem it more important to keep the advance going, but I've noticed that in some games, some AIs just keep getting revolts and even losing cities due to them. This is probably hard to fix, as the trade-off between conquering more and being able to chew what you bit off is hard to model ... and yet, it's a mjor weakness fo the AI.
AI unit roles are pretty static, so attackers will be attackers pretty much. To suppress revolts, the AI only shuffles defensive units around (and may train additional defensive units too). Keeping attack stacks in rebellious cities when there is nothing to attack anyway ought to be an improvement. AI decisions about where to park aggressive units generally need work; they're often kept in vulnerable border cities or get loaded into transports long before a naval invasion is ready to launch.
Also, I've noticed that unrest potential often goes UP a few turns after you have taken and garrisoned a city sufficiently to keep it quiet, before declining more steeply later on. Why is this?
Sounds like the impact of the city's past peak population is responsible. BtS uses that population count (rather than the current population) for calculating the foreign culture strength, meaning that a large city that loses much of its population shortly after conquest will be difficult to hold onto both in the short term and in the long term – even if the city stays small indefinitely (perhaps due to lack of control over surrounding tiles or nearby cities of the conqueror). And building up up a significant culture percentage can take a long time in a mature city, especially when the population remains small. Simply using the current population would have the downside of encouraging starvation and discouraging growth.

AdvCiv has added a time factor that initially causes the current population to be used, then gradually shifts toward the peak population, then, eventually, shifts back toward the current population. This gives the conquerer some time to produce or sideline a sufficiently large garrison and avoids an implausibly high revolt chance in the long term. That was my thinking anyway ... I still think that it makes sense, perhaps also in terms of realism, to let the foreign culture strength increase for a while. Maybe the shift back toward the current population isn't really needed; though having to maintain a strong garrison for a long time can get tiresome. :undecide:

Of course the whole formula is too complicated (the impact of culture in tiles surrounding the city even more so than the impact of population and city nationality), but I don't think I want to overhaul it at this point, and it is difficult to get right because it's not only relevant for conquered cities but also for flipping cities through overwhelming culture pressure without any prior war. (I'm guessing that the original designers mainly had that latter scenario in mind.)
The effect is that you constantly have to check conquered cities for changes and add or later remove units, which is a bit of a micromanagement headache. Maybe a more linear or predictable fluctuation or degression would help.
A savegame with such micromanagement issues would be helpful.
Game and map options:
Spoiler :
[...]- could remove some options like "aggressive AI (legacy)" or possibly "advanced starts" (does anybody play this?)
You could always hide options that you don't use in your local copy of the mod by setting the respective bVisible value to 0 in Assets\XML\GameInfo\CIV4GameOptionInfos.xml. The only trouble with such local tweaks is that you may have to re-apply them after updating the mod.
I've never touched the legacy AI, as that is, to the best of my knowledge, the K-Mod AI.
As far as war planning is concerned, yes. Though of course my changes in other parts of the AI will indirectly affect war planning; so I don't really know how close the Legacy AI is to K-Mod at this point. I've earmarked this option for removal in case that I feel the need to add yet another option. I've already removed the Complete Kills and No Espionage options – because I thought they're ill-conceived and didn't want to keep supporting them – and restricted the Permanent War/Peace option to scenarios. It's unfortunate that the Advanced Start box sits so prominently at the top, but that can't really be changed.
- could turn the following into radio buttons [...]
Love this idea. It's simple, it's clean, it's efficient. And the options list is long enough.
A more structured layout for the Custom game screen would be the best solution, but, since it's implemented in the EXE, one would have to reimplement the whole thing (I've started a thread about that a while ago), and that's probably not happening.
Also - and I don't know if this a totestra thing - it would be nice if the menu remembered my pervious choices. I always play standard huge maps but keep having to re-select two additional AI civs (for 18 instead of the recommended 16) plus "allow pangeas" and "start anywhere reasonable".
CivilizationIV.ini remembers some settings – but none that are specific to a custom map script and not the player count. The default choices for custom map options can be changed inside the map script file (Totestra.py or so), specifically inside the getCustomMapOptionDefault function, but it's a little tricky because the options and choices are references by numerical indices. (Or you could play PerfectMongoose where Pangaea and New World starts are already allowed by default.)
AFAIK, this is not possible, but you can easily change the defaults in the xml (CIV4WorldInfo.xml for player counts, CIV4GameOptionInfos.xml for defaults)
This works, but will affect gameplay a little. When playing with 18 while the default is 16, AdvCiv will assume that the map is slightly overcrowded; when 18 is the default, the assumption will be that the player density is normal. Seeing that Totestra has a lot more space than the mod assumes, making 18 the default would arguably be an improvement.
Unit command buttons:
Spoiler :
I wish all the buttons would stay in the same place, with ineligible options ghosted (or left out until the prerequisite tech unlocks them). As is, the buttons for unit commands and promotions are added or removed, and thus change position. This can be a real pain if you go through a stack and aqccidentally hit the wrong promotion or order.
Very nice suggestion!
yes, please!
I don't think that's workable. Too many different promotions, and it would be distracting to either have gaps for no apparent reason or grayed out buttons that will never become ungrayed. I'm attaching a screenshot (which doesn't even attempt to align the promotion buttons). Perhaps it would help to insert a bit of space in between groups of similar buttons, e.g.
Fortify/Sleep/Wake/Sentry/Heal — Go-to/Go-all — Bombard/Pillage/Delete — Auto-Explore
promotions — upgrades [both 2nd row]​
Could also make matters worse ... At least this should reduce the hazard and distraction caused by rarely needed commands like auto-explore and (self-)pillage.
Also, I think you should not be able to pillage your own seafood. Speaking of which - in some games, i can't seem to remove city ruins, this may be a bug.
I've made them unpillageable when I added the name of the former city. I felt that players (especially in multiplayer) shouldn't be able to remove that info. And "pillaging ruins" is a bit of a silly notion.
Scoreboard:
Spoiler :
The longer the game goes on for, the more sluggish the interface becomes. I think this has to do with mouse-overs on the scoreboard, because if I turn it off, the game speeds up. This goes away if I then save, end the game, and reload; but eventually returns after some 100 turns.
That sounds like the scoreboard leaks memory. That would be good to know, even if difficult to fix. But perhaps your games just speed up because you save and reload? Games slowing down, with or without mods, is a somewhat widely reported issue – though I don't recall experiencing that personally. And I'm aware that the scoreboard, while expanded, reduces the frame rate a bit, to the extent that animations don't play quite smoothly in large games. This might somehow contribute to the impression that the scoreboard is responsible for gradually slowing the game down. The fly-out scoreboard is, at any rate, inefficient – will redraw itself four times per second while expanded, but that can't easily be amended.
On a related note, I wish the military balance indicator would alwys be displayed on the list, not just on mouse-over.
You can change that by removing the underscore before the 'P' in the "column order" box on the Scores tab of the BUG menu.
Event messages:
Spoiler :
I wish there was more space for the event scroll - in huge games, you get lots of notifications per turn and I sometimes miss the important ones, like wonders being built, because they scroll by too fast. A longer on-screen scroll would help.
I use the Open Event Log option (General tab of the BUG menu), which opens the Event log automatically when there are more than 3 new messages. One can also adjust the timing of the on-screen messages through these variables:
Spoiler :
Code:
<Define>
   <DefineName>EVENT_MESSAGE_TIME</DefineName>
   <iDefineIntVal>10</iDefineIntVal>
</Define>
<Define>
   <DefineName>EVENT_MESSAGE_STAGGER_TIME</DefineName>
   <iDefineIntVal>3</iDefineIntVal>
</Define>
Not sure what the stagger time does; maybe that's the frequency at which additional messages are put on display, i.e. every 3 seconds. These would have to be copied into one of AdvCiv's GlobalDefines XML files.
An old idea of mine is to display messages in the unit command area; here's a mockup. Technically feasible, but too much work.
Citizen automation, blockades:
Spoiler :
Something has changed here, as cities sometimes make clearly sub-optimal choices (such as working unimproved tiles when specialists or improved tiles are an option).
If the worked tile has no advantage at all over an unworked tile or specialist, then that should be amended. Would need a savegame for that. If the unworked tile generates more food than the worked tile, then it might be that the AI is trying to avoid population growth.
I agree, something seems to have changed. Although I cannot state for a fact that the governors are objectively worse now, I too feel like I'm having to babysit my governors more, which clearly isn't the best sign.
Could you narrow down since which update of AdvCiv you've been having this impression?
On this subject, I also wish I could prohbit the city from selecting specialists I don't want (such as priests or spies)
Would be nice, I agree, and doable, but I'm not going to bother with that.
[...] or being able to de-emphasize food, hammers etc. - maybe left clicking emphasizes, right clicking de-emphasizes ...?
Well, there is already Avoid Growth and Emphasize Research (maybe along with Food and Commerce) should pretty much have the effect of avoiding production.
The emphasize buttons generally don't work that well. Often, nothing will change upon enabling an emphasis. It's OK if the AI governor, sometimes, regards one assignment as the best regardless of emphasis, but, if the player sees that assignment and decides to click an emphasize button, then the governor should arguably take the hint and change something. The AI assignment is also not stable – the effect of enabling Citizen Automation can differ depending on the current manual assignment. (This seems to be by design – but doesn't seem ideal.) I would sooner look into these issues than add more buttons.

Btw, I've noticed a bug in the 1.06 beta version: The citizen and production automation buttons aren't highlighted when enabled; will fix.
- I wish the city would revert to working the tiles it did work after a naval blockade is lifted or enemy units have left a tile. With large empires and during war especially, things like re-setting a city to work water tiles that an enemy ship has passed through or pillaged is a major chore.
- same for reverting to the same tiles after you fiddle with the culture slider and cause unhappiness
If production is automated, then this will happen automatically (not sure if immediately or when the turn ends), but, with manually assigned tiles, – nope. Rather than letting the AI remember the manual assignment – and letting it decide whether that assignment still makes sense by the time that a blockade is lifted – maybe the AI could treat citizens whose manual assignment has become illegal as automated. Currently, the AI will only either treat all assignments as automated or none. In the latter case, newborn citizens are still assigned by the AI but are subsequently treated as if manually assigned. For example, the governor of a non-automated city may decide to place the new citizen on one of several available Grassland Forests. If a worker chops that Forest down, no automatic re-assignment will occur. I think the (K-Mod) AI functions can handle a mix of manual and automatic assignments, but the UI would have to distinguish between full automation, full manual control (human can rely on all assignments remaining in place unless they become illegal) and partial automation. Iirc Civ 5 already allows partial automation and the city screen even shows which citizens have been manually "locked" in place.
[...] it's really tedious if barb blockades cut trade routes and you have to re-negotiate them every other turn. That said, I like the ability for blockades to cut trade routes - but maybe they could be auto-renegotiated for the duration of the trade once the blockade lifts.
Maybe this would somewhat resolve itself with fewer Barbarians (see above). Would be nice to get an AI proposal for resuming the deal, but I don't think I want to implement memory about recently canceled deals just for this purpose.
I've also noticed that enemy AIs on islands still had trade relations with other AIs even when I blockaded all their ports in the industrial age+ - bug or feature?
Intercontinental trade routes should've been severed, but, for resource trade, it's sufficient if one side's capital has a trade connection to the other side's capital. So your blockade (hopefully) would've worked only if you had been at war with both sides of the resource trade (like a Barbarian :)). These rules are as in BtS. Maybe not all that intuitive and realistic. I do think that one side being able to reach the other should be enough (e.g. for trading resources across the ocean when only one side has Astronomy), but perhaps a blockade should affect everyone. Maybe I'll change this if there's no devil in the details.
City screen:
Spoiler :
- not sure how hard this is to implement, but what if the city screen showed the city's rank in terms of production, tech etc as compared to the other cities in your empire? The information is available in the city advisor screen, but would be useful in the city screen. As a variant fo this, maybe you could visually show if a city is number one in each category, by adding a glow effect to the respective icon in city view, or some such?
I'd like to see this as well, would come very handy.
BtS has a "Detailed City Info" option (Ctrl+O screen), which corresponds to the "Top Cities" option on the Map tab of the BUG menu in AdvCiv. That shows e.g. a production icon on the city bar of the highest-production city. So that applies only to the city bars on the main map, not the city screen. I don't think it's useful really.

I can see how showing output ranks on the city screen, perhaps only when e.g. Alt key is held (which already shows absolute effects of buildings in hover text), could save time when deciding whether to build a (national) wonder. Are there other common situations where ranks would be useful? Otherwise, this seems like too much effort for too little gain. On a side note, as a player, I don't really get in situations where I have to manage a large empire efficiently; therefore, I've always set a rather high bar for UI improvements in that realm. Would have to be low-effort (like appending some info to hover text somewhere) or go a long way.
- a production queue switch button (switch item 1 with item 2) would be handy.
You can do that. Shift+Click on an item in the queue to move up, CTRL+Click to move down. CTRL+Click also adds an item at the top of the queue.
As for re-ordering the queue, that's a K-Mod addition. Could perhaps advertise this more, but there's already a BtS loading screen hint about adding new orders with Shift/ Ctrl, and the K-Mod behavior is a pretty intuitive extension of that. (Wouldn't hurt to have optional buttons too; there's enough space.)
Pathfinding (of human units):
Spoiler :
Some units such as missionaries and workers sometimes walk into squares adjacent to enemies when instructed to move over longer distances - the only way around this is to move every unit step by step.Could they maybe check and stop before walking tinto threatened squares?
I don't suppose that the problem here is that the pathfinder will not try to avoid enemy units that are already visible when the human player orders a move. Rather, upon spotting an enemy unit, the orders of all units that are about to move into the enemy's movement range (and will be unable to defend themselves) should be canceled, akin to workers being interrupted up when threatened. Or, better: The defenseless unit should ask for orders as part of the unit cycle without canceling its order – maybe the owner will find a different solution, such as destroying the enemy unit. :undecide: Once more sounds like rather too much work for too little gain.
Also, fast units like horsemen or tanks sometimes show they will take one path when you issue the order to move and attack, but take a more direct one when actually executing the order. This is really annoying as you may want the unit to first move inside a city before attacking an enemy stack (so they are protected after) only to see them attacking as soon as they are adjacent to the stack (sometimes even across rivers ...) and staying exposed in the open afterwards.
I can try to debug such inconsistencies between the BtS and K-Mod pathfinder if a savegame is provided.
Spotting invaders:
Spoiler :
Would it be possible to have planes set on sentry (not intercept) to provide something like half their flight range as expanded visibility to the city; or for sentried ships to the same effect as vision range +1? The problem I'd like to see addressed is guarding against naval invasions. Moving ships and planes around manually to fogbust over the ocean is tedious - this would be more convenient without providing a game-changing benefit.
Not too sure about this. Having the range halved would be objectively worse than just fogbusting yourself. I usually have some planes stationed at the coast and just order them to explore automatically. While imperfect, I think it's better than having half range.
One can also queue up targeted exploration missions (if auto-explore is too haphazard). Admittedly a bit tedious.
Similarly, I wish the sentried units would "wake up" if they see a large stack coimg into their field of view, even when you are not at war with the civ that moves it. Time and again, I've had an invasion force on my radar but missed it because I ddin't visually check all areas of the map.
As for fogbusting with ships, that's definitely tedious. The situation you describe here is one of the chief reasons I use "show friendly moves" all the time, but that of course comes with its own downsides. Luckily, Advciv cuts out so much of the pointless unit shuffling, so I feel like I can get by with this as a solution.
I use Show Friendly Moves too (along with Quick Moves). I tend to agree that some less comprehensive means of reporting friendly moves would be desirable.
Idea: What if, in addition to waking up, sentry-ordered units would use the "show friendly moves" and "show enemy moves" behavior inside its view range regardless of the global settings? That way we get the full information available to us in locations we deem as especially important. If this is incorporated, planes would of course need a sentry mode.
This would not cover cases in which a stack moves into a tile visible through nearby borders or air recon. (The aircraft couldn't run air recon each turn while still being on Sentry.) Could add an option "Show Friendly Stack Moves" or a drop-down on the BUG menu that sets a stack-size threshold for shown friendly moves. That being said, even "shown" moves are easy to miss, so one could argue for an on-screen message "A group of Spanish units has been spotted near London." A related problem is that large stacks don't stand out on the main map. The dots attached to the flags are tiny. (I've tried enlarging them, but it's also the top-down angle that makes them difficult to see.)
[...] A related point: Maybe it would be better if one had to declare war on the turn before moving units onto enemy territory or attacking units? I know this is a major change, but wouldn't favor either AI or player - and would give the defender more of a chance. Alternatively, attacking in the same turn could give you a "global villain" diplo modifier from all civs who are aware it - much like Japan, after Pearl Harbor. :)
This idea comes up once in while (and I actually like it very much), but for some reasons I cannot remember this is always discarded.
Mainly, I guess it's just a fairly big change and not entirely intuitive. Here's my previous post on that subject (from 2018).
Wonders:
Spoiler :
I like that great engineers don't provide an auto-complete to wonders anymore - but maybe we could have them provide a small, set amount of hammers, like x% of the wonder cost?
I am not too familiar with the Great Engineer change, but an x% wonder cost seem like a nice and consistent option.
I'm not aware of any change here. Engineers can hurry wonders by adding some amount of production, usually enough to complete the wonder right away. The formula is
m_pUnitInfo->getBaseHurry() + m_pUnitInfo->getHurryMultiplier() * pCity->getPopulation()
(adjusted to game speed).
Also, I think the religious wonders could use a shot in the arm, along with Chichen Itza.
Chichen Itza is such a weak wonder, could definitely see some buffs.
I'd like to give Chichen Itza some sort of milpa Jungle agriculture ability. That's entirely missing from the game, and I don't think the original ability would be missed. But it's not clear what the ability should be (other than easy to implement :)).
Buffing a bunch of weak wonders is outside of the scope of AdvCiv in my book.
Questionable attacks by AI units:
Spoiler :
[...] I wish the AI was less focused on taking out workers - they will almost always go for them, to the point that baiting them with a worker sacrifice is an exploit. Also, they still don't use their artillery and air power systematically. Often, catapults will be used to attack single units somewhere in the field, which is unwise.
May have been amended by v0.99 (release notes: "Non-lethal AI units make opportunistic attacks only when there is a friendly lethal unit nearby that might finish the target off"). I can look into the worker issue, but a savegame would help. Also, is it only workers, or would some long outdated combat unit work just as well as bait?
Space victory:
Spoiler :
The space race is still very much a slog, and too intransparent. It might help to have a summary overview of where you and every other AI is in the race- what tech they have, what parts have been built, when everyone is projected to finish (provided the information is available through espionage or having eyes on cities). I'm no expert on that part of the game, but maybe more changes would be in order. I'm no expert on that part of the game, but maybe more changes would be in order. I don't really understand how the number of components and engines works out. The idea I think was to balance risk and reward, so that civs who are behind in the race can launch early with a chance of failure - but in true effect, I always build all the parts even when having an extra engine with hindsight turns out to maybe only cut flight time by a turn or two. If the consequences of your choices were more predictable, I think it would make this part fo the game more enjoyable.
I think part of this is covered by additions to the Victory screen in BULL that I'd like to merge into AdvCiv, but I'm not getting around to doing that. Agree that Space victory is largely devoid of interesting choices apart from having to balance research and production. The 10-turn victory countdown (30 on Marathon I guess *shudder*; maybe this shouldn't actually be speed-adjusted) is an eternity. As for the engines, thrusters and casing: The first two increase the victory countdown when not maxed out, and missing casings lead to a failure chance. I see that this is not really documented; would be nice to at least put the numbers in the project help text (hover text and Pedia). Most of the time, the race isn't close enough for these details to matter, so I don't think tinkering with that will accomplish much.
[Let's move this bit about tech costs here ...]
Didn't notice any effect of the tech cost changes, but this may be due to my settings and is probably a good thing. Maybe the modern+ age techs couldn't use some tweaking - the space race techs, frex - but everything up to then feels fine to me. Don't fix it if it ain't broken.
Good, I don't think the tech pace needed a change either, I was just noticing that the game year, once more, didn't match the tech progress. But I've mostly addressed that through the months-per-turn calculation, which doesn't affect gameplay.
Espionage:
Spoiler :
... adds a whole layer of largely intransparent complexity to the game - to the point that running an espionage economy apparently is a viable option. I used to turn espionage off because I thought this was going too far, but since i like many the basic features - such as having insight into opponents' cities - I've gone back to it.
Totally agree. All the major gameplay additions in BtS (espionage, random events, corporations, colonies) are poorly designed. The saving grace (that I would like to reinforce) is that they're pretty easy to ignore.
[...] the one (imo over-powered) effect of spies I'v never seen the AI make use of is to incite revolt before attacking a city.
Would be really interesting having them use the revolt mission!
Pretty sure I've seen that mission used, but it might be quite rare. The AI is not going to deliberately send a Spy just in time for the attack.
Instead, in my last two games, I got at least three, sometimes up to five espionage notices on every turn - either, a spy is caught, gold is stolen or some city has suffered a nuisance effect, like poisoned water, unrest or the destruction of, say, a granary. Also, as the end-game nears, often one or two AIs will focus their entire economy on stealing your tech and sabotaging your spaceship.
Sometimes the AI's espionage programs are just mere nuisances, and they get nothing spectacular out of it. Especially the designated "nuisance" missions. However, I have seen multiple times the AI successfully leverage a spy economy to catch up in tech way faster than otherwise possible. So they can definitely be effective too.
These events are neither fun, nor very effective for the AI - but they take up time and there is very little you can do against them.
I don't think the stealing and sabotaging is unwise. The take-that missions ... at least the AI is pretty adept at picking the most painful one.
[...] In the end, I sent out spies on counter-espionage missions to every other civ every 30 or so turns - by far the most measurable effect, and put a spy in each of my cities (79, in this case) - but these are must-do chores, not interesting game choices..
That's my impression also.
Some suggestions for a least tempering the effects of espionage:
[1] raise the production cost of spies
[2] make spies expire even after succesful completion of a mission
[3] limit the number of active spies you can have, as with missionaries
[4] provide notice when counter-espionage effects are about to run out and you need to send a new spy to renew it
[5] discourage AI from using nuisance missions like poison water and foment unhappiness
and teach it to use incite revolt during war - or remove that option if it cannot use it
[6] make spaceship parts sabotage proof once built - I'm okay with sabotage during production, but they should be treated like wonders after they are complete
Mostly agree on number 5. The AI often don't get enough out of these missions. Still, a well timed mission can be worth it. [...] Number 1, 2, 3 and 6 are confusing to me. If these strats are ineffective for the AI, why nerf them even more?
Realism Invictus has a unit limit for Spies. An extra cost based on the number currently owned Spies would be equally easy to implement – BtS already implements it, it's just unused. The impact per mission increases over the course of the game (e.g. more expensive buildings to sabotage or techs to steal), the mission costs do too, but the production costs of Spies stay the same. For one thing, this makes placing a Spy in each border city a no-brainer at some point of the game. It's not clear if a (soft) limit on Spies would protect the AI from its own follies or if the would end up being unable to spend all its espionage points or produce lots of Spies despite the extra cost. In any case, it would seem prudent to check whether AI civs that carry out a lot of attack missions in the late game do so for any good reason.
Agree with number 4. I usually set a reminder via Alt + M, but that is tedious.
Already on my nice-to-have (i.e. unlikely to get done) list for additional alerts.

Regarding number 6, maybe the AI won't be able to leverage espionage points in Space races if it can only target projects in production? I don't think I can bring myself to learn enough about Space victory and the espionage system to make up my mind about such a change.
Bundling:
Spoiler :
Lastly, could you maybe package your mod with blue marble, the ethno-varied units and, ahem, totestra? I think there are still too many civ players out there afraid to play with mods or unaware of the GREAT content out there.
No to all of these. See (way) above about Totestra. The Blue Marble fpk file can be downloaded at the end of the K-Mod opening post and swapped in for BML.fpk. I guess this could be mentioned more prominently in the manual. I'm already linking to DeepWell's Ethnic Units pack in the opening post of this thread (doesn't include ethnic city styles, however, which are more difficult to distribute in an optional package). I reckon that those afraid players may not even want to try AdvCiv if it looks too unfamiliar. Also, the glitches in DeepWell's pack when playing with Frozen Animations are a problem for me.
edit: typo
 

Attachments

  • command-btn-gaps.jpg
    command-btn-gaps.jpg
    122.5 KB · Views: 32
Last edited:
So, would anyone here be up for an advanced civ GOTM-style game, where we play the same turn-zero save and everyone does a little write-up on how it went, so we can compare notes?

Will admit I am very partial to my own settings (see sig below), but if you are interested, please let me know.
I was going to voice skepticism about any non-default settings that increase the playing time, but, since SantaFlagship emphatically supports Huge Marathon ... Two motivated players is already a lot. As for me, I could try to just play the first 2 or 3 eras (though I'm not sure if I'll manage even that on Marathon). By the way, I had been considering to make Marathon a little less extreme by turning the 300% modifiers down to 250% – i.e. 1250 turns, or perhaps more typically ca. 1000. How would you two feel about that? (Not for the game in question, which I assume would use the v1.06 beta.)

With the map options that Jorunkun uses, I don't think Totestra has any upside over PerfectMongoose – but several downsides (see the start of my previous post, under "Barbarians").
 
Unit command buttons: I don't think that's workable. Too many different promotions, and it would be distracting to either have gaps for no apparent reason or grayed out buttons that will never become ungrayed.

I totally agree. Actually I misread the suggestion; I am less concerned with respect to the promotions, but I keep hitting the auto-explore command by accident (instead of something else I currently can't recall). The greyed-out solution should be more viable for unit actions and prevent these kinds of mistakes.
 
Should've been fixed by v1.04. So hopefully this had happened only prior to that update. Has to be within their borders to count. Kind of a needless complication (rarely going to be enough to actually lead to +1 relations), but exempting Barbarians entirely from "mutual struggle" could also be regarded as a special rule.

I agree with everything here. FYI, since v1.04, I have not seen any "mutual struggle" from Barbarian kills (in the 2 games I have played)

I totally agree. Actually I misread the suggestion; I am less concerned with respect to the promotions, but I keep hitting the auto-explore command by accident (instead of something else I currently can't recall). The greyed-out solution should be more viable for unit actions and prevent these kinds of mistakes.

I misread it as well, coming to think of it. I also had the auto-explore button in mind, which is by far my most frequent misclick regarding unit actions. The button is easily misclicked when upgrading a bunch of units: When the last one in a stack is upgraded, the "explore" button takes the position the "upgrade" button had. Maybe just forcing the upgrade button to be the rightmost button (whatever unit actions are available) could prevent such misclicks. Alternatively, the "upgrade" button could have some hotkey.

I use the Open Event Log option (General tab of the BUG menu), which opens the Event log automatically when there are more than 3 new messages.

I often just play with the Event log open all the time :lol: . I might try out this solution and see if I like it!

Could you narrow down since which update of AdvCiv you've been having this impression?

Btw, I've noticed a bug in the 1.06 beta version: The citizen and production automation buttons aren't highlighted when enabled; will fix.

Just a few days ago, I noticed the same bug, and realized that was the root of my governor "problems". In some cities I had manual citizen assignments I believed to be automated! Simply making sure they were automated fixed everything.

This would not cover cases in which a stack moves into a tile visible through nearby borders or air recon. (The aircraft couldn't run air recon each turn while still being on Sentry.) Could add an option "Show Friendly Stack Moves" or a drop-down on the BUG menu that sets a stack-size threshold for shown friendly moves. That being said, even "shown" moves are easy to miss, so one could argue for an on-screen message "A group of Spanish units has been spotted near London." A related problem is that large stacks don't stand out on the main map. The dots attached to the flags are tiny. (I've tried enlarging them, but it's also the top-down angle that makes them difficult to see.)

Yeah, totally agree. I was thinking mainly of naval patrolling, as naval units can more easily "slip by" when "Show Friendly moves" is disabled than land units amassing on the border. Still, the idea I laid out is incomplete and not the best; the "Show Stack" solution would be better. However, even if it were implemented, I would still play with the usual "Show Friendly Moves"! I really don't find it a hassle in Advciv.

I think part of this is covered by additions to the Victory screen in BULL that I'd like to merge into AdvCiv, but I'm not getting around to doing that. Agree that Space victory is largely devoid of interesting choices apart from having to balance research and production. The 10-turn victory countdown (30 on Marathon I guess *shudder*; maybe this shouldn't actually be speed-adjusted) is an eternity. As for the engines, thrusters and casing: The first two increase the victory countdown when not maxed out, and missing casings lead to a failure chance. I see that this is not really documented; would be nice to at least put the numbers in the project help text (hover text and Pedia). Most of the time, the race isn't close enough for these details to matter, so I don't think tinkering with that will accomplish much.

I like the fact that it's speed adjusted. Actually, at times I have been thinking about whether I'd prefer if resource trades and peace treaties etc. also were speed adjusted. The 10 turns on Marathon often feel insignificant, at least for me personally.

As for documenting the effects of space ship parts: I always found it odd that the vanilla game never did this. New players pretty much have to find out by trial and error. I believe most players of Advciv know about these effects anyway, but it couldn't hurt to have it documented.

EDIT: Forgot to respond to one of the comments:

The AI will also cancel a deal when the human side has acquired a previously imported resource. But it does sound rather unlikely that you'd both misinterpret those proposals. The AI may gift a resource or tech when the human player is falling way behind, but that's also pretty unequivocal ("you might need this"). I don't think the AI is being clever either, so, probably a bug; I'll wait for a savegame or at least a screenshot. (To actually debug a trade offered by the AI, I'd really need a savegame at the end of the preceding human turn because, on the turn that the diplo popup appears, the AI decision to offer the trade has already been made. It's pretty difficult to get such a savegame because autosaves only happen at the start of a turn; to reproduce an AI offer from there, one typically has to make the exact same choices as before throughout the turn, otherwise the random number generator will likely not end up in the same state and the AI offer won't happen. One of several reasons why it would be nice to, technically, move AI-to-human diplomacy to the start of the human turn.)

I have the AI cancel deals when I obtain a resource multiple times a game, on average, so that is not it. The "free" offers have been very rare and sporadic. The last time it happened I believe it was a much weaker civ giving me a resource. I'll keep an eye open and try to obtain a savegame where it happens! I autosave every turn, so it shouldn't be too bad to replicate all actions should it happen again. It might be a long time till it happens though. Hopefully I will remember to do it.
 
Last edited:
In my last game (v1.06 beta) I noticed a couple of things with the relation modifiers, and a bugged tooltip. These are all very minor, and some are just suspected bugs. Screenshots attached. A short explanation is provided to each screenshot.


drawn-apart-green:

Here we have a +1 (correctly) relationship modifier by a religious event. However, the displayed text is "Past events have drawn our people apart." instead of "... brought our people together."


getting-ahead-pos:

Shaka likes us more (+1) because we are getting ahead of him.


independence-voluntary:

Gandhi likes us more (+1) for granting him his independence. He was a voluntary vassal of Montezuma, whom I made capitulate. I was under the impression that "granting independence" only was intended for freeing capitulated vassals in this way, as voluntary ones can leave whenever they please.


slider-tooltip-bugged:

When mousing over the "increase research by 10%" button, the help text is bugged. This also happens for the "decrease by 10%" button, as well as the corresponding Culture and Espionage buttons.
 

Attachments

  • drawn-apart-green.png
    drawn-apart-green.png
    703.1 KB · Views: 32
  • getting-ahead-pos.png
    getting-ahead-pos.png
    761.8 KB · Views: 32
  • independence-voluntary.png
    independence-voluntary.png
    673.4 KB · Views: 28
  • slider-tooltip.bugged.png
    slider-tooltip.bugged.png
    134.3 KB · Views: 27
@SantaFlagship: Thanks, I've managed to fix all of those I think. The relations modifier bugs, surprisingly, did not both have the same cause. The wrong text for past events was introduced in v0.99, the rank hate turning into love (instead of being capped at 0) when the score difference is great was introduced in v1.05. So this one is not just a display issue (but not terribly relevant because it'll only affect civs that are far behind). Very observant of you to notice the granted-independence thing. The capitulation check was simply missing, had always been missing. The slider text issue probably came with v1.06.

I've clicked on Auto-Explore a few times when trying to build Fishing Boats. Somehow the Auto-Explore button looks like it'll build something. Well, I'll experiment with some things. Maybe the automation buttons just need to come before promotions and upgrades. If nothing else helps, I could always add a BUG option for hiding Auto-Explore.
[...] Alternatively, the "upgrade" button could have some hotkey.
There can be multiple available upgrades.
Just a few days ago, I noticed the same bug, and realized that was the root of my governor "problems". In some cities I had manual citizen assignments I believed to be automated! Simply making sure they were automated fixed everything.
That's a relief to hear. Might be the most consequential bug in the 1.06 beta.
[...] Still, the idea I laid out is incomplete and not the best; the "Show Stack" solution would be better. However, even if it were implemented, I would still play with the usual "Show Friendly Moves"! I really don't find it a hassle in Advciv.
Works well enough for me too, but, if I played those Huge Marathon games, I'd probably feel compelled to disable it in the late game. A BUG option with a threshold should be pretty quick to implement, so maybe I'll do that.
The 10 turns on Marathon often feel insignificant, at least for me personally.
It's 30 turns though, isn't it? 10 on Marathon would be fine with me. Stopping an imminent Space victory – if that's the point of the 10-turn period – should mainly be a matter of sending units to the enemy capital, which takes just as long on Marathon as on Normal speed.
The "free" offers have been very rare and sporadic. The last time it happened I believe it was a much weaker civ giving me a resource. I'll keep an eye open and try to obtain a savegame where it happens! I autosave every turn, so it shouldn't be too bad to replicate all actions should it happen again. It might be a long time till it happens though.
Thanks. Well, sooner or later someone will pin it down.

Oh, and regarding the failed assertions about the AI attitude cache, one known issue is that attacks made throughout a human turn don't trigger a cache update but can affect the "our mututal struggle", "this war spoils our relationship" and "ruthless expansionism" modifiers. Updating the whole cache after each attack seems a bit wasteful (though probably wouldn't introduce any noticeable delay), and a more selective update is laborious to implement. There are probably some other rare issues with that cache as well. Not much of a problem, only means that the AI will adjust its attitude a little later than it should, usually when the human turn ends. Great that the fix for the crash (canceled vassal agrements) worked.

Not sure when I'll manage to release v1.06 properly. There are still a few layout issues to resolve; I guess I'll upload a second beta version soon with just the stuff I've fixed so far. I might hold off until v1.07 with anything mentioned in my reply to Jorunkun.
 
Maybe you could tackle some well-defined subproblem that the AI needs to solve? For example, I've replaced the AI logic for war planning (essentially scrapping the existing code, i.e. not exactly heeding my present-day advice) and have largely rewritten the city placement AI. [Let me link to some code here, let's say, the entry points UWAI::Agent::doWar and AIFoundValue::evaluate.] Unit movement (CvUnitAI), i.e. worker management and combat tactics, remains a weak spot. Those are big chunks to bite off, however, that seem pretty tightly coupled with the rest of the DLL. Difficult for me to imagine moving that to Python.

Thank you for the exhaustive answer! Right I'm very busy IRL but I will try to at least pay close attention to both your project and the C2C one! I'm having loads of fun with the mod (although I still spawn next to the jungle everytime haha), but I'm afraid I also have to report a bug:

When one plays a custom game as a random character with the "True Start" option, you get a civ that's appropriate for the location, but if you regenerate the map and get a new civ, you will still keep the old civ's starting techs. So if I first spawn as Willem, and then as Charlemagne, I will end up with Fishing, Agriculture, Hunting and Mysticism.

Hopefully this bug will be fixed easily. Good luck and thank you for the hard work!
 
Top Bottom