I’ve done a bit of work on the war AI this weekend and it seems like this is a good time to give an idea of the kind of missions the AI currently creates for its fleets and how it prioritizes them.
For starters, the AI looks each turn at every star system that it can reach, including with extended fuel range tanks, and then decides what kind of mission it wants to assign to those systems and how many ships it should send.
The different missions are listed below, ranked from highest priority to lowest. For multiple systems with the same priority, there is an additional weighting to prioritize them within their group.
When there are enemy fleets in the target system, the AI generally uses a staging point to build up an appropriately-sized fleet before moving into the system.
Retreat – for fleets orbiting systems where we have decided that we need no ships at. These are generally systems colonized by empires that we are not at war with and do not want to go to war with. It’s the highest priority because it frees up ships for other missions.
Repel – when enemy fleets are orbiting one of our colonies. A staging point may be used.
Intercept – when enemy fleeets are in transit to one of our colonies.
Assist Ally – when enemy fleets are orbiting the colonies of an ally. A staging point may be used.
Invade Enemy – for enemy colonies that we wish to invade and capture. Once our fleets are in orbit, we send military transports. A staging point may be used.
Bomb Enemy – for enemy colonies that we wish to destroy rather than capture. A staging point may be used.
Bomb Encroachment – for destroying non-enemy colonies that are encroaching upon our space. A staging point may be used.
Guard Attack Target – for bolstering the defenses of our colonies that look like prime attack targets for our enemies. Not needed once enough missile bases are constructed.
Expel – for attacking enemy fleets that are amassing in nearby systems that we would not otherwise attack. A staging point may be used.
Sneak Attack – for opportunistically attacking undefended colonies of neutral empires. Lots of things factor into this decision, including wars we may be already in, our personality and, of course, the level of defenses in the system. A staging point may be used.
Colonize – for expanding into uncolonized systems
Guard Border Colony – for bolstering the defenses of our colonies that are near our borders. Not needed once enough missile bases are constructed.
Scout – for scouting unexplored systems
Guard Inner Colony – for bolstering the defenses of our inner colonies. Not needed once enough missile bases are constructed.
Claim – for guarding nearby uncolonized systems to prevent expansion by other empires
Monitor – for maintaining a scout presence at uncolonized systems out of range of our fighters.
Anyway, that should give you an idea of the various conditions the AI thinks through each turn. Figuring out what ships you want where is hard enough, but moving them all around efficiently and building new ships as needed makes it even more complicated!
As the AI goes through its prioritized list, it tries to fill the plans with the closest ships possible. If it is faster to build a ship at a nearby colony than to pull one from across the galaxy, it’s smart enough to do that.
It gets even more complicated when you factor in the decisions of when to upgrade ship designs and how to transition the fleet over to those new designs, especially when you are limited to just six active ship designs.
But it seems to work pretty well so far.