[Freeciv-Dev] Re: transitive alliances
[Top] [All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
On Tue, 25 Mar 2003, Per I. Mathisen wrote:
> On Tue, 25 Mar 2003, Gregory Berkolaiko wrote:
> > 2. It would be good to enforce "transitivity" of alliances: "if A allied
> > to B and B allied to C, then A is allied to C".Or, at least "if A allied
> > to B and B allied to C, then A cannot be at war with C".
>
> This is a very good idea. I've been struggling with transitiveness of war
> and alliances in the AI diplomacy code, and some ideas on how to solve
> this in a more general way would be much appreciated.
>
> Automatic transitiveness, ie "if A allies B who is allied to C then A is
> allied to C as well", gets into trouble in some odd but important cases.
> For example if C is at war with A.
>
> In order to get sane transitiveness, we'd need it also for war and peace.
> So if A allies B, all A's allies also allies B. If A declares war on B,
> all A's allies declare war on B. If A makes peace with B, all A's allies
> make peace with B. However, this can quickly become unruly for large
> alliances because of lack of communication between allies. A sort of
> voting system might be needed where allies may vote over
> peace/war/alliance suggestions of allied players.
Ugh, having now thought about it I regret that I mentioned it...
All I wanted is an easy check for whether we can move or attack a tile.
But such check seems to exist irrespectful of alliance transitivity.
Anyway, back to transitivity.
First, voting is out. Too much bother for no gain.
Second, I now feel that alliance transitivity is not good:
if A allies with B than he automatically allies with C, possibly against
C's wishes. Moreover, A's allies also ally with C...
Third, declaration of war should be somewhat transitive: if A declares war
on B then it amounts to declaring war on B's ally C as well. The state of
war should _not_ be transitive: in a couple of turns C can agree a peace
deal with A, while A and B still battle on.
Fourth, to prevent ugly wars between allies of B, we can forbid A to ally
with B if A is currently at war with B's ally C. But do we want to do it?
Sorry, I feel I am not being very helpful here...
G.
>
> -
>
> The problem in the AI diplomacy patch is that you have to choose between
> three evils:
> 1) you allow individual AIs in an alliance to agree to peace with an
> enemy of its allies, but then open up an endless number of possibilities
> for an enemy to easily break up an AI alliance by playing them against
> each other, since some members of the alliance will not be as much in
> favour of that particular war as some others and only agreed to war by
> peer pressure; that peer pressure will splinter the alliance when some
> members refuse to honour alliance obligations;
> 2) you allow individual AIs to agree to peace as above, but they
> immediately revert back to war next turn; this however is problematic
> since it is a counterintuitive way of doing diplomacy, and it will totally
> ruin an AI player's reputation; and reputation is vital in the AI
> diplomacy patch;
> 3) the allied AIs will never agree to peace with someone they are
> mutually at war with, even if all AIs individually want peace - this is
> the solution chosen in the AI diplomacy patch; it is a solution that is
> simple, efficient and frustrating.
>
> (This problem can be solved by inter-AI communication, but this is a very
> hard task, and that solution is therefore not available to crack this
> nut.)
>
> </rant>
>
> - Per
>
>
>
|
|