Complete.Org: Mailing Lists: Archives: freeciv-dev: December 2001:
[Freeciv-Dev] Re: AI strategy
Home

[Freeciv-Dev] Re: AI strategy

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: rf13@xxxxxxxxxxxxxxxxxxxxxx
Cc: Raahul Kumar <raahul_da_man@xxxxxxxxx>, "Ross W. Wetmore" <rwetmore@xxxxxxxxxxxx>, freeciv-dev@xxxxxxxxxxx
Subject: [Freeciv-Dev] Re: AI strategy
From: Petr Baudis <pasky@xxxxxxxxxxx>
Date: Sun, 2 Dec 2001 13:27:34 +0100

> > > You might want to check out Raimar's CMA patches as well. I happen to 
> > > think a
> > > server side AI is a pretty bad idea. Client side means people can write
> > > competing AI's.
> > CMA is civclient-side. It's good, 
> 
> > but I think only as advisor, I'm not sure if bunch of CMAs put
> > together and under AI leadership would work well
> 
> I agree that it I'm unsure if a bunch of agent will form an
> AI. However I'm sure that any AI needs CMA or a similar piece of code
> as a building block.
I forgot to mention that. It would be nice if AI would be able to share
codebase with CMAs.

> > , however I only glanced at the code yet, now I'm pretty busy with
> > cleaning of current AI code.
> 
> > Also CMA is expected to work on player-side, as it contains some
> > generic GUI code etc.
> 
> The algorithmic is gui-less. There is a gui for the core. You may
> drive the core in any way you like.
Very nice too. However in order to be able to use CMA in AI, we need
CMA in CVS and probably in agents/, not client/agents/. Then, it would
be cool to get AI to use CMA. However I'm still not sure how easy it
will be, I will have to look at the CMA more carefully.

> > But we have to do following:
> > 
> > 1, Remove all AI hooks from server code. Way still too much of
> > them. Settlers code is an example, but many others randomly around
> > all the code.
> 
> This isn't an requirement. At least for the time till the civbot can
> compete with the server AI, the server AI has to remain in the cvs.
True, however the civbot won't be able to cheat. Otherwise we have no
mean to distinguish player and civbot, so players can cheat too, and
that's bad.

> > 2, Make AI _MUCH_ more smart. Diplomacy may be one step. Reason? As
> > AI will be moved into separate client, it won't be allowed to cheat
> > anymore. And without cheating current AI is almost lost against a
> > little more expierenced players.
> 
> IMHO diplomacy is very hard. Much more harder than expand and flood
> the human player with units. It would be a very good first step if the
> civbot AI can win by this way.
Let's try to get in Ross' patch in and see how much it will help AI.
I'm willing to split it for you, just after we'll be done with basic
code cleanup.

> > 3, We need some generic interface for civserver in civclient (for
> > running and control of civserver on request etc), so we will be able
> > to add code for running desired number of civbots there. Forcing
> > inexpierenced user of windoze (typical gamer) to launch and
> > configure those by hand is suicide.
> 
> Ack. However we have the aifill and aitoggle commands. The server has
> to do the work of spawning the civbots.
How will you choose if you want builtin AI or civbot, when they will
reside together? Anyway, if server has to do the spawning, shouldn't
he also do spawning of civclient on demand, etc? I would stay consistent
with the behaviour :-).

> 
> > Summary: this is all is very nice, but very long-term idea.
> 
> We should remove the second "very" to show some faith ;)
;-)

How about "This is all very nice idea, let's review the AI cleanup ASAP and get
it in CVS so we can implement it." then? ;))

-- 

                                Petr "Pasky" Baudis

UN*X programmer, UN*X administrator, hobbies = IPv6, IRC, FreeCiv hacking
.
  "A common mistake that people make, when trying to design
   something completely foolproof is to underestimate the
   ingenuity of complete fools."
     -- Douglas Adams in Mostly Harmless
.
Public PGP key, geekcode and stuff: http://pasky.ji.cz/~pasky/


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