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

[Freeciv-Dev] Re: Client AI development

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: cameron@xxxxxxxxxx
Cc: freeciv development list <freeciv-dev@xxxxxxxxxxx>
Subject: [Freeciv-Dev] Re: Client AI development
From: Raimar Falke <hawk@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Thu, 19 Apr 2001 17:21:40 +0200
Reply-to: rf13@xxxxxxxxxxxxxxxxxxxxxx

On Thu, Apr 19, 2001 at 06:36:57AM -0500, Cameron Morland wrote:
> La 2001-04-19, Raimar Falke skribis:
> 
> > Cell based client structure
> > ===========================
> 
> I have a simpler way, which I intend to explore during my spare time
> in the summer. The idea is of Behaviour Based Robotics, developed at
> MIT by Rodney Brooks and others. In a nutshell, BB involves tying the
> inputs of the robot very closely to the outputs, and using several
> layers of the input-output pairs. This is known as the subsumption
> architecture. The idea is to have many layers of behaviours stacked
> upon each other. If higher-level behaviours are broken (or not written
> yet) the agent is still able to function, just at a lesser competence.

I also intented this with the cell stack. However the objects can have
state attached to them which can manipulated by the cells. So this may
give different output for the same input.

> So an outline of my AI would be this: each unit is an autonomous
> agent, which gets its information from the map, and marks information
> on the map, permitting communication between units. This allows
> selection of action; there are very few possible actions for a
> non-settler unit --- move, attack, fortify, pillage, disband. A
> handful of subsumption-architecture layers control the actions. (The
> same is true for settlers, they just have a bunch more things to do.)

This would really make the objects autonomous. In my plan only the top
layer decided. The other layers just carry out commands and generate
more fine grained commands for the lower layers.

> This deals with individual units. An additional bit of code is
> required to make each city an autonomous unit. The city controls only
> setting production, placing citizens, and some unit control (shields,
> happiness). Cities communicate again via the map, both with each other
> and with units.
> 
> A third AI type is required; this is the civilization. The
> civilization sets tax rate, selects advancements, does diplomacy,
> and chooses government. It also communicates via the map.
> 
> An appropriate combination of these should be workable. It should also
> be possible to automate generation of some of the intelligence,
> because optimally-intelligent behaviour is likely to be
> ruleset-dependent.
> 
> So my intention is to start with the first section, the individual
> units. This means I can simply add a "automate military unit" item to
> the Orders menu, then fiddle with the AI. Levels of competence could be
> something like this:
> 
> - If could be attacked by much stronger unit, retreat.
> - If could attack much weaker unit, attack.
> - If could be attacked, move to a defendable tile, such as a hill.
> - If could be attacked, fortify.
> - If are a good defensive unit, move towards areas of the map that
>   feel undefended, such as empty cities.
> - If are not a good defensive unit, make the map near you feel
>   undefended, especially if you see an enemy unit.
> - If are fast, seek unknown land.
> - Make good tiles near enemy cities feel undefended. (To encourage your
>   old trireme to sit on his whales. :) )

This sounds like the calculation of this is always carried out. It
_SOUNDS_ like massiv multi threaded.

> A few more levels like that should provide reasonable behaviour. The
> details, of course, need to be worked out.
> 
> This should be testable at all points, with a human controlling city
> and civilization functions. Once this works, code for making
> autonomous cities is required, and eventually, autonomous
> civilizations.
> 
> You might notice that Raimar's design is essentially a design of my
> civilization AI; I just want to make each unit and city a seperate,
> autonomous entity below the civilization. 

Yes I think the design you described can be implemented without
problems as a cell stack.

> Did you come up with the design on your own? It's quite BB-ish.

This email (http://arch.freeciv.org/freeciv-dev-200006/msg00024.html)
was quite helpfull.

        Raimar

-- 
 email: rf13@xxxxxxxxxxxxxxxxx
  "Windows is the one true OS. MS invented the GUI. MS invented 
   the 32 bit OS. MS is open and standard. MS loves you. We have 
   always been at war with Oceana."



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