Complete.Org: Mailing Lists: Archives: freeciv-dev: May 1999:
Re: [Freeciv-Dev] Client AI
Home

Re: [Freeciv-Dev] Client AI

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: freeciv-dev@xxxxxxxxxxx
Subject: Re: [Freeciv-Dev] Client AI
From: Daniel Sjolie <deepone@xxxxxxxxxx>
Date: Wed, 12 May 1999 08:04:22 +0200

On 1999-05-12 00:43:51, Bobby D. Bryant wrote:
> Daniel Sjolie wrote:
>
> > This projct would mean a complete restructuring of the client...
> > (Not the GUI, but almost everything else)
> > We probably would use old code but not much of the structure would
> > be left...
> > Please, You who are responsible for the way it is now - comment!
> > Flexibility and modularization will be key in the suggested
> > implementation... This would mainly be made possible with callback
> > functions... Kind of like Gtk...
>
> I'm not responsible for anything, but I'll comment anyway:
>
> 1) Unless you think the restructuring will also be useful to the
> player client,

I certainly absolutely by all means *do* think that!
That's *at least* as important as the actual player AI...

> why don't you implement the AI client in a different subdirectory, so
> you can
> change it as needed without worrying about what happened to the player
> client.
> That is, in addition to the client, server, and common subdirectories,
> build the
> client in a new ai-client subdirectory.  Then you can make however
> radical
> modifications of the code you need to without worrying about
> disrupting the
> existing logic.  (For a really radical implementation you might
> eventually throw
> away almost everything except the packet handling routines.)

Well, allthough I do believe that these servants should be used by the
player and the player AI alike I do agree that this restructured client
should be kept apart from the one we have now...
Even the package handling routines will be if not rewritten then
probably at least renamed to fit into the new structure...
We will more or less pick pieces from the old client and put together
in a new structure (and write more to that)...
This 'construction site' should not be the current client...
I would like a new directory in cvs but I'm not sure what to call it...
We have no name for the project at the moment...
It really is more than just client AI...
Maybe client2 would do... : )

Again, I stress that our first goal is not to rewrite the client but to
restructure it... Maybe we will end up rewriting much of it but that is
not really the goal... I say this so that You will not think that this
is too big a project... We will take it step by step...
The new structure will make it a lot easier to extend it client with new
features later on... This is the primary goal... And to connect back to
the AI this will make it possible to write a player AI that does not
have to care about every detail (the servant AIs will take care of
those) but can concentrate on being a flexible and strategic opponent...
And the servant AIs themselves will in the extension emiminate all the
boring micromanagement...

> 2) Re callbacks, are you going to implement the AI client to call
> GUILE scripts,
> so people can customize their AI's behavior without re-writing the
> whole AI
> client?

Nah... : )
Not guile scripts...
But:
1) Each action should be configuralbe by not yet determined means.
Suggestions are welcome... I don't think I'll be in favor of GUILE
scripts but I will listen... : )
2) You can add actions to a servant or write a new servant and simply
connect them... Of course You will have to teach the player (AI) to
use the new functions but adding them should be easy...

At the very least this structure should make it a lot easier to
implement any kind of custom AIs in the future...

/Daniel

PS Sorry if You get this twice...

--
Now take a deep breath, smile and don't take life so seriously... :)

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