Are you, in fact, a pregnant lady who lives in the apartment next door to Superdeath's parents? - Commodore

Create an account  

 
Caster of Magic - Difficulty level effects

Difficulty has the following effects, unless otherwise noted, it applies both in Caster and the original game :

1. Events are more frequent on higher difficulty.
2. It affects the amount of diplomatic penalty for overextension. The number of towns you are allowed to have is the same, but if you exceed it, more diplomatic points are lost.
3. After Turn 200, AI to AI diplomacy negative events are reduced, by a divisor of 2 on hard or extreme, and 3 on impossible. Positive events are doubled on all difficulty after turn 200.
4. AI will run the "AI to AI" diplomacy routine more frequently. This includes both the positive and negative actions. Note that this process had a huge amount of severe bugs in the original game, like AI trading spells during war, or forming alliances before pacts, etc.
5. Chaotic wizards have a difficulty level/300 chance of declaring war at random on anyone (why not just the player?)
6. On Normal and above, wizards with a relation of -30 or worse have a random chance to declare war if total number of wizards at war with the player is below the difficulty level. (wow, bug, why would the AI do this to other AI, this should only happen to the player?)
7. On easy difficulty if the AI wants to break a treaty to open the way to a future declaration of war, it is unable to do so.
8. On easy and normal, fleeing is always successful. Caster changed it to easy only.
9. AI power, gold, research income, population growth, and maintenance is adjusted by difficulty
10. The AI will be less observant of player towns with low amount of defenders on Easy and Normal. (although this only applies to units standing near the town so it's a minor effect)
11. Affects rampaging monsters and raiders
12. Militarist and Expansionist wizards receive an extra +10/level for the "expansion war needed" checks on Caster only. Starting from 0.87 this modifier only applies towards the player. Original had a completely different roll for this.
13. Everyone receives an extra +20/level for the "generic war needed" checks on Caster only. Starting from 0.87 this modifier only applies towards the player. Original had a completely different roll for this.


I think most of these are fine, but maybe "3." could happen earlier?
Also need to fix the bug with "6."
Reply

Why not just the player? Because that's Chaotic for you...you never know what those people will do.

"wow, bug, why would the AI do this to other AI"

Yaknow, design decisions aren't bugs. I think you're really fast to call things bugs. Not fitting your preconceptions isn't a bug. smoke
Reply

(November 6th, 2015, 09:30)Tiltowait Wrote: Why not just the player? Because that's Chaotic for you...you never know what those people will do.

"wow, bug, why would the AI do this to other AI"

Yaknow, design decisions aren't bugs. I think you're really fast to call things bugs. Not fitting your preconceptions isn't a bug. smoke

So, you are saying Wizard A seeing "The player is at war with only 2 people, but this difficulty level would require 3. So I'll declare war on...Wizard B" is not a bug?
If it was checking "Wizard B is not in enough wars..." then sure, but it is explicitly always checking the player only, even if the target for the war is someone else.

Chaotic, the problem is not that they declare war at random, that's a great feature. Even if the target is not the player.
The problem is higher difficulty, a setting that is meant to make the game harder to win for the PLAYER is increasing the odds of the AI declaring war on other AI just as much as on the player, so it is making the game harder to win for everyone instead. Which does not increase the overall difficulty at all towards the player.
It should be difficulty/300 for the player and 1/300 for everyone else. I'm not gonna bother changing this one, but it certainly doesn't sound right.

Also, regarding diplomacy at least, there is no way of knowing what is a bug and what is a design decision. There is no official information, is there? I have to make guesses. After seeing that the AI can trade spells with other AI when the two are at war, can form an alliance during war, cannot offer anything to the player because it would require both good and bad relation at the same time, and uses the wrong player's variables when deciding on peace, etc, the list is really long now, I do have a quite large bias towards assuming things are bugs, not intentional features.
Reply

difficulty/300 for all players mean this wizard become more chaotical with increasing difficulty,
whereas difficulty/300 for player and 1/300 per other wizards means this wizard become less chaotical and more agressive to the player.
Reply

(November 6th, 2015, 11:49)Asfex Wrote: difficulty/300 for all players mean this wizard become more chaotical with increasing difficulty,
whereas difficulty/300 for player and 1/300 per other wizards means this wizard become less chaotical and more agressive to the player.

Exactly. I think "more chaotic" is what they intended so I'm not changing this one, I just think "more aggressive towards player" has a better correlation with difficulty. Both makes sense in a way.

About the other issue, the code has

1. If the PLAYER has fewer wars ongoing than the level of difficulty
AND
2. Wizard A has a bad relationship with Wizard B
THEN
3. Wizard A has a chance of declaring war on Wizard B.

The condition (2) makes sense. Bad relationship with someone = war with them. Clearly a design decision, no problem with that.

However, condition (1) has absolutely nothing to do with (2) and (3). It's unrelated. It's quite obvious that it's not an intentional decision, but a mistake, as it checks a wizard not involved in the declaration of war, particularly the player. Note that the player can be Wizard B, in which case there is no problem, but Wizard B can also be any other wizard.
The exact same problem is present in the previous war declaration decision which looked like this :

1. If the PLAYER is at war with Wizard C
AND
2. Wizard A is allied with Wizard C
THEN
3. Wizard A declares war on Wizard B.

Again, this would make sense if we assumed that Wizard B=the player, but that was only one of the 4 possibilities. In all other cases, we are declaring war on Wizard B for reasons completely unrelated to him.

There are two ways to fix these.

1. If the PLAYER has fewer wars ongoing than the level of difficulty
AND
2. Wizard A has a bad relationship with Wizard B
THEN
3. Wizard A has a chance of declaring war on the PLAYER

or we can do

1. If WIZARD B has fewer wars ongoing than the level of difficulty
AND
2. Wizard A has a bad relationship with Wizard B
THEN
3. Wizard A has a chance of declaring war on Wizard B.

We don't know which was the intended behavior. For the difficulty level part, the first solution makes more sense, as more aggression of the AI towards other AI has nothing to do with difficulty. For the ally war declaration part, the latter would make more sense, as the AI is supposed to help out it's allies regardless of the target being the player or not.
If we assume these bugs are caused by the person making the code not being aware that this procedure works on all relations not just AI towards player, then solution 1 is correct.
If we assume they knew and make a mistake, forgetting to specify Wizard[B] and instead ending up with Wizard[0] which is the player, then the second solution is correct.

It's very likely that the same was intended for both, but I don't know which. For now, I went for what I think is the best for both, if these is any official information about it, it's never too late to change.
Reply

I interprete the native behaviour this way: step 1: 1. If the PLAYER has fewer wars ongoing than the level of difficulty - this step is made for justifuyng the diplomathy level of the game by the player , to achieve the game difficulty for the player. ( the player must not miss for wars ).
step 2 and step 3 - its a right behaviour for the wizards, that is based on the current level of relationship and not on the deep level - to count number of wars with the opponent wizard.
So, i see there is nothing to fix. However, its not "physic" diplomatic model, but its "player's war " centric diplomatic model. Imagine that all diplomatic relations between all wizards shifts to the level in which the player would in war with number wizards equal the game difficulty level. And you will see there is no thing to fix.
Reply

(November 7th, 2015, 01:41)Asfex Wrote: I interprete the native behaviour this way: step 1: 1. If the PLAYER has fewer wars ongoing than the level of difficulty - this step is made for justifuyng the diplomathy level of the game by the player , to achieve the game difficulty for the player. ( the player must not miss for wars ).
step 2 and step 3 - its a right behaviour for the wizards, that is based on the current level of relationship and not on the deep level - to count number of wars with the opponent wizard.
So, i see there is nothing to fix. However, its not "physic" diplomatic model, but its "player's war " centric diplomatic model. Imagine that all diplomatic relations between all wizards shifts to the level in which the player would in war with number wizards equal the game difficulty level. And you will see there is no thing to fix.

I still don't understand.

If I, the player, have a -29 or better relation with all 4 wizards, which I usually do, they will start fighting each other instead because I'm not in any wars. Wouldn't that actually make the game...a lot easier?
I can't see how that would be intentional design, it does the opposite of what difficulty is supposed to do.
Reply

in vanilla , there, difficalt mean: according difficalt level," increase speed of diplomatic relation in order to achieve the desired number of war state with human player". This means declare war faster each other according diplomatic relations (but do not change relations and characters), if player have too less war status.
Reply

(November 7th, 2015, 09:59)Asfex Wrote: the desired number of war state with human player"
(November 7th, 2015, 09:59)Asfex Wrote: This means declare war faster each other

So, what does the two have to do with each other? More wars between AI does not lead to more wars with the player.
It leads to less war with the player because the AI uses resources (units) in those wars and does not have enough left to declare war on the player.
Fewer AI units = less wars declared + higher chance of peace treaty being accepted. Even in vanilla AI, although that only considers units on his starting continent.

I think I understand what you mean now, they don't want to directly increase player war chance, but only war chance in general.
Maybe, just maybe, that might have been a real design decision. If so, it was a pretty bad decision however, as faster war declaration has very poor correlation with game difficulty, in fact there is a 3:4 chance that such a war declaration helps the player, and only 1:4 that the player is the target. The player can be careful with the relations to avoid -30 or lower, other AI cannot, making this beneficial to the player even more than it already is.

This, however, does not answer why there is the exact same pattern present in

Quote:1. If the PLAYER is at war with Wizard C
AND
2. Wizard A is allied with Wizard C
THEN
3. Wizard A declares war on Wizard B unless Wizard B is also an ally.

which is directly prior to the other check, and was most likely coded by the same staff member.
This one is unrelated to difficulty, it does "If the player is at war with my ally, I declare war on anyone I can, regardless of relations."

The only way this would make sense was if the war declaration would go towards the ally's enemy instead of another person.

I still believe both are accidental bugs, it's more likely than having an intentional decision and a bug that follows the exact same pattern next to each other.
Reply



Forum Jump: