Complete.Org: Mailing Lists: Archives: freeciv-dev: May 2004:
[Freeciv-Dev] Re: Diplomacy problems and ideas (PR#8394)
Home

[Freeciv-Dev] Re: Diplomacy problems and ideas (PR#8394)

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: per@xxxxxxxxxxx
Subject: [Freeciv-Dev] Re: Diplomacy problems and ideas (PR#8394)
From: "Gregory Berkolaiko" <Gregory.Berkolaiko@xxxxxxxxxxxxx>
Date: Thu, 20 May 2004 13:08:28 -0700
Reply-to: rt@xxxxxxxxxxx

<URL: http://rt.freeciv.org/Ticket/Display.html?id=8394 >

Per,

I took some time to read the archive and I am glad you are also not happy 
with your original model.  An alliance with an all-powerful leader is a 
pain to be in.

This is what you wrote earlier:
"In my view, an alliance is exactly this: When it comes to war, _you stand
together_. If this does not hold, then I don't see why you need an
alliance in the first place."

I am sure we can do this without making alliances big and formal, like 
teams.  Alliances should stay one-to-one relationship.  And we can design 
rules to keep them consistent.

BTW, what I am writing could be opposite to what I was saying before, or 
it could be already implemented in Freeciv, this is the memory thing.

Notation: A and B are in alliance.  C is another player.

Rule 1: Alliance is a mutual protection agreement, nothing more.  If C 
declares war on A it will be immediately at war with C as well (through no 
additional reputation loss to anyone).

Rule 2: If A is at war with C and B is not, A has a right to ask B to
declare war or nullify the alliance.  If the second option is chosen by B,
it is B who suffers the penalty (later on technical implementation).  If B
chooses to declare war, there is no reputation penalty (or even a bonus?).

Rule 3: If both A and B are at war with C, (a) B may agree on a cease-fire 
with C, (b) B may sign a peace treaty with C, but with a certain 
reputation loss, (c) B may not enter into an alliance with C.

Optional amendment: The penalty in rule 3(b) is aimed at preventing people
from formally fulfiling their obligations to an ally and then stopping the
war right away.  Instead, we can create a "deferred penalty": if B
declares war on C either through aggression of C or through a request from
A, it suffers no reputation penalty unless he stops the war too soon.  
This "deferred penalty" slowly decreases to zero as the war goes on.

Technical note:  How to implement A's ultimatum in rule 2?  Simple, no
need for dialogs, A just puts B on a countdown.  In X turns B will
automatically declare war unless he denounces the alliance (and suffers
the penalty) or A removes the countdown manually or by stopping the war
with C.

So basically it's the same as Per's ultimatum but without much GUI and 
with some time to think.

As far as I can see the above rules prevent the love-love-hate triangle
from appearing.  Something I didn't notice?

G.


On Thu, 20 May 2004, Per Inge Mathisen wrote:

> 
> <URL: http://rt.freeciv.org/Ticket/Display.html?id=8394 >
> 
> I've been mulling over Jason's criticism of this patch, and sat down to
> play Master of Orion 2 for some hours while imagining that it had the kind
> of alliances this patch would give. Moo2 is a game I think has a great
> diplomacy model.
> 
> Turns out I probably wouldn't have liked it.
> 
> It also dawned on me that my biggest problem with the Freeciv diplomacy
> model is that there is no way to get a clear answer.
> 
> In Moo2, your AI ally can 'meet' you by opening up the diplomatics screen
> and present you with a 'Yes' and 'No' question regarding honouring your
> alliance by declaring war on a third party. If you say no, your alliance
> is most likely history, and possibly a few other treaties as well as a
> punitive measure. Say yes and you have war, and the AI is happy.
> 
> In Freeciv, there was no way to make sure I had the player's attention. So
> the AI sends a message to the player that it would like him to declare war
> on a third party, but the AI cannot assume this message has been read,
> since it might have gotten lost in a flurry of messages generated by the
> server, or the player may have chosen to defer the question because of
> timeout stress. So the AI keeps asking, until it runs out of patience.
> When it does, the AI has to break the treaty and take the reputation
> penalty, not you.
> 
> This also becomes a problem with adding borders support in (AI) diplomacy.
> In Civ2 and Civ3, the AI would frequently ask you to remove your troops,
> and if you agreed, the troops would bounce right off the AI's lands
> immediately. In Freeciv, the AI would have to pop up a diplomacy dialog,
> at best, with this as an option. And it would have to wait at least one
> full turn, since timeout could slice in if we popped the dialog up
> immediately when a unit enters AI land, before the AI can take action, and
> again the AI would have to be the one to break the treaty and take the
> reputation penalty and possible cascading alliance fallout, not you. Also
> since you now have two full turns before you have to respond negatively on
> the AI's request to remove your troops, it does rather little to prevent
> sneak attacks.
> 
> Could we extend 'has_reason_to_cancel' to cover who gets the blame and who
> gets their alliances torn in case of war? It is possible, but it is not
> very clean. It will not always be obvious why one side got it.
> 
> Here is my idea for a solution:
> 
> In between turns, we have a 'diplomacy phase'. Each player gets a
> diplomacy screen (for gui-fs) or a non-modal dialog (for windowed
> clients). This phase has its own timeout, perhaps some percentage of the
> real timeout (50% gives us a minimum of 20 secs for pubserver games -
> should be enough). The phase only kicks in if necessary, and replaces the
> current diplomacy dialog.
> 
> I do not know how this screen/dialog should be designed, but it should be
> possible for both players and AI to pose 'ultimatums' that _have_ to be
> answered or else bad stuff happens. It should also be possible for
> many-to-many votes to resolve out-of-game votes (changing server options,
> kicking players, etc), for votes in democratic teams and a true United
> Nations (doesn't SMAC require this?).
> 
> A general dialogue-like dialog would also allow for some more flexibility
> in dealing with the AI diplomacy-wise. For example, in Moo2 the AI will
> ask you for a tech, and offer you a pick from a limited list of techs it
> can offer in exchange. We could also throw in some more interesting ways
> to deal with spacerace (it currently just warns you, then declares war
> later), pollution, borders, nuclear war and surrender.
> 
> As to the alliances patch, I think we should perhaps not unify alliances
> and teams after all. Instead, I can adapt the patch to enable the creation
> of teams in-game as a treaty level higher than the current alliances. You
> should be able to set a tech requirement for creating in-game teams in the
> ruleset (thus civ1/2 rulesets are not affected), and for default have this
> tech requirement be some medium-level tech (don't know which). Then we can
> have another tech requirement (Radio?) for being able to turn the alliance
> turn into a 'team research' Borg collective, as a votable option. For
> pre-game teams, these requirements are waived. The 'team leader' concept
> is retired in favour of team voting.
> 
> Ok, so this is quite a mouthful. Comments, please. If we agree this is the
> way to go, I will code it for the AI and the server, but I will definitely
> need help on the client side.
> 
>   - Per
> 
> 
> 




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