On 2/24/13, Patrik Baláž <dvojzmysel....@gmail.com> wrote:
> Hello.
Hi Patrik,

without knowing more about what you are planning to do it's hard to
know what may be relevant to how easy creating your AI will be. Are
you planning to use learning? In that case: supervised, reinforced or
unsupervised? Are you planning to use pre exisiting AI libraries? In
that case: in what language are they written and how are they
licensed? Are you planning to release your code? Are you planning to
reuse (parts of) the existing AI?

There are different ways for an AI to talk to Freeciv. Please note
that I may be biased when I describe them. Human players connects to
the Freeciv server using Freeciv clients. An AI that want to be sure
that the server has the same control over it as it has over a human
player can pretend to be a client used by a human. (This way it is
possible to be sure that the AI isn't cheating during an experiment
where it isn't supposed to cheat even if it has a bug) The standard AI
uses the server's AI-interface. This runs the AI inside the server. It
is possible to reuse the existing Freeciv code, including the AI code,
from it. It is also easy to cheat from it. https://gna.org/patch/?2143
is about making it possible to write server side AI's in Lua.

How knowledge intensive are the methods you plan to use? Freeciv has a
a lot of domain knowledge gathered in the rule sets. Much of that
knowledge is in a declarative format (making auto conversion easier).
For the most common rule sets the imperative parts (the Lua code)
aren't to large. The developers continue moving stuff from Freeciv's C
code to the rule set. As we speak rivers are changed from special
stuff that has hard coded rules in many different C files to some
declarative statements in the rule set.

If you go for Freeciv it may be a good idea to consider what tasks can
be done upstream in Freeciv. Having people that know more about the
code base than you do review your patch will correct mistakes you did
while writing it. Doing a task in Freeciv also enables cooperation: If
doing a task in Freeciv cost 150 effort and doing it locally cost 100
effort but someone else is willing to do 50% of it if its done in
Freeciv you will still save effort by doing it in Freeciv.

Sveinung Kvilhaugsvik

Freeciv-dev mailing list

Reply via email to