Complete.Org: Mailing Lists: Archives: freeciv-ai: March 2003:
[freeciv-ai] Re: AI Diplomacy v8 (PR#2413)

[freeciv-ai] Re: AI Diplomacy v8 (PR#2413)

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: undisclosed-recipients:;
Subject: [freeciv-ai] Re: AI Diplomacy v8 (PR#2413)
From: "Per I. Mathisen" <per@xxxxxxxxxxx>
Date: Thu, 6 Mar 2003 07:16:23 -0800
Reply-to: rt@xxxxxxxxxxxxxx

On Thu, 6 Mar 2003, Gregory Berkolaiko wrote:
> >- if you get a "No" from a human player, don't ask again
> what, ever? Why not?

I used the "spam" timer in previous versions, even when you rejected the
same offer previously, and it turned out, as I playtested it, that it was
extremely annoying to be asked again and again about the sam thing, and I
almost always answered the same. If I wanted it, I'd go talk to the AI
myself, instead.

But maybe it should be a new timer, which waits something like 100 turns
or something before making a new, similar offer.

> It's quite well documented, but I get a feeling that there is no grand
> plan to it. This refers mostly to hatred / war desire / trust thing. I
> don't see from the code how hatred is different from trust. Maybe you
> could write a brief explanation of the design, answering these questions:
> 1. What is trust? How is it calculated?

Trust is accumulated peaceful coexistence in turns. If you screw the AI or
make war to his allies, trust is reset.

> 2. What is hatred, how is it calculated?

Hatred is accumulated betrayal. If you screw the AI (diplomat one of his
cities, give a damn about allied obligations so much that you break it,
steal techs, etc), then hatred is increased. It doesn't take much hatred
to make the AI refuse to have anything to do with you.

> 3. How trust affects our evaluation of a clause/treaty? How trust
> affects our desire to propose a clause/treaty?

We require zero trust to accept ceasefire, 10 trust for peace and 25 for
alliance, IIRC. If the player puts some gifts on the table, we can accept
treaties for less trust. We only propose a treaty if it suits us _and_ we
do not require any gifts to make the treaty acceptable.

> 4. Same question but about hatred.

Sufficient hatred stops dead any consideration of treaties.

> 5. How hatred / trust affects our desire to go to war?

Hatred increases war_desire. Trust doesn't play into it, but sufficient
trust could lead to an alliance, in which case we will not go to war.

> 6. Does fear of a nation comes into play at any point?

No. This is a design decision where the fun of the game is more important
the "realism" of the AI. If the AI was really opportunistic, it would
immediately attempt to ally the strongest player, not go to war against
it, as now. Also, if many AI players are to have any chance against a
stronger (usually) human player, they have to rally together and combine
their strength, even if it means guaranteed suicide for at least some of

So the AIs practice what I'd call a "suicidal king of the hill" behaviour.

7. What is reputation?

Reputation is a global variable that attempts to keep track of how true a
player is to his word. It increases slightly every turn until it reaches
(back to) maximum. The AI will refuse to have anything to do with a player
with low reputation.

> Maybe I am too much of a "math nerd", as you put it ;) but I would like to
> see formulas first and then their implementation.

The problem is that the problems to be solved are not immediately
apparent. At least I required to fool around a little and explore various
possibilities before I recognized all the things/requirements that had to
be addressed. I am sure my design (or lack thereof) is a tell-tale sign of

I am sure you can come with an elegant algorithm for some of the
requirements, but as I discovered while writing this patch, elegant ideas
don't always translate easily into a full featured implementation.

With that in mind, please suggest better algorithms. I'm definitely not
adverse to rewriting the patch to accomodate a better design.

> Then, after we agree on
> the basic mechanics governed by formulas we can discuss small details like
> "why do you figure our dip_state into war_desire in two different places?"

Uhhmm... What? Where?

  - Per

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