Suggestions and issues for Starbase module modifications
I have a couple of suggestions for how Starbases should work that might be useful in future releases of Galactic Civilizations:
1) Starbases with planets in its area of effect should have to be targeted first by any attacking enemy fleets. No planetary invasion or attack should be allowed until the Starbase(s) in the area of effect are first destroyed. That should be enforced for both the AI and the player. That way there is an incentive to build and to protect the Starbases. Right now, the AI in the game many times seems fixated on destroying Starbases of any type (no matter how powerful), while the human player would pretty much just go around them to attack the planet directly.
2) The AI does not really seem to bother with researching and building up its starbases. Early in the game it might add a module to add a "1" to all attack types for the Starbase, and maybe even a little bit higher than that in longer games, but for the most part, the AI does not seem to care about building any Economy or Military starbases and then building up their attack and defense. It builds lot of Influence starbases - although that really seems only designed to allow it to send enemy forces to your location later in the game ; ). This is particularly annoying in that I use some modifications that I made (and others) to build up some interesting modules to place on the StarBases. Might I suggest in the future that the AI have some sort of change made to allow more flexible and extensive use of Starbases in its attack and defense strategy ? For example, a good all around algorithm for building up say an Economy or Military starbase might be something like:
a) Build initial starbase
If a constructor arrives, allot it to build a module on the starbase in this type of sequence:
i. If an Economy Starbase, and there are modules available for Trade or Production in the list of available modules, pick one of those to add.
ii. If a Military Starbase, and there are modules available for aiding a ship in any fashion (i.e. ship defense or attack or repair capability) pick one of those to add.
c) Repeat b until all of the Economy Type or Ship Aiding modules are built.
d) If there are no more of the above modules, then add an attack or defense module, and allot them in this sort of sequence:
i. If any modules are available that add to ALL attack or ALL Defense capabilities of the Starbase, pick those first
ii. If no more of the above are available then look at the Attack and Defense of the Strongest Fleet out there (regardless of the race - excepting your own of course). Add modules which will defend against the strongest attack. The only corollary might be to substitute this for the Strongest Fleet of the Race(s) you might currently be at war with.
iii. On the next constructor to arrive after above, add a module which will add to the attack of the Starbase against the lowest defense of the Strongest Fleet out there.
e) Continue in a similar fashion until all modules that are available are build on the Starbase.
Also, don't have the AI look for module matches by name (not sure if that is how it really works now), but rather have it look at the <StarbaseAbility> and / or <Type> fields of all the modules that are available to it in order to determine what module to build. It looks like the way the program currently works it seems to totally ignore any sort of added modules to the StarbaseModules.xml file and seems to look for specific matches to Name in order to figure out what to build. While a human player can exploit that behavior to their advantage (heh heh), it would really be nice to play a game against the AI where the Starbases are actually useful and would pose a challenge for the player to have to overcome rather than just zipping around them.
Hope that makes sense. Thanks for a great program.