Advanced Civ

Here is another issue I've noticed. The AI will often cancel a trade deal, but immediately renegotiate it on the same or even better terms for the player. It seems like the code is forcing the AI to cancel deals for no good reason.

This is also happening with my permanent ally, but I know that feature is not supported.
 
@Cruiser76:
There's always an odd chance of a change in circumstance between cancelation on the AI turn and renegotiation on the subsequent human turn, but this should be rare. Sounds more like some oscillation problem where a resource appears less valuable to the AI once it has acquired it. (Though I thought I had weeded these issues out before releasing v0.92.) I've now added an assertion to warn me when the AI is willing to make a deal that it has just canceled, so I should come across the issue sooner or later in testing.

I'd like to support permanent alliances, they're just inconvenient to test because they happen so rarely. Sounds like they've been working OK for you, mostly. If I can fix the cancelation issues, I could probably remove the warnings (Custom Game screen, manual) about permanent alliances being untested.

Apostolic Palace: There was indeed a problem with the AI evaluation; the way I had changed it, the AI only became interested in the AP as a voting body once it became interested in a diplo victory. Perhaps I had assumed that the AI would also build the AP for the production bonus, but no such code actually existed. I've now added an evaluation of the production bonus (commit). Looks all right on Auto Play: under the right conditions, the AP can get built in the early centuries AD, though the average seems to be around AD 700 (on Emperor). Thanks for spotting this error.
 
Last edited:
Great, glad I could help.

Yes, permanent alliances are working pretty well. I've modded defensive pacts to monarchy and PAs to constitution, so they come up quite a bit in my games. I like this change because it gives the player an incentive to build a relationship with an AI player early in the game. I also thought an earlier DP/PA was more realistic.
 
Hello. I recently downloaded Advanced Civ, and have run into a problem. On my administrator account (WIN 7), it runs fine, but on my general user account (where I play games including Civ 4 mods), only the map appears, with no status/management sidebars. I have not been able to figure this out, so any advice would be appreciated. Thanks
 
Hello. I recently downloaded Advanced Civ, and have run into a problem. On my administrator account (WIN 7), it runs fine, but on my general user account (where I play games including Civ 4 mods), only the map appears, with no status/management sidebars. I have not been able to figure this out, so any advice would be appreciated. Thanks
I can't experiment with this (because I've permanently disabled the user account control stuff on my Windows 8 PC), so just some ideas: I keep reading that choosing "run as administrator" from the context menu is supposed to help, but you've probably tried this and, in any case, I understand that you've also installed e.g. Realism Invictus and didn't have any problems with access control. A difference between AdvCiv and RI is that AdvCiv uses a custom theme to increase font sizes. You could try renaming AdvCiv\Assets\XML\Art\Civ4ArtDefines_Misc.xml to disable that theme. I doubt that this will help though. Once the theme is disabled, the mod could also be moved into My Games\Beyond the Sword\MODS\, which should have less strict access control than Program Files.

If the user interface doesn't appear, then there is usually a Python error logged in My Games\Beyond the Sword\Logs\PythonErr.log; it would be interesting to know what it says. The logfile is only created if LoggingEnabled = 1 is set in My Games\Beyond the Sword\CivilizationIV.ini.

Supposedly, it can make a difference whether the user had admin rights while installing the mod. If this were the issue, then I think your AdvCiv files would show different permissions than the files of other mods. You could check e.g. the Security tab (if Win7 has this) of the file properties of AdvCiv\Assets\CvGameCoreDLL.dll – same permissions for all users as Realism Invictus\Assets\CvGameCoreDLL.dll? Same file owner under "Advanced"?
 
Hi @f1rpo

I recently came across your thoughts on "future gameplay changes" (https://github.com/f1rpo/AdvCiv/tree/master/future gameplay changes) and your thoughts on overhauling the combat system piqued my interest!

I've been pondering\planning changes to the combat system as well in a new modcomp tentatively called "Advanced Combat" (Note that I apologize in advance about stealing the *Advanced* moniker :) )

Anyways, here's a shortlist of what I think should be done to make combat more interesting:

- Limited combat rounds.

I'm a member of the Religion and Revolution (A colonization mod) team and we've got a fair bit of experience with this feature. RaR has a combat limit of 7 rounds, which makes combat less lethal in general. For instance, it allows weaker units to "gang" up on stronger units with less chance of loosing any of the attackers. Arguably, 7 rounds may already be a bit too much but I think it was chosen for "symmetry" reasons. if we consider 2 unit of equal strength, any given unit would require a minimum of 5 rounds and a maximum of 9 rounds to win and 7 is just in the middle.

- Readiness

It has bothered me a bit that defenders in a stack is allowed to defend several times, while an attacker (without blitz) may only attack once. I think this exacerbate the effects of stacking and gives too much advantage to the defender.
The classic strategy game https://en.wikipedia.org/wiki/Classic_Empire has some features that we could consider. One important feature is the concepts of readiness\fatigue.
In this system, a unit will suffer fatigue after combat, meaning that it will be unlikely to be chosen as defender again should the stack suffer additional attacks.

- Collateral damage

There is a vast number of opinions on this, ranging from those who want unlimited collateral damage (to deter large stacks) to those who want to limit the collateral damage to only a couple of units. There is also the possibility of reducing the combat limit of siege units to have them survive more often (the LoR mod did this rather successfully). However, one possibility worth exploring is to allow all units to inflict a small amount of collateral damage (like the SMAC combat system) to lessen the incentives for creating large stacks.


- Ranged combat \ strikes

I think that this is unavoidable to make modern combat both more interesting and realistic. If implemented correctly, we could get rid of the catapult suicide ritual.


We must of course carefully consider the implementation complexity of teaching these feature to the AI, but I think this is doable.

Maybe we could collaberate on this effort. Lurkers are invited to join as well!
 
Last edited:
Edit: The link at the start of devolution's post above is about to go down; here's an updated link: future gameplay changes.
[...] Maybe we could collaberate on this effort.
I think we have largely the same goals. I hope we can pool our resources, if not on everything, then perhaps at least parts of it.

1. Limited Combat Rounds
RaR has a combat limit of 7 rounds, which makes combat less lethal in general.
Cool, I was going to try 8 rounds as a starting point. It's bit awkward to use an arbitrary number like this, and depressing that "freak outcomes" are still going to be possible, but I guess it's the best one can do on top of the existing rules. I don't have Colonization installed currently, so I can't take a quick look at the R&R implementation. I imagine that the computation of the combat odds was the hardest part (or perhaps you were able to copy code from air combat).
In my abandoned Pyrrhic Victories mini mod, combat ended when a unit was about to win despite highly unfavorable odds, but this also required an arbitrary threshold (what's "highly unfavorable"?) and, worse, incentivized players to aim for that threshold. Moreover, and this also applies to a combat round limit I think, units with high strength became more useful than in BtS, and warfare with a tech advantage became (even) cheaper. Therefore, I've been thinking that any changes that reduce entropy in combat may have to be accompanied by limitations on free healing. The costs for healing that I can think of would take quite a bit of work to implement[*], so I would tend to implement most of the other combat rule changes, perhaps initially without UI and AI support, before deciding if something needs to be done about healing and what.
That said, a limit on free healing could make the game a lot more challenging against the AI, as even a technologically and tactically superior player would inevitably incur some economic cost at war. Not having played Civ 5 much, it's my impression that the combination of single-round combat (and range strikes) with free healing has more to do with the non-challenging AI than 1UPT.

[*] @vincentz has posted some code here in the VIP thread, but I see several problems with this. (What if you don't want your unit to heal? What if there is no gold? Why does healing cost gold?)


2a. Collateral damage

I'm bumping this up because getting rid of suicide siege is step number one in my train of thought. I find that much more important than to discourage large stacks, but that's of course a personal preference (for pre-modern warfare), and I'd like to do something about Stacks of Doom too. If collateral damage is reduced to a role that is historically rationalizable (by limiting the damage and number of targets), what problems does this create?
* Combat entropy will increase – this needs to be addressed in any case.
* Siege units will need some new abilities – see under 4.
* The balance between attacking and defending will shift in favor of the defender, meaning that fewer attacks happen and units pile up into even larger stacks.

2b. Stacks of Doom (SoD)

Any measure against SoD should, in my opinion, only slightly punish large stacks so that the AI doesn't have to be changed. It shouldn't be difficult to build some reluctance against large stacks into the AI, and this should be done anyway because of nuclear war, but doing it in a reliable way could be difficult. And human players should still be able to use SoD (without feeling bad) in wars that are already decided.
I appreciate that using collateral damage to discourage large stacks is the traditional Civ approach [**], and I think it could work, but I doubt that it would work in a plausible way – I mean, a cannon shouldn't be able to bombard infinitely many targets in one attack.
On paper, I really like the idea of randomizing the defender selection. This could solve several problems:
a. Reduce the advantage of the defender
b. Discourage large stacks (small stacks get to pick optimal defenders)
c. Make it easier for attackers to leverage scissors-paper-rock advantages, so that e.g. a single Pikeman is not enough to protect a dozen Macemen from a small stack of Knights.
The specific rule I have in mind is this:
Spoiler :
At the start of each civ's turn, go through all rival stacks and pick a subset of 4(?) combat units uniformly at random (or with a bias against damaged units). Only these units are available for defense, and the others are shown in gray in help text. When a stack is attacked, the best available defender (Lead From Behind algorithm) defends and afterwards another defender becomes available, chosen at random from the set of unavailable units.
Interpretation: an army marches in some formation, and when it is attacked, perhaps from an unexpected angle, the best counter is not necessarily available right away, especially if it's a large army. This could work without AI changes. I haven't thought through all the details, e.g. how air strikes or collateral damage would be applied.

[**] Let me quote Soren Johnson (Civ 4 manual, p.182f.) for reference:
Spoiler :
Actually, it’s an old loophole known within our fan community as the Stack-of-Doom (SoD). [...] To solve this problem, we drew inspiration from Civ I, which had a collateral damage system that killed every unit sharing a tile with a losing defender. While that system was so harsh that we
removed it entirely for Civ III, a lesser version of this system could solve the SoD problem. Thus, catapults, cannons, and artillery units are not a counter for any one type of unit; instead, they are a counter for a style of play. They are the stack-killers, which creates a great tension between keeping units together for mutual defense and spreading units out to avoid collateral damage.
And in Alpha Centauri (not Soren; p.98):
If the defender is defeated, and the square is not a base or bunker square, the rest of the combat units in that square take collateral damage (that is, they each take a certain amount of damage, determined by the reactor of the attacking unit).
I didn't remember that rule.


3. Readiness

This solves similar problems as randomized defender selection does (a. and c. above), but the effect might not be strong enough to allow for collateral damage to be sidelined and it doesn't discourage large stacks (rather the contrary?). Do you have a specific plan for this? Could it simply mean that units are guaranteed to take at least some amount of damage per combat?
I like the reasoning that defenders shouldn't be allowed to fight much more often than attackers. A similar problem is that the attacker gets to attack with as many units as he/she likes before the defender gets a chance to attack back or run away.


4. Ranged strikes

Do these have to have a range beyond adjacent tiles for modern warfare? Because for adjacent tiles, a combination of first strikes and a damage limit should suffice, and this would be a mere XML change. Damage to the attacker could represent a counterattack or spent ammunition. (On that note, siege units should possibly also take a bit of damage when using the bombard ability.) As for prior art, I know that the VIP mod has ranged strikes. Civ 4 Reimagined also, in a way:
Collateral damage units such as archers and artillery receive an attack bonus against units who cannot match their range. This allows archers to harass melee units with little fear of retribution - at least, until it is their turn to attack!
DCM? I think Ranged Bombardment is something else.

Abilities that I've earmarked for removal in order to reduce the overall rules complexity: immune to collateral damage, flank attack, no defensive bonuses (i.e. allow most siege uits to receive def. bonuses), ignores building defense (rather increase bombard rates a bit).
Lurkers are invited to join as well!
Seconded!
 
Last edited:
Wow! I'm seriously impressed by the amount of thought and analysis that went into your reply :D

I'm a bit short on time, so I'll only address a couple of issues.

1.
I recently merged a modified version of ACO (Advanced Combat Odds) into RaR and these are the combat odds for equal strength units:

The number of max combat rounds have been set to 7.

Survival odds: 77.40% (See the attached image)
Vicory: 22.70%
Draw: 54.70% Displayed as retreat since I kept the display the same.
Defeat: 22.60% Rounding issue I guess, should have been equal to the Victory odds

Note that the odds would have been 50%/50% if combat rounds were 'unlimited'.

Here some some thoughts:

- Limited combat rounds makes the strong "stronger" in the sense that the chance of loosing a unit is dramatically reduced as the difference in strength grows.
For example a 9 strength attacker vs. a 6 strength defender would have close to 99% chance of survival and about 1% chance of loosing. This is not necessarily a bad thing since people have been complaining about loosing their superior units for ages on these forums. We do have to make sure that there are counters of course. On the flip side, limiting the combat rounds makes it possible for weaker units to gang up on stronger units with a better chance of survival than before.
- Units that can withdraw are much more powerful, even when attacking at poor odds they get quite decent survival chances due to the combination of either withdrawal upon defeat or a draw due to the round limit.
 

Attachments

  • limited_combat_round_odds_for_equal_strength_units.png
    limited_combat_round_odds_for_equal_strength_units.png
    5.1 MB · Views: 871
Last edited:
Thanks for the screenshot. Another symmetry condition we could aim for: 3x33.3% when combat strength is equal. Though 50/25/25 also has a symmetry.
For example a 9 strength attacker vs. a 6 strength defender would have close to 99% chance of survival and about 1% chance of loosing. This is not necessarily a bad thing since people have been complaining about loosing their superior units for ages on these forums.
Agreed. One might think that losing at 99% odds is far more frustrating than losing at e.g. 75%, so that it doesn't really help to make the odds more uneven. However, to me, losing at 75% doesn't actually feel much better than losing at 99%, but the former happens far more often. And at close odds (high entropy), there's the problem of bad runs, e.g. a 6.25% chance of losing four 50% battles in a row.

Close odds create the most tension, but, in my experience with the Pyrrhic Victories mod, high retreat and victory odds (and low defeat odds) also generate some tension. To reinforce this, I applied the standard XP formula (based on combat strength ratio) to retreats, meaning that a unit that survives against the odds gains more XP than its enemy.

As a minor tweak, I could imagine rounding defeat odds (all odds?) to the nearest percentage point, so that defeat odds below 0.5% would become 0. Combat resolution could enforce this by processing the defeat outcome as a retreat (discarding the lethal hit).
On the flip side, limiting the combat rounds makes it possible for weaker units to gang up on stronger units with a better chance of survival than before.
Point taken. Though weak units on the defense only benefit from this if they can manage a counterattack – not so good for the AI.
Units that can withdraw are much more powerful, even when attacking at poor odds they get quite decent survival chances due to the combination of either withdrawal upon defeat or a draw due to the round limit.
Retreat also makes the withdrawal ability less special, and the two terms ("withdrawal", "retreat"; I used these in Pyrrhic Victories too) are quite similar. If we could replace withdrawal with an ability that makes retreat more powerful, like restoring some health or a movement point upon retreat ... That said, while mounted units are arguably a bit underpowered in BtS, I see some problems with making mounted skirmishes more powerful:
* Softening defenders is (currently) already the role of siege and air units. They're hitting multiple targets, but we might change this to range strikes or the like.
* It's not plausible for mounted units to play a major role in attacks on fortified cities.
* Anything powerful that only works on the attack (or only on the defense) is a handicap for the AI.

What mod do you want to fork this project from? AdvCiv would obviously be convenient for me, but I also wouldn't mind working from BtS or some subset of K-Mod (BUG, ACO, Auto Play ...). AdvCiv could make the result a bit harder to integrate into other mods as there may already be changes (like refactoring) in the relevant functions.
 
Agreed. One might think that losing at 99% odds is far more frustrating than losing at e.g. 75%, so that it doesn't really help to make the odds more uneven. However, to me, losing at 75% doesn't actually feel much better than losing at 99%, but the former happens far more often. And at close odds (high entropy), there's the problem of bad runs, e.g. a 6.25% chance of losing four 50% battles in a row.

Close odds create the most tension, but, in my experience with the Pyrrhic Victories mod, high retreat and victory odds (and low defeat odds) also generate some tension. To reinforce this, I applied the standard XP formula (based on combat strength ratio) to retreats, meaning that a unit that survives against the odds gains more XP than its enemy.

As a minor tweak, I could imagine rounding defeat odds (all odds?) to the nearest percentage point, so that defeat odds below 0.5% would become 0. Combat resolution could enforce this by processing the defeat outcome as a retreat (discarding the lethal hit).

Regarding the rounding of odds, I would hold off on that for now since I think it would introduce some non-linearity issues with the combat round formula. I don't think it's really necessary since the combat limit would make freak accident (1 in 1000) like that happen much more rarely.


Point taken. Though weak units on the defense only benefit from this if they can manage a counterattack – not so good for the AI.
Yes, but we'd likely see much more of counterattacks and positional combat. Besieging a city would require more turns, this gives the advantage to the defender (which it should have anyway) so I don't think the increased survivability of the attacker would be that much of a problem.



That said, while mounted units are arguably a bit underpowered in BtS, I see some problems with making mounted skirmishes more powerful:
:crazyeye: According to the multiplayer community over at Realm's Beyond, it seems to be the consensus that 2-move units are superior to 1-movers under most circumstances. In combat versus humans, the mobility advantage is often decisive. I suppose that combat vs. AI may favor slow moving siege stacks filled with "disposapults", K-Mod's "spite whipping" may exacerbate this phenomenon!


Retreat also makes the withdrawal ability less special, and the two terms ("withdrawal", "retreat"; I used these in Pyrrhic Victories too) are quite similar. If we could replace withdrawal with an ability that makes retreat more powerful, like restoring some health or a movement point upon retreat ... That said, while mounted units are arguably a bit underpowered in BtS, I see some problems with making mounted skirmishes more powerful:
* Softening defenders is (currently) already the role of siege and air units. They're hitting multiple targets, but we might change this to range strikes or the like.
* It's not plausible for mounted units to play a major role in attacks on fortified cities.
* Anything powerful that only works on the attack (or only on the defense) is a handicap for the AI.

I like your thoughts about re-purposing the existing retreat mechanism since it overlaps too much with the "draw" mechanism. Giving the unit back a movement point would be a very interesting ability! I think should apply to the defender as well like the defender withdrawal mod.
As for siege units, we have to discuss them separately.
I think you're alluding to the "collateral initiative problem". Whoever player gets to inflict collateral damage first will have a significant advantage. Collateral damage should certainly be capped at some limit (and not be unlimited like now). If adding ranged combat, then opportunity fire / return fire should be considered. Ranged unit should generally suffer some form of damage in return for the ability to conduct ranged attacks. More on this later!


What mod do you want to fork this project from? AdvCiv would obviously be convenient for me, but I also wouldn't mind working from BtS or some subset of K-Mod (BUG, ACO, Auto Play ...). AdvCiv could make the result a bit harder to integrate into other mods as there may already be changes (like refactoring) in the relevant functions.
I propose "base" K-Mod. My reasoning is that Advanced Combat should be a modcomp that other mods could implement \ merge to improve their combat system. Any mod serious about the AI performance probably already uses K-Mod (Realism Invictus,
Rhye's and Fall - Dawn of Civilization etc), so that would make it easier for mergers. C2C is a notable exception, it is based on a heavily modified RoM (which has terrible AI, but that's another discussion) codebase but it still has significant AI improvements courtesy of the legendary Koshling. These can be discussed separately later, since their inclusion would improve K-Mod, but I am digressing...
 
Regarding the rounding of odds, I would hold off on that for now since I think it would introduce some non-linearity issues with the combat round formula. I don't think it's really necessary since the combat limit would make freak accident (1 in 1000) like that happen much more rarely.
Apart from the 0% case, I had only a visual change (to the displayed odds) in mind. That said, the rounding would then really be a means to obscure the special treatment of very low odds – which is a bit shady. Anyway, yes, let's shelve that.
Yes, but we'd likely see much more of counterattacks and positional combat. Besieging a city would require more turns, this gives the advantage to the defender (which it should have anyway) so I don't think the increased survivability of the attacker would be that much of a problem.
I guess I'm thinking mostly of an attacker with both superior units and (at least locally) superior numbers. See the attached K-Mod screenshot for example. I'm losing 1 or 2 Catapults here (75 production, let's say), while the Aztec lose 6 units (worth 260 production), and I gain about 10 XP (and a city). For a proper balance between warlike and peaceful strategies, I feel that I should lose at least 150 production here, and maybe gain a bit less XP. If I used the siege units only for bombardment, I'd lose 0-2 Macemen, so that doesn't even make a difference here. With the combat round limit, I don't think I'd lose anything unless the Aztec send relief. We don't need to work this out mentally of course; I'll try examples like this with limited combat rounds when I have an implementation. (I think, in AdvCiv, the Aztec would've abandoned the city during bombardment, leaving only the Longbows behind; but the AI still makes a stand eventually.)
:crazyeye: According to the multiplayer community over at Realm's Beyond, it seems to be the consensus that 2-move units are superior to 1-movers under most circumstances. In combat versus humans, the mobility advantage is often decisive. I suppose that combat vs. AI may favor slow moving siege stacks filled with "disposapults", K-Mod's "spite whipping" may exacerbate this phenomenon!
Yes. I've zero experience in multiplayer and I've hardly even read about multiplayer tactics. All the better that you care about multiplayer. I'm no Deity player either, but from what I read on the forums, Chariot and Knight are unpopular units, Horse Archer rushes are potent but challenging to execute, Cuirassier is rather overpowered and Cavalry comes too late to be all that relevant. So, I'd say Chariot and Knight could use a buff in singleplayer, but this could be accomplished in many ways and shouldn't concern us.
I like your thoughts about re-purposing the existing retreat mechanism since it overlaps too much with the "draw" mechanism. Giving the unit back a movement point would be a very interesting ability! I think should apply to the defender as well like the defender withdrawal mod. As for siege units, we have to discuss them separately.
You mean, if we keep the BtS withdrawal ability, then you'd like to allow defender withdrawal, and if withdrawal is replaced, then it should be replaced with an ability that can apply to a defender as well?
I think you're alluding to the "collateral initiative problem". Whoever player gets to inflict collateral damage first will have a significant advantage. Collateral damage should certainly be capped at some limit (and not be unlimited like now).
Yes, collateral initiative. There is no AI logic at all to prevent AI stacks from stepping right in front of a stack of siege units. "Mounted initiative" should be a bit easier to use for the AI because it's diffcult to avoid attacks by mounted stacks; however, with some patience and sacrifices one can get the AI to walk its Cavalry into an ambush too. Ideally, initiative should matter, but not be very highly rewarded.
If adding ranged combat, then opportunity fire / return fire should be considered. Ranged unit should generally suffer some form of damage in return for the ability to conduct ranged attacks. More on this later!
If ranged strikes are implemented as regular attacks, then a special damage limit (or no damage limit) for siege-on-siege combat could model return fire. I sure would like to hear your concept for ranged combat, just saying there might be a cheap alternative.
I propose "base" K-Mod. My reasoning is that Advanced Combat should be a modcomp that other mods could implement \ merge to improve their combat system. Any mod serious about the AI performance probably already uses K-Mod (Realism Invictus, Rhye's and Fall - Dawn of Civilization etc), so that would make it easier for mergers.
Makes sense. Are you savvy with versioning software? I know only the basics, so I'd probably just fork from K-Mod 1.46 on GitHub and be done with it, but if you'd rather use a different software or host, that's also fine. Should be up to you because, I suppose, you'd make the first step by merging your combat round limit component plus ACO adaptation. (There's no hurry to do any of this of course.)
C2C is a notable exception, it is based on a heavily modified RoM (which has terrible AI, but that's another discussion) codebase but it still has significant AI improvements courtesy of the legendary Koshling. These can be discussed separately later, since their inclusion would improve K-Mod, but I am digressing...
I'd be interested in this too. The LoR SDK ModMod by @Dave_uk is also not (really) K-Mod-based and makes some AI improvements of its own, but when I wanted to merge it into AdvCiv, I found that many of his changes were superseded by K-Mod/AdvCiv or only important for LoR's modern warfare mechanisms or too minor to bother, so I ended up adopting only half a dozen smaller changes. Still nice to have though, and I imagine that Koshlings code is more extensive than Dave's.
 

Attachments

  • Civ4ScreenShot0070.JPG
    Civ4ScreenShot0070.JPG
    232.2 KB · Views: 195
Last edited:
Game play question: Should a capitulated vassal be able to deny a tech request? This one doesn't make much sense to me because (1) the vassal was conquered and (2) I can direct the vassal's research into other techs. I didn't realize until recently that these vassals could deny a tech request. I also don't like that they can deny resources too.
 
I haven't tried this mod yet, but I saw the discussion about combat and I have some ideas.

Siege Units
They could be weak defenders with a large bonus against cities, or just strong attackers generally, like in civ2. Or they could have longer range than other units.

Stacks
Collateral damage is a good way to handle this, but it doesn't need to be as extreme as civ2, where all the defenders die. Instead, it could be that an attacker has a small chance based on the size of the defending stack to damage multiple units with each attack. With larger stacks, the chance of multiple units being damaged would be greater. One way this could work is to take the number of units in the defending stack and divide it by 100 to get a percentage chance for each unit in that stack other than the main defender to take damage. The amount of damaged could either be based on how much damage the attacker inflicts, or just a fixed amount.

Range
When I first played civ3, I mistakenly assumed that ranged combat would be just like normal combat only at a distance :crazyeye: I don't like the way it works in that game because defenders can't shoot back, even if they have sufficient range.
Another thing from civ2 was that ships could attack land units. This made ships very powerful. In civ3 ships could destroy tile improvements too. I think the ships in civ4 could definitely use some ability like that, and some land units should be able to attack ships.

Zones of Control
Civ2 has this, and I miss it in the later games. It means if a unit is in a tile adjacent to an enemy, it can't move into another tile adjacent to an enemy. This allows for more spread out defenses. If you fortify a mountain, the attackers have to defeat the defenders to move past, or take a long route around the fort. They can't just walk right by. Weaker versions of this could be done by allowing units to move into controlled tiles if they're only adjacent to the same hostile units as the starting tile, or by restricting zoc to fortified units, or units in forts and ctiies.
 
@Cruiser76:
My understanding is that, in BtS and AdvCiv, capitulated vassals will trade any tech and resource to their master at a discount, and that resources can be demanded by the master for free as a vassal tribute deal ("time for your tribute"), though the vassal is only guaranteed to accede to the first such demand. You're saying that the master should get the vassal's techs for free? In most cases this would be OK with me, but if the master is far behind the vassal at the time of capitulation, getting all the vassal's techs might be too great a reward, and it would seem more accurate historically to have the master gradually catch up with the vassal in such cases. Anyway, adding an XML option for this doesn't look difficult.

By the way, v0.93 is still going to take several weeks as I've continued adjusting various parts of the AI and haven't played a full test game since the release of v0.92. In the all-AI games I've been running, I didn't detect oscillating trades (canceled and immediately reimplemented), so it's possible that the problem is fixed by now; that said, I haven't really done anything to fix it, and it could very well only occur when a human player is involved.

I've put a release DLL (v0.92e – edit: now v0.92f) on GitHub in case anyone wants to play with the recent changes. I think they might do more good than harm despite the lack of proper testing. Here are the additions to the release notes since v0.92d (see this post and the one thereafter for the v0.92d notes):
Spoiler :
Revised the optional info about Great Person discoveries ("bulb paths") on the Tech Advisor (details: see change 004a in the manual), and moved it into the unused space in the footer of the screen – an idea from the Dawn of Civilization mod. By default, the option is still disabled; can be enabled by checking "GP Research" on the Advisors tab of the BUG menu.

The war resolution of the Apostolic Palace (AP) can now target any civ whose state religion differs from the AP religion, even if that civ is an AP member. I've merged this change from DarkLunaPhantom's Kek-Mod v0.20 along with bugfixes and adjustments to visibility and culture in conquered cities.

Debug tools (WorldBuilder, Debug mode, AI Auto Play) can now be enabled in multiplayer mode. I've run some multiplayer games on Auto Play and fixed a few synchronization ("OOS") errors in AdvCiv code. However, not all OOS errors can be found through Auto Play, and there are probably also other errors in the code that only human multiplayer testing will reveal, so I still can't really recommend the mod for multiplayer games.
"No Slavery" option on the Custom Game screen. This prevents humans from adopting the Slavery civic, which should make the game more challenging on the strategic level and less fiddly. A temporary measure until I manage to implement a replacement for the hurry (whip) ability. The option is disabled by default (i.e. Slavery is enabled by default). [change 912d]

The game settings are recorded in replay files and appear as the first replay message. [advc.106h]
And misc. AI improvements (found value, tech value, war and peace).

Additions in v0.92f:
"No Slavery" option on the Custom Game screen. This prevents humans from adopting the Slavery civic, which should make the game more challenging on the strategic level and less fiddly. A temporary measure until I manage to implement a replacement for the hurry (whip) ability. The option is disabled by default (i.e. Slavery is enabled by default).

The game settings are recorded in replay files and appear as the first replay message.
 
Last edited:
I haven't tried this mod yet, but I saw the discussion about combat and I have some ideas. [...]
Thanks for chiming in!

On Zones of Control: It's tempting because the rules change would be easy to implement. (Here's an implementation by @Andera412.) There might be a performance penalty (according to this post by Afforess), but the main problem I'm seeing is that the AI doesn't know how to bypass a well-defended chokepoint. If there's a hill fort on an isthmus held by Machine Guns, the AI will suicide any number of units into it, I think even if the tile is very obviously unassailable. It looks difficult to me to teach the AI how to weigh an alternative route, usually by sea, especially when defenders could move into and out of the chokepoint at any time.
 
Another idea for limiting stacks would be to have a limit to the number of attacks allowed from each tile on a turn. It wouldn't really punish stacking, but it would encourage splitting them up more.
 
Edit (Dec 2018): DLL for v0.94

Here it is:
CvGameCoreDLL.dll (48 civs)
[Edit: includes the bugfix mentioned a few posts later]
AI turns are going to be slow though; see this post. (I hope I can improve this in some later version, by having the AI rule out most civs as war targets based on some simple heuristics.)
 
Last edited:
Oh hey, one other thing. When I download the newest version it still downloads 0.92. Not sure why, but I don't think it's on my end. Am I missing something dumb?
 
Top Bottom