Selecting enemy fleet in campaign (idea)


Besides the difficulty setting, I suggest using several “variables” to select/scale the AI fleet. Examples:

  • varShips = number of ships you own, galaxy wide
  • varHP = total ship hitpoints, galaxy wide
  • varCrew = total crew you dispose galaxy wide (not only the crew on the ships)
  • varTurns = total turns played
  • etc.

I also suggest having several “world types” which use different variables. Examples:

Type 1 world:
Enemy fleet has at least varHP x 0.8 hitpoints, but at least 10000 hitpoints AND
enemy fleet has at most varShips x 1.5 ships.

Type 2 world:
Enemy fleet has at least varShips x 0.8 ships, but at least 50 ships AND
enemy fleet has at most varHP x 1.5 hitpoints.

Type 3 world:
Enemy fleet has varCrew x 0.6 crew (tolerance +/- 20%), but at least 1200 crew.

Type 4 world:
Enemy fleet costs 500varTurns-(varTurnsvarTurns) credits, tolerance +/- 20%. (Describes a curve that increases over time and flatten out slowly after 200 turns)

Type 5 world:
Enemy fleet is always big and strong (it’s the homeworld of race X/Y/Z). Don’t try to attack it in the first weeks!


Having different world types will hopefully prevent some fleet designs being very effective in ALL world types, making the campaign interesting and challenging.
Also you will not face gigantic fleets in the beginning, as the enemy fleet is related to the 4 variables (except Type 5 worlds).


Coloured values are just an example. They will also vary corresponding to the difficulty settings.
Fleet selection/scaling may also vary according to:

  • enemy attacks your world
  • you attack a world the first time
  • you attack a world the second time
  • etc.
    As I don’t own the campaign yet (I wait until the official release), take this as an example, the values are not balanced or tested.

English is not my mother language but I hope you understand my suggestions (using several variables and several world types to select/scale AI fleet).
What do you think? Is this a good approach? Or is the campaign already working this way?