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: rf13@xxxxxxxxxxxxxxxxxxxxxx, freeciv development list <freeciv-dev@xxxxxxxxxxx>
Subject: [Freeciv-Dev] Re: Client AI development
From: Jordan Crouse <jordanc@xxxxxxxxxxx>
Date: Thu, 19 Apr 2001 08:20:29 -0600

I love that we're thinking about AI!!

Cameron Morland wrote:
> 
> 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.)

I think this has the most basis in real life.  A higher entity gives
orders (move to here,
attack here, etc..) and then each unit is responsible not only for its
own survival (retreat or fortify if needed),
but also to obey a set of standing orders (sabotoge if possible, pillage
if possible).  Settlers would also
work with a given set of standing orders:  maximize production, food,
build roads. 
    
> 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.

Once again, just like the real thing.

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

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

I think that an important part of the AI should be some sort of
personality.  As history has shown, there are a handful
of personalities that various leaders have shown that provides the
important differences that I believed where lacking in Civ I and II. 
If we had a set of rules that defined a leader's tendencies, then those
rules could help guide many other parts of the system. 
 
> This sort of design has the advantage of permitting small patches to
> implement it; one patch for "automate military unit", one patch for
> "automate city", one patch for "automate civilization", one patch for "get
> rid of this now-useless GUI". I guess there could be an option "--nogui"
> or somesuch on the client, and the server could spawn the appropriate
> number of GUI-less clients.

Woo-hoo!  I'm willing to give a hand if you need it.

Jordan



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