[Freeciv-Dev] Re: suggestion
[Top] [All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
On Tue, Apr 24, 2001 at 05:56:20PM +0200, Grzegorz Borowiak wrote:
> 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.
I would attach the code to the existing freeciv client so that the
first point becomes a noop.
To get an overview about this kind of problems (deterministic, there
is exactly one best result for a given set of parameters) it would be
good to compile a list. Additional to the problems Grzegorz mentioned
I would like to add:
- more general auto-settler
- more general exploror
- placing the people of a city
- deciding between shields, food and buying production while build a
settler
- patrol an area
- auto-post-building-goto (after the caravans got build they move to
the wonder city)
- fan-out command (to seal off a narrow piece of land)
- auto-fortify (this is quite autonomous: fortify after a certain
amount of idle turns)
- timied goto (arrive at a given turn at a given position)
- more general goto (it should be possible to tell to goto route
calculator to stay away from certain fields (which the upper layers
assessed as dangerous))
Can you think of other functions which will form the base library?
Raimar
--
email: rf13@xxxxxxxxxxxxxxxxx
A supercomputer is a computer running an endless loop in just a second
|
|