Progress Update 2020-09-29:
The AI can do its thing for quite awhile now without any issues cropping up. I added a feature to the galaxy map I'm really happy with, which auto-positions new systems as they are discovered. This feature helps me get a broad overview of the galaxy to quickly spot problems and prepares the way for watching wars between multiple NPRs play out.
(Quick reference: blue dots: colonized worlds at <=2.0 cost, orange dots and orange rings: unexplored jump points, percentages: geo survey progress, blue rings: uncolonized worlds <= 2.0 cost, red rings: grav survey incomplete, big blank circles: no system bodies, green lines: warp links without gates, orange lines: warp links with gates, yellow is a glitch in the gif encoding)
Not gonna lie, I'm having fun watching an AI empire take shape then resetting and watching a new one
This feature is pretty cool for the player too. Positions of new systems are all relative to the system they connect to, and simple collision detection is used to find a suitable spot nearby at a standard spacing from the linked system. When angles of 180 degrees aren't possible, clockwise angles are prioritized, resulting in a slight spiral effect in the overall layout. If there's no room in the layer of grid spaces immediately surrounding the linked-from system, the next layer of grid locations will be checked, up to 100 grid spaces away from the linked system. When choosing spots more than one grid space away, angles of 45 and 90 degrees are avoided so that the warp lines connecting between them are less likely to overlap existing warp lines on the map. Once a position is picked, the system's position isn't touched again. This means you can grab one particular system (or shift-select a group of them) and move it to a different spot on the map, even far away if you want, and new systems in that branch will be positioned relative to the system(s) you moved.
Here's one more screenshot of the same campaign above, a bit later in the game, when the player's Sol system and a few of its neighbors was discovered.
In this game the AI has been building installations, ordnance, and fighters, shipping colonists, installations, and trade goods around, keeping up with research, pumping out civ and naval ships, terraforming, and pretty much anything else non-combat related. (Mentioned for completeness; these were mostly done already)
With the addition of the non-combat AI and pathfinding, turns are getting pretty slow. The animation above is in real time with 1 NPR and 1 dormant player race, with 1-day sub-pulse lengths. There is tons of room for optimization in the pathfinding, but profiling revealed that unoptimized pathfinding takes about the same amount of time as the mostly-optimized detection, and about the same amount of time as the partially optimized movement code. Which means optimizing pathfinding right now would have less of an improvement than I expected, so I'm holding off on a general optimization pass until a later date. I suspect that slowdowns from combat AI will dwarf the rest anyway, and will need to be the primary focus.
The auto-positioning feature was probably only 10-15% of the updates I made to the game since my last progress update; it was just the first thing I did that had something interesting to show. Also added were NPR ramming, NPR damage control, ship overcrowding and undercrowding mechanics, unloading cargo to stationary fleets, and detecting and shooting mineral packets. I added multi-system pathfinding to all of the relevant default and conditional orders for the AI to make use of. There were other fixes and additions as well, but I believe I've listed most of the notable ones.
No new build yet. My vague roadmap is still: making sure civilian shipping looks ok from a player race's point of view, revisiting precursors now that some combat code is in place from a previous progress update, and multiple NPRs interacting with each other. At that point I will most likely push a build, then move on to NPR ground combat, planetary conquest, espionage, and diplomacy.