Another small milestone last weekend. I have been creating games to test the AI code and monitoring each NPR as it plays through the first few days, including saving, closing and restarting the same game. In effect, these are 'test games', even though only the NPR is playing.
I will be running longer and longer NPR test games as I expand the AI code to cover more areas. So far, the AI will deploy combat fleets / patrol squadrons to key systems and populations, deploy jump point defence forces based on system value and recent hostile activity (the NPR remembers where and when your ships have been detected in the past), send scouts or patrol squadrons to investigate points of interest, decide where to stablise jump points and deploy construction ships, deploy terraformers based on which planets are easiest to terraform, deploy grav and geo survey ships based on system value and set up contracts to send appropriate installations to different colonies.
Each NPR operational group (fleet) is assigned a function, such as combat, patrol, survey, salvage, terraform, etc., Each ship estimates its own mission capability status, based on the mission of its parent fleet, taking into account damage to weapons, fire controls, engines, key components for the mission (salvage module, survey sensor, etc.), fuel remaining, ammunition, etc. Each fleet then determines its status based on a combination of the statuses of its constituent ships. This in turn influences the empire and system AIs when they decide on which fleets to deploy. As part of the 'mission status', there are sub-statuses for fuel, damage, ammunition, etc. at the fleet level. NPR fleets that are low on fuel will move to colonies with refuelling capability, taking into account the fuel required, the population stockpile and other fleets en route.
Once the NPR 'test games' seem to be working well, I will start a player race and begin campaign reports.