AI needs a simple set of personality primitives, ones that make sense for the players and for the thematic setting of Freeciv, as well as working well for the AI code.
Perhaps something like this:
- "Isolationist" vs "Imperialist" - the peaceful/warlike nature of the player
- "Barbaric" vs "Civilized" - the use of 'bad' units, governments and buildings (eg nukes); backstabbing
- "Xenophobe" vs "Diplomat" - how often the AI will do diplomacy, and chance of accepting
- "Opportunist" vs "Ideologue" - will choose enemies based on profit or personality mismatch
- "Industrialist" vs "Expansionist" - build big cities or many smaller cities
These values are supposed to be in the range -1 to +1 initially, but can be expanded to multiple values in either direction later on. What this means is that you can be either Isolationist (-1), Imperialist (+1) or neither (0); having some players be more imperalist than others may be a feature for later, but this can be difficult to implement in a way that is discernible for players (there is no point to add a distinction without a difference).
Comment: A value like the level Xenophobia can easily be made more granular. It could vary from absolute refusal to talk to being almost gullible in the acceptance in order to please opponents.
Comment: it would be not so hard to implement granular personality. It should work as neuronal net - if you are xenophobe, you get + N points for cancelling meeting, more xenophobic, higher bonus for cancelling action. When ai decides to set up new city, it might sum up localization points, and minus it's industialization trait. Understandable? Kshinji 13:57, 7 Apr 2006 (PDT)