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

[Freeciv-Dev] 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] Diplomacy problems and ideas (PR#8394)
From: "Per Inge Mathisen" <per@xxxxxxxxxxx>
Date: Thu, 20 May 2004 02:16:03 -0700
Reply-to: rt@xxxxxxxxxxx

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