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: Petr Baudis <pasky@xxxxxxxxxxx>
Cc: Raahul Kumar <raahul_da_man@xxxxxxxxx>, "Ross W. Wetmore" <rwetmore@xxxxxxxxxxxx>, freeciv-dev@xxxxxxxxxxx
Subject: [Freeciv-Dev] Re: AI strategy
From: Raimar Falke <hawk@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Sun, 2 Dec 2001 14:22:19 +0100
Reply-to: rf13@xxxxxxxxxxxxxxxxxxxxxx

On Sun, Dec 02, 2001 at 01:27:34PM +0100, Petr Baudis wrote:
> > > > 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.

IMHO it isn't easy to use it in the server. It wasn't designed for
this. It was design for the normal client and civbot (which is still a
client to client/agents is ok).

> > > 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.

A non-cheating AI is ok. It may also be possible to set the "transfer
the whole map to player xyz" flag through a server command.

> > > 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.

Ok.

> > > 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? 

A new server command?! Come on this isn't a problem.

> 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 :-).

Yes and no. Yes this would be nice. No, since the server currently
doesn't know any gui. But the user will want to select "Load game",
"New game" trough a gui. And than the server has to have a gui.

> > > 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? ;))

;)

        Raimar
-- 
 email: rf13@xxxxxxxxxxxxxxxxx
 "Premature optimization is the root of all evil."
    -- D. E. Knuth in "Structured Programming with go to Statements"


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