Complete.Org: Mailing Lists: Archives: freeciv-dev: January 2001:
[Freeciv-Dev] AI improvement
Home

[Freeciv-Dev] AI improvement

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: stuckey@xxxxxxxxxxxxxxxxx
Cc: freeciv-dev@xxxxxxxxxxx
Subject: [Freeciv-Dev] AI improvement
From: alain Vicet <alain@xxxxxxxxxxxx>
Date: Sun, 21 Jan 2001 11:07:14 +0100

Hi Anthony,

Do you remember of me ?

Yes, 2 months ago, I told you about AI player which cheated at easy level: he
plot to move on unknown tiles.

This last month, I had big difficulties with my PC, one of my hard drive
was in breakdown. So I decided to change my old PC by a new one then
lot of difficulties occured, hardware difficulties with my main card 
("carte mère" in french), I changed it 3 times...  actually all is right
and I finished my attempt to improve AI player.

You 'll find joined with this mail a patch to apply to CVS from january 5.
This patch is quite important and need some investment from you to test it
but I think this is really worth trying (both because it really improve the AI
behaviour and because I don't want have worked for nothing :-) )

My aim was to forbid cheat from the AI player and most generally to improve
AI handling particularly during land grab part and ocean exploration.

I wrote again ai_manage_explorer function in aiunit.c: modify and split part1
and 4, substitute part 2 and 3 by a new algorithm which use a new table which 
I
call "distance map". This one allows the explorer to explore the tiles the
nearest of the city. this allow too, to explore the ocean and other continents
which are now unknown by the AI player.


I split auto_settler_findwork function in settlers.c: Now unknown tile (at 
easy
level) are plotted with a random desire. first ferries are used to explore the
ocean and unveil unknown tiles. I have also brought some bug fixes to improve
settling.

To quantify the gain and to guarantee a bug free, I ran 10 games with the old
release (00-01-05) and the new one. I used an equal environement, players on
different continents with start position not near the ocean (which delay the
end of the game), easy level. I do nothing with the player and I just click on
"next turn" button until the game is ended.

00-01-05 release gives an end mean date of 1836
new one gives an end mean date of 1578 and twice the game is ended with
the end built of the space ship (in 1669 and 1702)

I think this is not to bad with a new blind AI player :-)

all modification are tagged, it's for you to easily identify new lines, you
may suppress it after your test.

Hereafter a briefly description of the tags:

AVT_CHEAT_AI: settlers cheat to plot to build city
AVT_IMP_EXPLO: improve explorer
AVT_COORDONATE: coordonate movement between explorer to avoid to target 
                the same huts (really useful in hard level)
AVT_EXPLO_STOP: explorer sometimes stop exploration on big continents
AVT_USE_EXPLO: at the end of the land grab part, explorer do nothing
AVT_IMPROVE_AI: some improvements
AVT_SPLIT: split too long function (ai_manage_explorer, auto_settler_findwork)
AVT_EXPLO_DIST: well balanced unveil tiles and city distance
AVT_DEBUG: debug functions
AVT_LIST_DIST: add distance map (between explorer and the nearest city)
AVT_EXPLO_BOAT: use the first boat built to explore the ocean

I am waiting for your feedback

bye

alain Vicet

Attachment: improve_ai.diff.gz
Description: GNU Zip compressed data


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