Complete.Org: Mailing Lists: Archives: freeciv-dev: July 2004:
[Freeciv-Dev] New diplomacy model (PR#8394)
Home

[Freeciv-Dev] New diplomacy model (PR#8394)

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: per@xxxxxxxxxxx
Subject: [Freeciv-Dev] New diplomacy model (PR#8394)
From: "Per Inge Mathisen" <per@xxxxxxxxxxx>
Date: Mon, 12 Jul 2004 08:15:40 -0700
Reply-to: rt@xxxxxxxxxxx

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

Here is an idea on how to make the freeciv diplomacy model more flexible,
more bulletproof and less annoying. Read previous posts in this thread
and in the mail archive under "Diplomacy problems" for a description of
the problems.

I would like to introduce the general concept of an "emissary" and a
"emissary meeting".

Emissaries are only sent as a result of diplomacy or server voting. When a
player receives an emissary, the turn done button is unset (if pressed)
and if the timeout is under X, it is set to X - where X is a server set
value (/set mindiplotime).

The client should display the fact that it has received emissaries
prominently but without popups. The player can choose to ignore them or to
meet with them. Acting on an emissary should bring up an emissary meeting
non-modal dialog (or fullscreen dialog for gui-fs). After starting this
dialog, the server will not accept anything other than emissary-related
actions from the player involved, until the dialog is closed and the
client sends an "emissary meeting over" packet. The turn will not end
while any player is still in an emissary meeting.

(A separate timeout for the emissary meeting is a possibility, but if
not necessary I'd rather not.)

In an emissary meeting the player answers a "question" (demand, offer or
ultimatum) posed by another player. The offering player is not involved in
the meeting.

The emissary request has two possible outcomes - acceptance or rejection.
The receiving player has three possible options - meet & accept, meet &
reject, or ignore emissary (the default). The result of meet & reject is
identical to that of ignore emissary.

Emissaries are of three basic types: Server votes, Diplomatic negotiation
and Diplomatic demands. (I want to later add a fourth: United Nations or
Planetary Council votes.)

For diplomatic negotiations, the offering player can put together a
"package" of actions just like in the current diplomacy dialog. For server
votes, each command is a separate vote, and the server options conn dialog
is used to issue them.

(BTW: That the server options dialog is disabled for cmdlevel info players
currently is a bug. It should be enabled so that it can be used to issue
votes!)

For ultimatums, the offering player chooses one ultimatum type, possibly a
target, and checks on/off for "bluff". Each ultimatum has one penalty
which will be invoked unless bluff is on.

I suggest the following ultimatums as a start (these are all kludged in
the AI at present) and we can add more in later patches:
  - "Declare war on X": Demand of ally to declare war against at-war-with
enemy Y. Penalty is that alliance is broken and (only) receiving player
loses reputation.
  - "Break alliance with X": Or else war.
  - "Abandon spaceship": Or else war. If accept, any existing spaceship is
trashed.

Example: Player A sends an emissary offering player B three techs in
exchange for a city. B accepts and the exchange takes place immediately.

Example: Player A sends emissaries to all players for a server vote for
setting timeout to 60. Three players vote yes, four players ignore the
emissaries or reject the offer, so the vote fails when the turn ends.

Example: Player A sends an emissary to player B to demand that B abandons
his spaceship, but checks the "bluff" option. B calls the bluff and
nothing happens.

This proposal requires moderate client changes and a non-modal/fullscreen
dialog. I still have no idea how to display the fact that a player
receives emissaries in the gtk/xaw/win32 clients. In gui-fs I want it
written over the main map similar to unit commands, using the flag of the
offering player - clicking on it brings up the emissaries dialog.

It does, however, solve a number of long-standing problems.

Changing-things-during-negotiation cheating will be impossible. This is
particularly important in a message-passing scheme such as this. The
non-modalness of the dialog also ensures delaying the turn end by being in
"emissary mode" does not buy you any play time.

Server votes can now be completed in the same turn, even in the worst
case. Currently server votes may require two turns to complete (taking
effect the third turn).

The problems with timeout and turn end in regards to diplomacy are also
gone.

Diplomacy should no longer add stress to intense multiplayer games, and
you will not pop up anything on the other player.

Writing more extensive AI support for diplomacy and adding new diplomacy
options will become so much easier. The current diplomacy code can be
simplified.

  - Per




[Prev in Thread] Current Thread [Next in Thread]
  • [Freeciv-Dev] New diplomacy model (PR#8394), Per Inge Mathisen <=