Complete.Org: Mailing Lists: Archives: freeciv-dev: November 2001:
[Freeciv-Dev] Re: freeciv feedback
Home

[Freeciv-Dev] Re: freeciv feedback

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: molv@xxxxxxxxxxxxx, freeciv-dev@xxxxxxxxxxx
Subject: [Freeciv-Dev] Re: freeciv feedback
From: Petrus Viljoen <viljoenp@xxxxxxxxxxx>
Date: Tue, 27 Nov 2001 10:57:37 +0200

Martin Olveyra wrote:

>
> >
> > It would be easier to use client side scripting to test & design new AI
> > code.
> > This way you have minimal
> > effects on the affects on the  freeciv codebasse. (And you don't need to
> >
> > recompile every small tweak ;-) )
> > This way the developer can act as a guide to the AI script and correct
> > some of
> > the  decisions
> > made by the AI at run time (and trace it to sea where the AI's decision
> > making
> > failed)
> > You don't want to start developing complete AI Clients ( LOTS of work).
> > The current Freeciv client-server interface seams addiquate to drive
> > client
> > side AI scripting.
> >
> > Personally I'm not so sure about the fuzzy logic part to start with .
> > First you
> > need to make the
> > AI capable of (Responding to attacks, Invading & conquering  of its own
> > ).
> > Once you have this you can use fuzzy logic to decide best tactics /
> > strategies.
> >
> > The one thing I think lacking in the AI is grouping  (Fleets,
> > Battalions,
> > Squadrons) each
> > controlled by an AI entity (a general / admiral) with specific long-term
> >
> > objectives.
> >
> > ( I am working on this and client side scripting (CSL , JavaScript and
> > Guile)
>
> That is very interesting. How advanced are you in that work?

Client Scripting :

     CSL (C Scripting language) scripting is functional ( GTK -gui
     only):

        o Units (exposed most functions  & all enum as constants)
        o Terrain (exposed most functions & all enum as constants)
        o Map (exposed most functions & all enum as constants)
        o Client- Server API (exposed most function needed by the client
          (control.c) )
        o Cities (Must still implement)
        o Diplomacy (Must still implement)
        o Player (Must still implement)

     Javascript work in progress (GTK-gui only):
        o Redesigning the interface. (Changing from global methos/functions
          to exposing Javascript classes ( Unit,City,Map,Player ) and
          assotiating the client-server requests with each Class

     Guile scripting : (GTK-gui only)
        o just started with design.

     AI Entities:
             Implementing  Client Side only (for now):
        o Economic Entity : Still needs implementation (This entity Controls
          Production in cities so that Military entities can make requests
          for New Units / Upgrades etc,  Requests will be priotitised ,
          queued and distibuted to aprppriate cities under its control.)
        o Defensive Military Entity : Work in progress (Very Simple Patrol
          near all Cities/  If the Borders (currenlty discused in list) are
          implemeted it would make it very easy to patrol around the border/
          Needs lots of work, Needs to know about deplomisy so it does not
          destroy allied units etc..).
        o Agresive Military Entity : Have not started with this,  But this
          Entity will have to know something of logistics in order to make a
          succesfull Invasions, Also needs to know about Diplomisy So it dont
          invade your allies, Needs the Econimc Entity to replenish lost
          units /cruise missiles etc... and place conquired cities under the
          control on the Economic Entity,

The scripting interface is very simple so other xxx-gui can easily be
supported.

   * Needs to add a "Add to script" command in he Orders menu
   * Needs to have a "File selection Popup/Dialog" screen to select the
     ScriptFile.

I did  post a Patch with the CSL Scripting code on  freeciv-dev  "22 Nov
2001":   Look in the mailing list archive  (It seems to be down at the
moment)




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