Complete.Org: Mailing Lists: Archives: freeciv-dev: May 2004:
[Freeciv-Dev] Re: Diplomacy
Home

[Freeciv-Dev] Re: Diplomacy

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: Per Inge Mathisen <per@xxxxxxxxxxx>
Cc: freeciv-dev@xxxxxxxxxxx
Subject: [Freeciv-Dev] Re: Diplomacy
From: Thomas Strub <ue80@xxxxxxxxxxxxxxxxxxxxx>
Date: Sat, 22 May 2004 01:34:59 +0200

On Fri, May 21, 2004 at 01:22:58PM +0000, Per Inge Mathisen wrote:
> The freeciv diplomacy model is an unreliable hack.
> 
> Problem #2: We cannot assume that the player who receives a request over
> the diplomacy dialog has time to answer in the same turn. Timeout could
> kick in or the player has already pressed 'turn end' and is just waiting
> for other players to do the same. This means the opposite end can execute
> two full turns before we get a reply.
> 
> Example: If the AI wants to object to a player moving his forces into the
> AI's borders, it can only declare war in the third turn - which probably
> renders the idea of objecting in the first place pretty moot. If it was a
> sneak attack, the other player got two full turns to move his forces into
> position.

It is possible, make it an action which increases the timeout removes
the pressed turn state. So there will be additional time to answer to
the question. The goal is that every player has enough time to handle
all items which were in that round.

A "move your units out, or ..." should be a could be a "you can only
move your units into my land when ..." zop would say "exploring is
aggressive" and every player sees the borders. So when the defender sees
all units which can move over the land of the player, the player who
wants to enter has to change the state between the involved countries.

> Problem #3: Any diplomatic offer and acceptance has to take into account
> that the player can change things after we have made the offer or our
> acceptance (in the same turn or later turns).

That shouldn't be possible, against ai's against humans it could be a
good strategy, but citygiving is only used by people who don't betray
each other.
 
> Diplomatic 'effects' may become an open channel for abuse. Writing code to
> prevent this may be hideous complicated and makes writing some new
> diplomatic options just plain ugly.
> 
> Example: We already have 'give away a city' diplomatic option which I and
> original author both have written some spaghetti code to attempt to
> prevent it from being abused too much. However, when you have an open
> offer like that, there is only so much we can do to prevent cheating. As
> of now, you can offer up a city for exchange, the AI says ok to the
> exchange, then you go into the city and sell the most expensive building
> and disband all the troops. (And no, a simple comparison before and after
> will not do.) There may be barbarians or other enemies near the now
> defenceless city, or you might retake it yourself.

Changing something to the item (moving units into cityradius ... leads
to a no from the ai.

> Note that in this example we do not even need to consider the possiblity
> of the offer staying up for several turns, since, IIRC, we close the offer
> on turn end. But if we offer up an ultimatum, like "get off my borders now
> or else..." we can't just ignore the possibility of an accidential turn
> end (timeout or other players). It is certainly possible to write more
> spaghetti code to cover all the possibilities, but my point is just that
> the model sucks since it forces us to do that.

Several turns are only needed when the timeout is to low. Perhaps a
remove "dirty clauses" or something like that would help in that case.

(perhaps a bug, it was possible to give a tech twice ...)
(can't test because playing with 2 clients on 1 computer isn't possible
with gtk2-client)

> Problem #4: We have take into account that our AI messages (those *King
> Knut(AI)* Blah blah blah), are simply not read because they are drowned in
> server spam. So we have to repeat them a few times before we can take
> action. This is annoying to the player if he did read it, annoying if he
> never does, and a fine opportunity to play the AI for a fool since it has
> to wait so long. Not to mention that it is a pain to write the ugly AI
> code to do it.

That is the problem of one message window for all messages ...

> So what to do... One option is certainly to say that we don't need more
> diplomacy options and diplomacy works good enough, so why bother.

I think every improvement helps. Please don't stop your work.

Thomas
-- 
Thomas Strub  ***  eMail ue80@xxxxxxxxxxxxxxxxxxxxx
jb: people are stupid, they don't want to learn.


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