Probably the most common complaint about Aurora (besides the UI and the install
is the speed at which the game runs. This is particularly an issue for larger long-term games. Another element of this is the 5-second slowdown which can occur during NPR combat.
Two limitations on any attempt to increase execution speed are the age of the technology involved and the sheer number of things that happen every turn. I can't do anything about the former without rewriting Aurora so I've been looking more closely at the latter. The slowest parts of the turn are:
1) NPR Movement orders
2) Sensor Phase
3) Setting up Trade Runs for Civilian Shipping.
The worst culprit is the sensor phase, because it happens once per sub-pulse while the other two are once per increment. It suddenly occurred to me that to speed things up I could adopt the "If a tree falls in the forest..." philosophy. As an option, I could run the current detection code only for systems in which a player unit or population is present. This is less realistic than the current system but might be acceptable as a trade-off vs performance. There are two options for the situation where only NPRs are present in a system:
1) No detection
2) Automatic detection
Both of these would significantly reduce execution time, especially for campaigns with several NPRs. The former would also completely eliminate the 5-second problem because there would never be combat without a player in the same system. That is also a downside on the realism side as NPRs would be ignoring each other unless a player was watching - although that would also lead to more situations where a player sees NPR vs NPR combat as it wouldn't start until the player forces were in the system. The latter (auto-detection) would actually increase combat between NPRs so while perhaps more realistic than no detection it might increase the 5-second problem. Therefore I am leaning toward giving players the option of enabling no detection in systems without a player presence - or perhaps make that the default and have the option to enable detection in all systems.
No detection would also reduce the NPR Movement orders as well because there would be less calculation of which target to chase.
To reduce trade run calculations, I could change NPR new trade runs to be calculated during the 5-day increment. Currently both player and NPR trade runs are calculated during any increment longer than one hour.
Interested to hear comments and feedback