[Freeciv-Dev] Re: suggestion
[Top] [All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
On Tue, 24 Apr 2001, [iso-8859-1] Daniel Sjölie wrote:
> It think what You have just shown is that searching is not a god
> solution for making a freeciv AI... Behavior based approaches are a lot
> more appropriate here I believe... Possibly it could be complemented by
> searching on some higher level but for most things it is not motivated
> at all...
In many cases human does searching, e.g. when he attacks a city and
decides: it's better to attack now or to wait for some new units. And
which city should he attack first.
> I think that very few (if any) human players plan in detail when playing
> freeciv... I mean that You rather think "I'll use these troops to take
> that city" than "I'l move this unit one step east, one north-east..."
> To actually carry out these "higher" goals behaviour based AI should do
> nicely... Then there really isn't that much to consider on the top level
> where searching/planning might be a good idea... Also, searching looses
> a LOT of it's attractiveness because of the uncertainty You mention...
> Guesses about what a human opponent might do next will be extremly hard,
> if not impossible, on the detail level...
Right.
> > If AI has to be really good and comparable to human, but relatively fast,
> > it cannot be done in other languages than those which compile to native
> > machine code. It doesn't have to be nothing other than C/C++; it can be
> > Fortran, Ada or Pascal, but C/C++ is here the best solution.
> >
> > Bots can be written easily if many useful library functions will be
> > developed.
>
> I agree that the low level AI should be coded in C... I also think that
> there should be a default higher level AI written in C using these but
> it should be relatively trivial to expost the lower level to any
> scripting language that can interface with C (most if not all) and thus
> write a new high level AI in any language...
Yes, but a user should be able to write not only high level, but also low
level, which IMHO is more important. If we provide several blocks and let
user combining them only, he will not be able to overkill. He must be able
also to create and modify these blocks.
IMO the fundamental thing is interface to server; connecting, fetching
data, sending orders etc.
Second thing is library providing AI techs (neurals, fuzzy etc.) and data
processing, i.e. solving some common subproblems like:
- how many turns it take for my helicopter to fly to a given city?
- where is it the best (here some parametrized prefs) location to found a
city?
- what are the chances of conquering a city with a given set of friendly
units, defended by uncertain set of enemy units?
Some of these problems are stricte algorithmic, other are more AI-needing.
And then, last third thing is a script language to combine these on high
level. Third thing requires both first nad second thing, and, until it's
released, user can do combining in C/C++ as well. So, anyhow, IMO these
thing should be developed in this sequence.
_____________
Grzes \_______________________|_______________________/
grzes@xxxxxxxxxxxxxxx (_)
http://gnu.univ.gda.pl/~grzes/
'I will not buy this record, it is scratched.'
|
|