Complete.Org: Mailing Lists: Archives: freeciv-ai: November 2002:
[freeciv-ai] Re: interaction engine for freeciv

[freeciv-ai] Re: interaction engine for freeciv

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: freeciv-ai@xxxxxxxxxxx
Subject: [freeciv-ai] Re: interaction engine for freeciv
From: David Cosgrave <a99bf1a7@xxxxxxxxxxxxxx>
Date: Wed, 06 Nov 2002 15:52:18 +0000
Reply-to: a99bf1a7@xxxxxxxxxxxxxx

Hello everyone,
         My name is David Cosgrave. I am, as part of a university 
project, attempting to code an interaction engine, to be 
implemented in a computer game. I have chosen FreeCiv as the 
game most suited to this type of engine. I am therefore looking for 
some feedback as to how this engine would be best incorporated 
into FreeCiv, and obviously the finished engine would be submitted 
for inclusion in the FreeCiv package. 

        First of all let me explain the purpose of the engine. It is 
designed to deal with the effect of interactions between two agents 
on their respective opinions of each other, where at least one of 
them is an AI agent. In essence, when an interaction occurs in the 
game (e.g., the Germans offer a tribute to the English, where the 
English are AI controlled), my engine would examine this 
interaction and alter the English opinion of the Germans based on 
this interaction. (It alters the opinion of the agent to whom the 
interaction is directed - an interactee as it were)

        In my engine at present, an interaction takes the form of a 
series of numbers between 1 and 100, each corresponding to a 
certain aspect of that interaction. These aspects are the 
friendliness of the interaction, the helpfulness in achieving goals, 
how threatening the interaction is, how violent it is, how diplomatic 
it is, and how benevolent or greedy it is(100 = very benevolent, 1 = 
very greedy). So for the sample interaction "A invades B", a 
possible table could be:

        Invade(10, 20, 80, 70, 20, 30);

B has a table of Opinions of each agent in the game, which 
correspond with these aspects : B has an opinion (a number 
between 1 and 100) of how friendly A has been to him, how helpful 
A has been, how threatening A has been, how violent A has been, 
how diplomatic A has been, and how benevolent or greedy A has 
been. So for example, PRIOR to the above interaction, B's opinion 
of A might have looked as follows:

BsOpinionOfA(70, 60, 30, 20, 70, 50)

We can see from this that B has a pretty high opinion of A. 
However, after the interaction, B's opinion is shattered, and might 
read as follows:

BsOpinionOfA(30, 20, 60, 70, 30, 20)

However, if B had had a poor opinion of A before the invasion, his 
updated opinion after the interaction probably wouldn't change that 

My engine will require input as follows : for the above example, it 
would need to know the agents involved (A and B), it would need to 
know B's opinions of A [(70, 60, 30, 20, 70, 50)] and it would need 
to know what kind of interaction has occurred [(10, 20, 80, 70, 20, 
30)]. The engine would then update B's Opinion of A based on this 
interaction, and return the updated Opinion. It is then up to the 
game to decide on the action to be taken - my engine only alters 

        Of course, the exact form of opinions and interactions are open 
to discussion, i notice that at the moment, FreeCiv's diplomacy 
doesn't have anything like the amount of detail i have described, 
but if something could be done, it would make the authenticity of 
the AI much better. 

        At the moment, i am coding the engine in Java, C not being my 
preferred language, but obviously, it can be transferred. It is not a 
particularly complex program, but does require time and effort. If 
anyone would like me to send the program so far, i can do that. If 
anyone has any questions, feel free to mail me. address is 
a99bf1a7@xxxxxxxxxxxxxx. If anyone knows of a reasonably 
complete Java version of FreeCiv, please let me know ASAP :)

        Many thanks to everyone,

[Prev in Thread] Current Thread [Next in Thread]
  • [freeciv-ai] Re: interaction engine for freeciv, David Cosgrave <=