Eliminating CTDs is obviously important, but that couldn't be the "end state" for the AI. I spent a lot of time tweaking the unit build lists, AI personalities (more on this later), and AI priorities so the end result is that all civs are NOT carbon copies of one another. Inevitably there's a lot of visible commonality since all civs must choose from the same pool of unit sprites, but now some civs are more focused on religious units, others on diplomats, some more willing to explore than others, etc.
The one area where I couldn't move the needle involved AI conquest. AI civs certainly go to war with each other (more often than not) and are fully capable of invading enemy territory and waging stack-on-stack combat and pillaging. But cities rarely changed hands and there didn't seem to be much I could do to change that.
So, reluctantly, I took a look at the frenzy.slc file. Again I'll spare you the details, but eventually I settled on a modified version of "APOL_frenzy.slc" since the base file was presumably created to be at least somewhat compatible with the AE version of CtP2. But regardless of which file I chose, ALL frenzy files generate an enormous number of circular errors, and the only way to stop them is to disable the Debugslic setting in userprofile.txt. That is completely sub-optimal for mod development, but there was literally no alternative. Worth noting that Frenzy has the exact same errors in a "standard" AE game, so it's not something unique to Cradle - the frenzy code just doesn't play well with AE.
That said, eventually I was able to develop a working version of Frenzy (still requires "Debugslic=No") and played a number of campaigns. Enough to be quite confident in saying that while "Frenzy" does appear to make the AI more aggressive (some cities do change hands, albeit no more than two per playtest), that comes with FOUR downsides:
1) The biggest issue is that game turns start to take MUCH longer to complete. Having two minute "end turns" starting around 1800 BC is really awful, and it only gets worse. Admittedly it might not seem so bad during a normal game, but it makes playtesting EXTREMELY time consuming.
2) The Frenzy code inserts FAR more civilian units into military stacks than you would see otherwise, and that reduces the number of special attacks one might otherwise see per turn. You also don't see many Diplomats, Slavers, or Prophets traveling far from the homeland. They go after neighboring civs, but that's about it.
3) AI Map Exploration seems to be hindered. Ships continue to explore, but not as many or as far, and most are unoccupied. Meanwhile, Land Units rarely move too far from the homeland & border areas. Probably because the frenzy code is grabbing them and pulling them into stacks.
4) The AI is extremely aggressive with ALL civs, so embassies with other civs are rare, and they go to war with all their neighbors. It makes for a much less interesting game.
It's possible these results are driven at least in part because the "human" player is the Barbarians, and frenzy is primarily intended to go after a normal Human civ. Even so, I don't like a lot of what I'm seeing, especially since Martin Guhmann put a lot of effort into fixing the AI and explicitly said that Frenzy isn't needed with the SC fixes. In addition, it wouldn't be surprising if Frenzy and the SC AI are fighting each other, and thus making both of them less effective.
Another factor is that most of my games involve large continent size islands, and historically the CtP2 AI works better when cross-water algorithms are minimized. Potentially therefore, "more land" would help Martin's improved AI to function better. In the attached example, we see that Babylon controls most of the northern continent, and while Egypt was able to colonize the southern shore, they have already lost Amarna and would probably lose more cities if the playtest had continued.
*** FINDING: At this point, I'm pretty sure the modified "Frenzy" code is not going to cause CTDs, so I'll keep it as a deliverable with Cradle 3+, but will NOT activate it in the default game settings. However, players that want Frenzy can easily activate it themselves by editing a single line in "script.slc".
Leave a comment: