[freeciv-ai] Re: interaction engine for freeciv
[Top] [All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
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
much.
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
opinions.
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,
Dave.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [freeciv-ai] Re: interaction engine for freeciv,
David Cosgrave <=
|
|