[freeciv-ai] Opinions on some AI issues
[Top] [All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
Just to let you know my opinion on a couple of issues and maybe also
revive the list.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
I. Technology selection by AI.
Right now the AI evaluates units (and I
guess buildings) that it can build to select the build but it also
evaluates the things it cannot yet build and if they are found useful,
the want of the enabling techs is bumped up. IMO it is a very good
philosophy. Unfortunately it is hard to maintain, hard to generalize, it
encourages spaghetti-coding and slows down the server. Also it is hard to
weigh importance of musketeers on the same scale as importance of
cathedrals.
Instead I suggest that tech slection be done randomly, based on some
general tendencies. We can define few general tech directions, like
Social, Economy, Military. Then we can have base weights for each civ
plus some situational modifiers (e.g. a lot of cities in danger -- go for
Military, too many elvii -- go for social, empty coffers -- go for
economy). The next tech will be selected randomly with more probability
going to the more desired directions.
This is a very basic idea. It can be made more complicated (and therefore
flexible, I hope), by several means:
1. Split basic directions
Military
/ \
Defense Offense
/ \
Buildings Units
2. Each tech can have a precomputed score in each of the directions.
You combine (scalar product) these with the civs weight and it becomes the
probability of this tech's selection.
3. Each civ can have it's character reflected in the base wieghts.
%%%%%%%%%%%%%%
II. Fuzzy AI
Fuzziness is good. AI should make mistakes. Some might argue that the
whole AI behaviour is one big mistake, but I disagree. Fuzziness is cheap
and general method to have a spectrum of difficulty levels. We mustn't
rely on it exclusively, of course, but neither we should ignore it.
Not much more to say, actually.
%%%%%%%%%%%%%%%%%%%%%%%
III. Danger estimation.
When evaluating danger, it is important to remember the most dangerous
units. In order to attack them later. Right now the priority is to
attack more expensive and less defended units. But choosing to attack a
caravan over a guarded howitzer can be deadly (another argument in favour
of fuzziness: AI will always attack one and not the other -- and one can
exploit it). Of course it is better to kill both :)
%%%%%%%%%%%%%%
IV. Invasions.
Invasion targets should be selected on a high level. The current
"everybody is going there so I go there too" attitude is pathetic. But
what is a good city to attack?
%%%%%%%%%%%%%%%%
V. Ruleset tips.
More!
For example:
Bodyguarding is a great idea. CivIII got it (I think they stole quite a
few features from FreeCiv, actually). But to see a rifleman guarded by a
mech.inf. is hilarious! It happens because rifleman had 5A > 5D which
qualifies him as an attacking unit. And 6A/6D mech.inf. is a defender!
How do we distinguish an attacking unit from a defending one? We can
write complicated functions or we can use more role tips in the rulesets.
Well, enough for today.
G.
- [freeciv-ai] Opinions on some AI issues,
Gregory Berkolaiko <=
|
|