Difference between revisions of "Thoughts"

From FreeOrionWiki
Jump to: navigation, search
(New page: == Planet evaluation == ===Criteria=== * could be made flexible and take the need for population, minerals or research into account * however, it'd probably more efficient to simply assign...)
 
(please delete this page)
 
Line 1: Line 1:
== Planet evaluation ==
 
===Criteria===
 
* could be made flexible and take the need for population, minerals or research into account
 
* however, it'd probably more efficient to simply assign every planet a fixed score based on size, hospitality and specials (see below; example: huge, terrible planet ~ medium, adequate planet ~ small, optimal planet)
 
* planet should be close to empire/next colonised world
 
  
 
 
* size score
 
  tiny    small    medium    large    huge
 
  0      2        4        6        8      * k1 (10)
 
 
* hospitality
 
  terrible  adequate    optimal
 
  0,5        1            2
 
 
* specials score
 
  minerals +20
 
  artifacts +20
 
  plague -20
 
 
* distance
 
  SL-Jumps * k2 (5)
 
 
 
=== Prevent AI to colonize planets too early ===
 
The AI should not colonize a planet if only very few systems are explored and more systems can be explored, except if the planet is valuable. Before colonizing, it should explore more systems.
 
 
  subtract from planet attractivity:  UNEXPLORED_SYSTEMS (in range) / EXPLORED_SYSTEMS * k3 (20)
 
 
* early game -> explored_systems small -> planets only attractive if no systems unexplored
 
* late game -> explored_systems large -> unexplored systems become irrelevant
 
 
 
=== Suggested planet evaluation formula ===
 
 
  planet_attractivity = size_score * k1 * hospitality + special_scores
 
                        - distance(SL-jumps) * k2 - unexplored_systems / explored_systems * k3
 
 
 
== Concept for a colonisation AI ==
 
 
* Create a list with idle colony ships
 
  create a list with all stationary fleets of the AI player
 
  erase all fleets from the list that have no colony ship 
 
  if the the list is empty, the colonisation AI is done
 
 
* Search for suitable planets
 
  (1) create a list with all explored systems
 
  (2) create a planet list from the system list
 
  (2a) Remove planets with enemy ship presence (could also be done on system scale)
 
  (2b) Remove planets that are already colonized
 
  (2c) Remove planets that have a colony ship en route
 
  - get moving fleets of player
 
  - remove fleets without col ship or with colony ships that do not have a colonize flag
 
  - remove the remaining colships targets from the planet list
 
(3) Sort planet list with regard to their value
 
  every planet is assigned an integer value (its colonisation value)
 
  values should be calculated from an easily modifiable table
 
  Fertility, Size, Specials, Distance to homeworld should be taken into account
 
  sort list by colonisation value
 
 
* Send a colony ship
 
 
  Send colony ships from idle list to the top planets on the planet value list
 
  - Ships could be assigned to nearest planets
 
  - Ship mission should be set to 'Colonize'
 
  - On Arrival, a colony must be founded at the begin of the turn if ship mission is colonize
 

Latest revision as of 21:37, 2 January 2008