As a French person I feel like it's my duty to explain strikes to you. - AdrienIer

Create an account  

 
Diplomacy changes needed?

The diplomacy system in the game currently is pretty harsh. It was designed that way for two reasons, first to make up for the weak AI by mercilessly attacking the player whenever it is beneficial, and second for flavor reasons (ultimately this is a game where only one can survive).
However, the AI is now playing far too well and this is starting to become a serious flaw instead of a feature. It's pretty much impossible for the human player to deal with fighting multiple wars on the higher difficulties - two might still work but 3 or 4 are close to hopeless. It also makes slower strategies weak or outright unplayable, and encourages rush tactics which is exactly the opposite of my preferences.
Here, I'll make a list of diplomacy features that are related to this problem and try to come up with solutions for them.

1. Militarist/Expansionist war declaration

The greatest culprit. On a high difficulty it's usually impossible to avoid this due to the advantage the AI has in their military power in the early game and the chance to have at least one enemy wizard with these objectives is high. This war declaration is often devastating even in the early game, if contact is made with the Militarist wizard at a bad timing.

Possible solutions :
1a. Remove the difficulty modifier from the formula. The additional troops the AI has already makes it more likely to trigger on higher difficulties.
1b. Limit the first turn this can happen to the human player to turn 150 or later. This gives the human player enough time to build up their military or make friends with the AI and raise relation to the point where war won't be declared.
1c. Both of the above
1d. Both of the above but make the military modifier part scale linearly based on turn count instead of being limited to 150 of later. Meaning at turn 150% it has the original effect, at turn 75 it has half, at turn 300 it has double, etc. Doing this can make the militarist backstab weak allies in the late game, while still making it easier for the early game.

2. Generic war declaration
This triggers if the human player has military power close to what the AI has. Unlikely to become a major problem on high difficulty and easy to avoid by being careful not to raise military too high.

2a. No changes needed

3. AI Alliances

An Ally of an AI being at war with the player also declares war unless they cannot for some reason. Lawful and Peaceful wizards are the most likely to form alliances with others, who rarely declare war for other reasons. If the human player can avoid being at war against their will with other AI players, this type of war is also automatically avoided.

3a. No changes needed, the player should avoid picking a fight with other members of the alliance.
3b. The personality modifier's effect should be lower, peaceful and lawful wizards make alliances too easily.
3c. The threshold for forming the treaty needs to be higher but the formula should be the same.
3d. The personality modifier for Lawful and Peaceful should be lower (+40 ->+30 and +80 -> +50). This has a global effect on all diplomacy.
3e. The difficulty modifier in AI to AI diplomacy should be lower or removed

4. Difficulty+Relation war check
Wizards with a low relation automatically declare war on the player if the player is in fewer wars than the difficulty level. This needs a very low relation, so it's unlikely to have any wizards start in this range unless playing 10+ books of the same alignment, usually the cause of this is the player angering the wizard with spells or attacks.

4a. No changes needed. If the player angers a wizard, they should declare war.
4b. The number of wars/difficulty should be replaced by a constant 2. If the player is already in 2 wars, no one should declare war on them just for having a low relation score.
4c. No changes needed. However, settlers should not have a higher penalty to relation when killed than other normal units. Most early wars break out when the AI sends a settler to their territory. (the attack still triggers hostility anyway so this wouldn't mean much)

5. Tribute efficiency
The player can choose to offer gold as tribute based on the treasury of the target. On higher difficulties, the AI has vast riches, so offering gold to them is impossible. The only other way to raise relation, offering spells, depends on having shared realms so it's often also impossible.

5a. No change needed.
5b. Gold tributes should be based on the turn count, not the treasury of the target. It should be X gold/turn for the lowest offer, and 4 for the highest. (turn 100 = 100-400 gold for example)
5c.Same as above but the amount is also scaled slightly by the amount of gold the target wizard has, for example +25% for each times they have the amount of gold already (so turn 100 costs 100-400 but if the wizard has 800 gold then it's 125-500 instead, at 1600 it's 200-800 etc.)

6. War Weariness/ Peace Treaty
Currently, War weariness starts to happen only if the player has at least half the military power of the enemy. This means the only way to get out of such a war is by offering 3-4 spells at the same turn and then ask for peace. This is unlikely to be an option for the player in most cases, and definitely not repeatedly, as a stronger enemy usually has more spells known.

6a. No change needed. The player should avoid getting into wars, instead of getting an easy way out.
6b. No change needed. Doing 5b or 5c ensures the player can buy peace if necessary, although at a cost of several thousand gold.
6c. War weariness should start happening at 25% army strength or higher instead of 50% or higher.

7. Offering treaties
When the player offers a treaty, military power is considered. This makes it very hard to make allies on higher difficulty. All of the changes here also affect Peace Treaty offers and DoW/Break Alliance requests.

7a. No change needed. Forming a WP or Alliance is a huge advantage and should not be easily accessible. When the AI makes their offers, they ignore military anyway.
7b. The military modifier should have a halved effect in the formula.
7c. The difficulty modifier should be removed from the formula. Higher difficulties mean more military advantage for the AI so there is no need for an additional modifier.
7d. The difficulty modifier should be removed from the formula and added into the AI's treaty offers to the human player. On higher difficulties, the AI should offer less treaties on their own but there should be no penalty to offers made by the human player.


I think that's all the related features. I believe the ideal solution might be 1c or d, 2a, 3a or d, 4a, 5c, 6b, 7d but I'd like to hear opinions.
Reply

Ugh. I kind of wish I knew the diplomacy system better, although you've done an excellent job of summarizing it here.

1) if d was chosen, I would put a cap on it for the current amount - basically, allowing it to scale linearly but only until it reached the current point.

However, I think that this is much more closely linked to point 2 than you seem to.

Ideally to me point 1 and point 2 would be linked based on difficulty. On easy or normal I think only a militarist/expansionist opponent should declare war based on human military size. Then, as the difficulty increases, the other AI types would have an increasing chance, until difficulty reached impossible which is the only one where other AI types would reliably declare war due to human military size.

Hum. Let me back this up again. I think on normal and easy, each AI type should only have one scenario they will declare war that is NOT based on relations.
So, a militarist on low difficulties will declare war based on human military - either when the human is gaining parity, as point 2 currently stands (or maybe only a high chance of this, 80% or so) or when they have a significant military advantage, and in this case I would use the modified 1d I proposed above.
An expansionist would declare war only when the human reached a certain number of cities, or if the human targetted the AIs settlers (as you mention in 4c, this would mean for other AI types, the modifier for attacking setllers would be removed - but for expansionists it would remain.)
Lawful would declare war if the Human attacked the lawful AI troops when any treaty was in place, or attacked the lawful AI city for any reason. They would also have a high chance to declare war if the human attacked another AI without declaring war first.
Peaceful would declare war only if an ally asked them to, and the chance of them declaring a relation war would be much lower than other ai types.

Then, as difficulty increased, each AI type would start to get a chance to trigger wars that are based on another AI type, and at impossible they would trigger other AI type wars about 50% of the time compared to the base AI type war (so the increasing difficulty mentioned in the following paragraph would only apply to the appropriate AI type). Note that this is significantly different to your proposed 2a.
In addition, as difficulty increases, each AI type should get more dangerous at their own war types. Militarist turn limit should decrease (from 150 on normal to 100 on impossible), and the parity war chance would be 100% on impossible.
Expansionist would declare war when human has fewer cities, and their settler modified should increase, as well as a modifier for hamlets.
Lawful on impossible would always declare war if the human attacked any AI without declaring war, or the human attacked any of the lawful ai troops for any reason.
Peaceful would be willing to to declare war if asked by someone who had a treaty (not just alliance) with them, and their relation wars would be more common (though even on impossible they wouldn't be as common as other AI types).

I think that covers sections 1-3. Section 4, I definitely think relation wars should be based on difficulty, but I've also proposed changes to settlers as above.
Actually I skipped section 3. So, I think the difficulty modifier should be completely removed from treaty offers, not just from AI to AI treaties. The AI gain many more chances to declare war as above, which are regardless of treaties, so I'd like to give relations back as a significant thing at higher difficulties to counteract that.

Section 5 I think should have some influence by difficulty, so I like 5c.

War weariness should be based on turns without winning a battle. I doubt that's actually codable so I would go 6c.

I like 7d but I don't know enough of the specifics to really be sure of this.

Edit: added section 3.
Reply

Quote: I think on normal and easy, each AI type should only have one scenario they will declare war that is NOT based on relations.

Both militarist and generic are based on relations, or it's more precise to say on relations too. They are formulas that are a sum of relation, personality and a military modifier which depends on the type : In cast of militarist, it is proportional to (player army/AI army) so more player army can substitute for more relation and the opposite. In case of generic, it's a formula that is lowest when the two players have an equal army strength, so army strength difference in either direction can substitute for relation points.
the exact formulas are here (CoM uses what is listed as 1.50) http://masterofmagic.wikia.com/wiki/Need..._war_check

While I understand your suggestion, it would be extremely difficult to implement and even harder to properly balance. While it's not the same thing, the personality modifier does have a similar effect, by altering the sum in the formulas. The closer the personality is to peaceful, the lower the other modifiers have to be to get into a war. A Lawful wizard's +40 means you either need 40 worse relations or ~28% lower armies (for militarist) or 28% closer to equal armies (for generic) for the war to start. Peaceful's +80 is double that (although militarist is explicitly disabled for them). Aggressive wizards are +10 (not much but 10 relation is not a trivial amount either), Ruthless at +5 and Maniacal at +0 are the most likely to declare these wars, and Chaotic at +20 is exactly half as much modifier as Lawful.

Quote:War weariness should be based on turns without winning a battle.

On which side? There already is such a system, every time a player kills enemy units as the attacker, the loser's peace interest is reduced proportionally to the amount of lost units. In other words, attacking someone makes them not have war weariness. Leaving them alone (or them attacking you) does nothing and lets war weariness work normally, which is a bonus to peace interest each turn if your military is 50% or higher than theirs, and a reduction if lower.

Quote:I like 7d but I don't know enough of the specifics to really be sure of this.
Right now there is a -10 for each level of difficulty when the player offers a treaty. So you need a 10 better roll, relation, or military for each level of difficulty to get the treaty accepted.
When the AI decides to offer a treaty to you, the chance is the same on all difficulty level.
7d means we swap these two, so higher difficulty means the AI offers less on their own, but the player has the same chance to succeed in their offer. (This also includes the peace treaty, declare war on X, break alliance with X features when the player is making the offer, not just the pact and alliance offers. It affects the pact, alliance, and trades when the AI is offering.)
Reply

Wondered if that might be the case. I've looked at the diplomacy formulas before, unfortunately, I've never got around to truly taking the time to understand it.

For war weariness, I mean that war weariness should be purely based on turns since you have won a battle. So wizard a is fighting wizard b. If neither attack for 2 turns, war weariness goes up two turns worth for both wizards. A attacks b on turn 3, but b wins. Now b has no war weakness, and a has 3 turns worth. (Alternatively, it should be that winning a battle only reduces war weariness, not eliminates it.)

This has nothing to do with lost units. However thinking about it, this system would be too abusable, thus the lost units system.

See, I don't know it well enough. Bleh. However, I don't think war weariness should have anything to do with comparative military. Comparative military is great to judge if you should go to war - once war starts, the only thing that matters is results. I also don't think it should matter if you are the attacker or not. If you are losing units, its bad.

However that falls into the trap of multiple ongoing wars. So.

A) i think war weariness for a given wizard should increase any turn there is no battle with the wizard they are at war with. (Each wizard would have a distinct war weariness score for every war they are in.) This should be a small amount.

B) War weariness should then increase every time they lose a battle. Probably a static amount.
War weariness should decrease every time they win a battle - this amount should get smaller for every battle they win within 2 turns of the last win.
These should be medium amounts.

C) War weariness should increase based on units lost.
A base amount based on the raw cost of the unit (with a modifier for experience and magic items and buffs.).
A secondary amount which is proportional to the army strength of the unit compared to the wizards overall army strength.
A tertiary amount which is proportional to the army strength of the unit compared to the army strength of the wizards strongest unit.
(I'd like a fourth one based on comparing to the strongest unit the wizard had when the wizard declared war but that's excessively hard to implement and probably won't actually matter much in the long run.)
If all 3 amounts are high, part c) should be the largest factor in determining war weariness.

D) There might also need to be a decrease in war weariness based on units the opponent lost, but it should only be a factor if the unit lost has a high army strength compared to the enemies overall army strength (probably only matter if the unit lost was at least 5% of the enemies overall army strength) and the unit was at least 70-80% as strong as the enemies strongest unit. This could be a large factor, but should still be smaller than factor C above.
Basically, if wizard A kills one of their wizard Bs last strong units, then it should counteract if wizard A lost one of his own strong units (but not if it was also one of wizard As last strong units) so that wizard B can't sue for peace when it only has 2 cities left just because it managed to kill a buffed sky drake. (Unless that was the only sky drake in which case wizard A might accept because he doesn't have enough left to defend himself from other wizards even if might be close to killing wizard B)
Reply

A. This would be hard to do, it requires keeping track of all battles between all players for a turn.
B1. This is doable. However it would need to be limited to the attacker, as the current system reduces war weariness when losing a defensive battle so increasing it for the same would be a contradiction. I'm not sure if this is very good though, as it means the AI is willing to offer peace after wearing down the mana reserves and garrisons of the opposition, but before they actually start winning the battles. Overall this is a very poor strategy for someone who has a significant advantage.
B2. This is impossible, no history of battles is being stored. Easy if there is no reduction after 2 turns.
C. While I kinda agree with it, most of the AI's success comes from their willingness to sacrifices their superior numbers. If the AI can beat 1 halberdier by losing 1 of their own, but has 3 times more overall armies, they're winning, and should continue.
C1. Disagree here. A late game war has so many units participating that war weariness would happen in the first turn if this is in any way part of the formula
C2.This sounds the best but impossible to implement. A typical unit is insignificant compared to the entire army so each unit would be worth like, 0.05 Peace Interest points. Except it's an integer value so it would be rounded down to 0 and have no effect.
C3. This is the same as C1 except weaker units are scaled down. Still if the AI throws 300 halberdiers at the player and loses them, it'd be enough to stop the war after a single turn.


I feel the overall military system that currently exists works better - if the AI performs poorly over long term, eventually their military advantage should disappear and war weariness should start. If they can maintain their advantage, they are doing well and should continue. The question is, how much advantage is where "doing well" starts. Double sounds a lot but having double advantage over one player, while 3 others who aren't fighting can keep powering up is bad. Doing the same when the enemy is the last person standing, or others are too weak to matter is a good strategy.

A system where Peace Interest is based on the total power of the AI in the war and their allies compared to the sum of everyone else is probably what would make the best strategic decisions but...that would make it even more impossible to get out of a 3v1 or 4v1 alliance based war. Unless it considers the average power of allied players instead of to sum, hmm...that would actually help. If the player can get strong enough to be on par with the average strength of others, everyone's Peace Interest could go up at the same rate, making peace with all members in the alliance at the same timing easier - which is necessary to prevent the restart of the war.
Reply

How does the following system for the Peace Interest (war weariness) variable sound ?

- At end of turn, gain Peace Interest equal to Personality+15-10*Avg(Own and allied military)/Avg(Nonally player military, with actual wars at triple weight), instead of all other gains or losses that currently exists.
- Successfully taking a city reduces Peace Interest of the attacker by 25
- Hostile actions (killing units, taking cities, etc) reduce Peace Interest on the target (loser), no change here.
- Everything else also unchanged

I also assume the better availability of gold tributes should help a lot in stopping war.
Reply

Not that I think its going to work, but yeah the idea is to have all 4 letters at once, and you'd have to have all 3 parts of c. So, for instance not fighting could be something like set a variable (of an array of 4 one for each wizard) at start of players turn to 1. Every battle with that wizard start set it to 0. At end of turn, if its 1, increase your war weariness and your opponents war weariness.

For discussion sake say that not fighting for a turn increases it by 10.

B) losing a battle increases war weariness by 40. Winning a battle increases by 100 (in theory decreasing by 2 for each battle won, resetting to 100 if no battle won within last two turns, won't try to figure that in coding terms unless you actually wanted to use the overall system.)

C1) losing a halberdier (cost 60) would increase war weariness by 3. Experience could increase this to 6.

(Might need to make the amount based on cosy further modified by year, so that a halberdier is worth 6 early on, but only 2 by late game)

C2) Add 1 point to unit value for each percent of your army strength it is. For most AI, this would result in a halberdier getting 0 points added from this factor, allowing them to hurl tons of halberdiers at the enemy without adding to war weariness. This factor is mostly meant to start mattering when the AI army is low enough that one unit makes a difference.

C2) if an AI has 200+ halberdiers, and one great frake, losing the great drake should be a huge blow, but c1 won't notice it. So, for each 5 percentage of strength compared to your strongest unit, war weakness would increase by 1. So losing the great drake would be another 20 points on top of the increase from its bade cost and buffs.

D) would follow similar things but might not be needed.

If the AI won a battle but lost 8 halberdiers their war weariness would decrease if a halberdier doesn't mean much to them. If it was early game, that might be a big chunk of its army, in which case despite winning their war weariness increases.

If the ai was the halberdiers and great drake listed above, and they won the battle, bit lost the great drake, the war weariness would go down even though the rraje isn't a big chunk of the army, but rather because its their strongest unit so losing it is a big blow.


Having said all this, c2 would probably need to be calculated by adding all lost units together, while c3 would be calculated for each lost unit separately.


Personally, I think getting out if a 3 or 4 v1 war should be super hard. But getting into a 3 or 4 v 1 I think should be harder than it currently is. Aside from early early wars, I think that's the next biggest flaw in the system.

Edit: looking it over, I think c2 and c3 would have to be modifiers on c1 rather than flat numbers in their own right.
Reply

Also, I know it is the case, but why is only the attacker considered for war weariness on a loss? I just don't understand the reasoning there at all.
Reply

(January 14th, 2017, 13:18)Nelphine Wrote: Also, I know it is the case, but why is only the attacker considered for war weariness on a loss? I just don't understand the reasoning there at all.

Getting attacked and losing something of a value (or getting corrupted, dispelled, etc) makes you angry and want to strike back. You attacking and losing, your own fault, makes no sense to want revenge for it. You attacking and winning, yes that should probably make you want to continue. I didn't care about it much because if the human player is in a bad enough situation to want the peace AFTER losing their important units and cities, be my guest. They've already lost the game if they are losing territory and are willing to accept that instead of retaliating. And in AI vs AI diplomacy, the loser's peace interest already got reduced and the winner is unlikely to want the peace due to military advantage (if they don't have that, how can they maintain winning? There are no combat spells or abilities in AI vs AI combat, or the raw stats matter)
Reply

1d     Wow. This is actually a level of complexity I didn't think the game could ever be modded at.

2      I find it really weird that if your army is small, they'll attack you, yet if your army is good, they'll attack you. Seems it should be either one or the other, possibly depending on the AIs personality.

3c     I actually wouldn't mind if the values used to form alliances between AIs was different from those involving the player. The AIs have very different resource and military power then the player, which has such a massive effect on diplomacy.

4c   

5      I have no opinion. If I'm keeping enough unspent gold on hand that I can afford tribute, I probably don't need peace all that badly. If I really am desperate and need peace, I probably don't have any cash on hand.

6a   

7c or d



I kinda like the idea of limiting the number of wars. Depending on how things play after this revision you might revisit the idea.
Reply



Forum Jump: