This is the basic service that needs to be extended: https://github.com/FAForever/gw-backend ... rvice.java
The general idea was the following: We have a bunch of planet attributes
- private int size;
- private boolean habitable;
- private Ground ground;
The size is supposed to match the map size exactly.
The ground should define the main surface on the map. Grounds are based on orbit level (distance between level and sun) and defined in a decision table (best to be opened with camunda modeler)
Right now the following grounds are available (more would be possible, but need a change in decision table)
- WATER("W", "water"),
- SOIL("S", "soil"),
- LAVA("L", "lava"),
- DESERT("D", "desert"),
- FROST("F", "frost");
Habitability should have an impact about how many civilians are on the map.
My idea was to build a database table that has maps defined for each of the possible combinations. The map selector service would then take a random map from those that fit the criteria.