Complete.Org: Mailing Lists: Archives: freeciv-dev: April 2001:
[Freeciv-Dev] Re: ai development
Home

[Freeciv-Dev] Re: ai development

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: Alex Smith <alex@xxxxxxxxxxxxxxxxxxxx>
Cc: freeciv-dev@xxxxxxxxxxx
Subject: [Freeciv-Dev] Re: ai development
From: Jordan Crouse <jordanc@xxxxxxxxxxx>
Date: Tue, 17 Apr 2001 08:16:58 -0600

I went over the AI with a fine toothed comb a while back (I was
concentrating on diplomacy), and I remain convinced that the best
direction for the AI 
is to make a separate process that connects to the server   A while
back, I suggested that the only way the AI could handle the asynchronous
events that must be processed is to have a separate thread.  Many other
people pointed out that this was worthless and dangerous and impossible
on some architectures, but I remain convinced that the AI cannot be
successful just by running once on every turn.  There are many things
that happen outside of a player's turn that affect their decisions: 
battles, treaties, others completing wonders, etc, that *must* be
processed on an asynchronous basis.

Client side AI would be one way to implement this, but I wonder if we
should have an entirely separate  thread, an "AI robot" if you will,
that runs off the command line.  That would keep the size and processing
time of the client down, but it would increase complexity, especially
for those unfamiliar with the client server model.

I have considered working on something like this, but like all things,
it got pushed aside in favor of work and some non computer related
projects.  Maybe if somebody can get some momentum going, I will be able
to lend a hand.

Jordan
 

Thue wrote:
> 
> On Tuesday 17 April 2001 10:59, Tuomas Airaksinen wrote:
> > On Mon, Apr 16, 2001 at 10:40:54PM -0400, Alex Smith wrote:
> > > Hi,
> > >
> > >     I'm interested in contributing in the area of AI development.
> > >Could you please let me know more specifically what needs to be done,
> >
> > I'm not the best possible person to tell you this, but they have said
> > that the whole AI code should be rewritten.
> 
> That is correct.
> 
> There are some discussion about moving the whole AI to the client, as it
> would have some advantages:
> -The old AI could stay unaffected untill the new one was good enough.
> -The AI automate functions could easily be used by a human player (client
> goto is a good example - moving the goto to the client allowed a human player
> to determine a goto route interactively.)
> -It would make the AI's run in a seperate process from the server.
> -It is an easy way to make sure the AI doesn't cheat unintentially by looking
> at the server datastruktures.
> 
> Of course there is the catch that developing the AI client side is a bit
> harder at some points.
> Raimar Falke has done some work on client side city managment, but it hasn't
> gone into CVS as none of the people with CVS access have had the
> time/motivation to get around to it.
> 
> If you want a less highflying goal I have already added a number of items to
> the TODO file in CVS. Some of them are pretty specific.
> Since checking especially an AI patch can be hard work there is no garantie
> that your patches will go into CVS unless they are well made && documented &&
> tested && short.
> This is not made better by the fact that nobody really maintains the AI. As
> mentioned it needs a rewrite.
> 
> -Thue



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