Complete.Org: Mailing Lists: Archives: freeciv-dev: March 2003:
[Freeciv-Dev] Re: transitive alliances
Home

[Freeciv-Dev] Re: transitive alliances

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: "Per I. Mathisen" <per@xxxxxxxxxxx>
Cc: freeciv-dev@xxxxxxxxxxx
Subject: [Freeciv-Dev] Re: transitive alliances
From: Gregory Berkolaiko <Gregory.Berkolaiko@xxxxxxxxxxxx>
Date: Wed, 26 Mar 2003 14:51:12 +0000 (GMT)

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
> 
> 
> 



[Prev in Thread] Current Thread [Next in Thread]