Complete.Org: Mailing Lists: Archives: freeciv-ai: May 2002:
[freeciv-ai] Re: long-term ai goals

[freeciv-ai] Re: long-term ai goals

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: Per I Mathisen <per@xxxxxxxxxxx>
Cc: <freeciv-ai@xxxxxxxxxxx>
Subject: [freeciv-ai] Re: long-term ai goals
From: "Ross W. Wetmore" <rwetmore@xxxxxxxxxxxx>
Date: Sat, 25 May 2002 11:54:28 -0400


At 12:50 PM 02/05/25 +0200, Per I Mathisen wrote:
>On Sat, 25 May 2002, Ross W. Wetmore wrote:
>> Random errors in the code are a result of poor programming, period.
>> Any AI worth its salt has to deal with partial and inconsistent data.
>Ok, after thinking a bit about it, I agree.
>> So the question is, do you relax the FoW implementation in controlled
>> (i.e. optional) ways that provide game balance, do you have some other
>> strategy to deal with the issue, or do you continue to just make rude
>> noises that will keep Freeciv Artificial Intelligence an oxymoron for
>> years :-?
>I want a handicap/bonus system for AIs and human players alike - we need
>this to allow for omniscient AIs - and if you can manage to program a sane
>implementation of your suggested random-FoW, then I am all for putting
>that in and letting AIs that need it use it.

Making sure that any system is not just AI-specific is I think the best
way to deal with the cheating issue. This means ruleset, and/or console
control with the ability to turn it on/off securely, possibly on a per
channel basis. 

Note, instead of a constant (TRUE) or FoW boolean (bool get_known()), you
need to introduce a weight in the range 1...0 and a pseudo-random selector.
The current FoW sort of does this with a time dependent grey-level, but
a weight-level could do the same thing.

If you assigned a float or scaled int instead of the TRUE/FALSE bit, then
aging of any values less than 1 can be done on a turn update. Any values
reported on map updates or queried during player-specific server
computations would be gated by having get_known() or get_known_and_seen()
return the condition (known_rand_computation() > weight(pplayer)). For
weights of 1 and 0 this will be just the current trivial FoW boolean or
omniscient TRUE.

Advanced forms of error introduction could be managed by an additional
chance on failing weights that reported back values for a random tile
(in the vicinity or whatever made sense) when queried for tile specific
detail. Seeing correct data in the wrong location or missing data in
the right location can make a very challenging addition to simple FoW
binary reality. This may need to be done on a case by case basis, but
there might be some generic way if someone is clever enough to spot it.
Consider this an advanced feature.

From the AI standpoint, just the fact that there is something there and 
thus it is now allowed to look is a major step up in its viability. The 
AI needs to be tactically or externally driven rather than self-motivated 
until it really does have full internal consiousness.

>This handicap/bonus system should be based on points values, so that an
>omniscient AI can fight a non-omniscient AI on "equal" terms. For example,
>we could say that omniscience is worth the same as 4 extra initial
>technologies or 2 extra settlers.

I think there is a lot of room to try out various cost/benefit systems 
with adjustment of the ratios if things do turn out to be unfair in 
practice and the system is used in competitive play. A simple scaling
factor on the total score that gets MINned to the lowest level ever
turned on during play might be all one really wants. This allows for
mutliple "server agent" functions to be made available for selection
with appropritate accumulated penalties.

Note, PayCiv does such ongoing adjustments during play. If you are weak,
it really does give you all the breaks on odds, but if you are a top
ranked Civ, then you can almost rest assured that making that critical
random chance move into the forest with only 2/3 movepoints will fail
and your Infantry will be left sitting as panzer cannon fodder in the 

It is also the case that standalone play vs the AI is not concerned  
about competitive things in general. Moreover, the scrutiny and hoops a
leading contender needs to jump through are generally more stringent
than that for the weaker honourable mentions. Microsoft found this out
when it grew big enough to make some of its marketting practices worth
challenging in court. Variability rather than accountability is more 
useful to keep standalone play interesting.



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