Complete.Org: Mailing Lists: Archives: freeciv-dev: March 2000:
[Freeciv-Dev] Re: freeciv ai
Home

[Freeciv-Dev] Re: freeciv ai

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: "Damian Easterbrook" <damian@xxxxxxxxxxxxx>, <freeciv-dev@xxxxxxxxxxx>
Subject: [Freeciv-Dev] Re: freeciv ai
From: "Peter Schaefer" <schaefer@xxxxxx>
Date: Sat, 25 Mar 2000 21:16:43 +0100



>i am an ai student and need to know about the ai in freeciv.  i have
>started to scan the source code and it looks fairly complex.  is there
>an overview on how the ai works (assuming i know how to play the game
>and beat it on prince)?  it seems that there are several advisors who
>each contribute information to a leader who makes the final decision
>based on some heuristic.


As far as I know, which isnt far, ai in freeciv is a mess, or ( , if one
want
to formulate it better) a combination of weights, like the advisors, that
are
calculated in heuristic ways, and accurate calculations like distance to
enemy
units of a certain type or strength, maybe summed up in stats.
The advisor concept was the first draft of the ai and was refined into lots
of functions,
most of which give out accurate assesments on a certain economic or military
topic,
or try to do that. Accurate assesments are preferred, since  testing and
tuning
heuristics needs loads of test runs.
There is additional code where idea is to duplicate human behaviour,
like the transport and escort(combined arms) code, or basic synced attack
code.

The leader thing that you mention might mean that there is a choice between
alternatives, each of which has been assigned a different weight.
Unfortunately, that kind of code is lacking strategic elements, mostly
assessing
the local situation, which leads to most cities building walls and diplomats
eventually.
Which is one point people like to complain about( cf. the xxx old posts
about the topic ).
Adding strategic elements (accurately) probably costs too much cpu time.











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