Complete.Org: Mailing Lists: Archives: freeciv-dev: December 2001:
[Freeciv-Dev] Re: [PATCH] advdomestic.c cleanup (PR#1149)
Home

[Freeciv-Dev] Re: [PATCH] advdomestic.c cleanup (PR#1149)

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: Raahul Kumar <raahul_da_man@xxxxxxxxx>
Cc: freeciv-dev@xxxxxxxxxxx
Subject: [Freeciv-Dev] Re: [PATCH] advdomestic.c cleanup (PR#1149)
From: "Ross W. Wetmore" <rwetmore@xxxxxxxxxxxx>
Date: Sat, 22 Dec 2001 11:27:47 -0500

At 02:34 AM 01/12/22 -0800, you wrote:
>--- "Ross W. Wetmore" <rwetmore@xxxxxxxxxxxx> wrote:
>> At 02:03 PM 01/12/20 +0100, Petr Baudis wrote:
>> >Dear diary, on Thu, Dec 20, 2001 at 12:42:28PM CET, I got a letter,
>> >where Raahul Kumar <raahul_da_man@xxxxxxxxx> told me, that...
>> 
>> >> I wish someone would speak up as to why 16 is a good number for sad
value.
>> >> > +#define SADVAL 16
>> >Nice wish :-). Ross? Ben?
>> 
>> Almost certainly a heuristic from play testing.
>> 
>Yes it is, but the comment says it is speculative, so it seems it can
>be improved on.
>
>> This is sheer speculation, but is the sort of logic that probably comes
>> into play, 16*3 == 48, 16*6 == 96, so somewhere between three and six 
>> unhappies the weight becomes competitive, and over 6 is a demand level
>> weighting. 
>>
>
>Explain this a bit more. If I understand you correctly, this is yet another
>weighting. Presumably it should be in the range (0-100) but as always
although
>it never goes down below 0, it seems it can exceed 100. What does values of
>for example
>
>7 * 16 mean?

Whatever you want it to ...

>I'd also like you to get a links to where you got the original info from.
>I must be going blind, I do not remember any such comments.

You need to understand how Syela thinks and codes, which means you
need to have unravelled a number of his more arcane computations and
read a lot of his comments.

The end target is always a [0-100 or critical] weight. There may be
all sorts of intermediate heuristics or effects folded in, of which
this may just be a part (hence [0-100] is not meaningful). Then he
playtested ad nauseum adjusting the heuristics so game events occurred
in ways that pleased him. This might mean he preferred a Temple over
a Harbour, and therefore the Temple heuristic got bumped or the Harbour
dropped in some obscure parameterized effect.

The individual details are pretty much meaningless, it is the combined
effect that makes the game play the way it does. Thus if you change
something it can have lots of side effects, and you need to run client
autogames with several faction windows and watch for bad choices, then
go back and readjust to correct these.

The goal in AI development is to gradually localize the heuristics
into small eval routines returning an approximate but consistent weight, 
and move the interactions into a post-eval manager layer where one can
fine tune choice selection based on a number of additional variables 
like AI player personality, declared enemies, past activities in this 
region of the board, etc.

At the moment there is no manager layer, some interaction effects are
present in the eval code but not many. The effect is that the weights
and heuristics represent a single personality style (Syela). This is
ok, in that you need some base style for the initial consistent weights.

Civbots, or more work in the manager levels of the AI will likely be
programmed to use these weights to adjust play over time.

>__________________________________________________
>Do You Yahoo!?
>Send your FREE holiday greetings online!
>http://greetings.yahoo.com




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