Anders' Corner of the Web
  LDraw Tools
    The Game
My cEvo additions      

Game screenshot

- Have You ever played Civilization (by Microprose)?

- Have You ever wanted to know how such a game is programmed?

- Have You ever wanted to 'fix' the computer players 'intelligence'?

Search no more! Steffen Gerlach has made it possible, with his Open Source 'remake' of Civilization: Civ Evolution

Go there! Get it! Play with it! And discuss it in the Forum

Steffens long range goal of the project is to have a great Tactical game for Internet play between humans, but in my view, the greatest innovation in cEvo is the possibility to use many different computer opponents, and the openness of the system. Anyone can write a Computer Player for cEvo (OK, You need the programming skills etc. etc., but it's open).

I just couldn't resist it...

Start screen

When You start the game You can choose up to eight opponents, either the StdAi which comes with the game, or someone else's AI (Artificial Intelligence), for example, my AIAI.

Note that as cEvo is still in heavy development, the computer opponents can only be used together with the indicated version(s) of cEvo


Thoughts about computerized players...

It's not easy to make a good AI! What's blatantly obvious to a human eye, looking at the game map, must be broken down into counting, conditions, testing, etc. etc.

The StdAi coming with the game is mostly doing things randomly, governed by a few rules. My main additions and modifications compared to the StdAi are:

  • Finding as many 'necessary' jobs as possible (pollution, irrigation, taking enemy cities etc.), and directing the right kind of unit to the spot.
  • Organized attacks on the opponent cities, one at a time.
  • Ordering the work force of every city, every turn, to get the 'best' balance of food, production and trade, while keeping the inhabitansts happy enough not to cause unrest.

AIAI is under heavy development, it does not yet present a worthy opponent, even though it mostly crushes the StdAi in a one-on-one game.

The biggest problems are:

  • Slow research - a human can always get a Technology lead.
  • Too much random walk, doing nothing in particular, instead of being directed to do things.
  • Doesn't discriminate between opponents - if AIAI is fighting, it's fighting everyone at the same time, thus spreading its forces all over the map, and leaving parts of the territory undefended.
  • No tactical 'sense' - it is quite good at utilizing a Technological lead, but when (mostly) all players are at the same Tech level, it will surely spend its forces attacking the wrong city :-)


Download the AIAI computer player for cEvo

Note: Those AI:s are only available for older cEvo versions.
I have not had the time to update them. Sorry!
(Maybe some time in the future...)

Icon Version cEvo Description
2.7 0.6.4 Faster expansion than the StdAi, sends a defender to an empty city, directed attacks on enemy cities, many small adjustments in behaviour. For cEvo 0.6.4.
2.8 0.6.4 City improvements in the same way as Steffens StdAi v2. Builds wonders. For cEvo 0.6.4
2.8 0.6.5, Update Mainly an adaptation for cEvo 0.6.5 plus a lot of small adjustments.
2.9 0.6.5, Update Configured/modifed for cities closer together, even faster evolution, many small adjustments. Bugs: City size limited to 12 due to not building Sewers. Favourite game parameters: 135% World, 65%-85% land, one opponent.
3.0 0.6.5, Update, 0.6.7 Finally... Much faster research (Industrialization around 1750, tanks 1800). Beats 2.9 regulary, gives the Lene AI a fight.


Unpack the .zip archive into the cEvo directory on Your computer. The next time You start cEvo You will (hopefully) see the new computer players when You right click a player slot in the start screen



Q: How do I know which tribe is controlled by the AIAI?

A: Before doing the first turn, activate the Log screen in cEvo, and set it to show (at least) Level 1 messages. Each tribe controlled by the AIAI will send a debug message to the Log screen, telling where the capital city is founded.



All my AI:s can be customized in some degree, by changing the settings in the initialization file (aiaiXX_YYY.ini for aiaiXX_YYY.dll). An example of the configuration file follows:

; This INI-file can control a number of parameters for the AIAI.DLL
; To experiment with variations do:
; the heading in the file
; Create .BMP containing some nice picture
; Now you can play with the parameters in .INI, and pit 
; .DLL against AIAIXX_YYY.DLL (or StdAI.DLL), and see if 
; you can find a parameter set that is consistently better than the
; original. 
; If you find some interesting values, please mail them to me or
; put them up at the cEvo forum at
; Anders Isaksson,


Agressive         = 1
; 0 - don't do concentrated attacks, just move at random
; 1 - select enemy cities and attack them

TimeToGiveUp      = 20
; How many turns before an attack is cancelled (if the city is 
; not taken)

TimeToRest        = 10
; How many turns before a new attack is initiated

UnitsBeforeAttack = 40
; How many units do we need before starting attacks

Attackers         = 15
; How many units should be used in the attack

AttackDistance    = 35
; Don't call in units that are further away than this

SimplePaths       = 0
; 0 - Use the CEvo pathfinder (slower) to direct units to the 
;     target
; 1 - Use simplified pathfinder (faster, but bad when much 
;     ocean)

HealthHome        = 75
; Go to a city to rest if health is less than this

HealthRest        = 90
; Stay still and rest if health is less than this (but greater
; than 'HealthHome')

SettlerLimit      = 100
; Don't produce more Settlers than this (approximately, a random 
; element is included)

GrowthLimit       = 200
; Factor to decide how long the Settlers will move (more or less)
; straight away from their home city

CityDist	  = 3
; How close the cities should be built

CityMethod	  = 1
; How to decide what to build in the city
; 0 - Like the new StdAi
; 1 - AIAI special algorithm

UnitMethod        = 2
; 0 - Choose what unit to build completely at random (like StdAI)
; 1 - Choose only the 'best' unit to produce (not very tested)
; 2 - Choose according to xxxPrcnt

GroundPrcnt       = 80
; How many percent of the units researched/produced should be of 
; 'Ground' type

GadgetPrcnt       = 5
; How many percent of the units researched/produced should be of
; 'Gadget' type

SeaPrcnt          = 15
; How many percent of the units researched/produced should be of
; 'Sea' type
; The remaining (100-GroundPrcnt-GadgetPrcnt-SeaPrcnt) is for air
; NOTE: The current version of AIAI is not very good at utilising
; 'Sea' units, and outright bad at utilising 'Air' units



Updated 2002-10-05