View Issue Details

IDProjectCategoryLast Update
0021600AI War 2Balance IssueSep 30, 2019 4:19 pm
ReporterNRSirLimbo Assigned ToChris_McElligottPark  
Severityminor 
Status resolvedResolutionfixed 
Product Version0.886 Zombie Homebodies 
Fixed in Version0.893 Usability and Tutorial Prep 
Summary0021600: Detailed MapGen Min-Max Experimentation and Feedback
DescriptionThis is an experiment "report" on how maps are generated and what could be improved on or changed.

Note that this was still done in version 0.886 and since 0.887 there was a slight change with the distance Officer Fleets were generated at, so maps might not be exactly the same. Since doing these tests cost some time i'm not really willing now to tear down everything due to an update literally while I was at it...

All the results appended in screenshots.
All counts of fleets and stuff assuming I didn't miscount (too much).
All numbers suggested purely experimental for demonstrative purposes.
And most important: Whoever finds spelling errors may correct them.


Tests were done on 3 map sizes:

40 planets small, 120 planets average and 200 planets large

in combination with

5 settings of capturables (ONLY those in the respective tabs, not Superterminals or [Major] Data Centers or Distribution nodes and such)
none (all to 0), minimum (0.5x except Lone Wolf at 1x), normal (1x everything), more (2x except Lone Wolf at 5x) and max (3x except Lone Wolf at 8x)


All on the same Map Seed and starting at roughly the same "Outside" area of the map.
The Map Type always is Small Clusters due to it being the most diverse of all the map types, having central systems, separated systems, outside systems, long paths and short paths, different cluster types and much more. Overall I like this one the most.

And here's the Result:
Even if 0x capturables are chosen there will always be generated 2 Strike Fleets, 1 Support Fleet, 4 Advanced Research Stations and 2 Global Command Augmenters.
The amount of capturables is NOT based on planet amount. A map with 1x capturables and 40 planets will have the exact same amount of capturables as a map with 200 planets.
Every other capturable apart from Lone Wolf and Officer Fleets gets pushed further and futher away from the player the higher the amount of Strike Fleets is.
The game is unable to seed 2 of the capturable Tab at the same planet. The small map size cannot go to 1x all due to too many objects attempting to be seeded. Mapgen shows a log of the events. Thus there is no average-normal, average-more and average-max types.

Also:
The number of Superterminals, [Major] Data Centers, Distribution Nodes and Intra-Galactic Coordinators cannot be set to adapt the Galaxy size much given how their min/max slider amounts are. Thus I have included below what I would set their "1x" amount at. In the case of IGCs there is no way to even set an amount right now, it seems to always be 4 (one of each type) which is fine but would be nice to manipulate or maybe include more types (maybe for Energy Collecters, Factories/Engineers, Forcefields, etc, etc) and chosing X amount of them (each only occurring once) to be seeded in the galaxy without being able to chose which types.


#########################################################
##Everyone who can't handle TL;DR quits reading now! For your own safety.##
#########################################################


Which leads me to suggest the following 2 improvements:


1) Capturables need to be based on the amount of planets in a base fashion. The exact numbers on how many of which type per planet is up for debate but this is what I would suggest:

[Modifier]*1 Mk6 Planet per 15 planets
[Modifier]*1 Mk7 Planet per 25 planets
[Modifier]*1 Strike Fleet per 16 planets
[Modifier]*1 Support Fleet per 60 planets
[Modifier]*1 Officer Fleet per 5 Mk6 and Mk7 planets
[Modifier]*1 Lone Wolf Fleet per 8 Mk6 and Mk7 planets
[Modifier]*1 Battlestation per 40 planets
[Modifier]*1 Citadel per 70 planets
[Modifier]*1 Advanced Research Station per 12 planets
[Modifier]*1 Global Command Augmenter per 30 planets
[Modifier]*1 Superterminal per 50 planets
[Modifier]*1 Data Center per 15 planets
[Modifier]*1 Major Data Center per 40 planets
By default 4 Intra-Galactic Coordinators, 1 for each type (Turret, Strike Craft, Corvette, Frigate)
This would add up to, on a 200 planet map with 1x on everything:

13.3 Mk6 Planets
8 Mk7 Planets
12.5 Strike Fleets
est. 3.3 Support Fleets
est. 4.27 Officer Fleets
est. 2.7 Lone Wolf Fleets
5 Battlestations
2.9 Citadels
16.7 Advanced Research Stations
6.7 Global Command Augmenters
4 Superterminals
13.3 Data Centers
5 Major Data Centers
4 Intra-Galactic Coordinators

Note that if there is something like "13.3 Mk6 Planets" it means that there are 13 or with a chance of 0.3 (actually, 0.333333....) there is one more.

Here the AI would be protected by a 7 Mk7 planets (+ the Mk7 homeworld) and 13.3 Mk6 planets.
This would lead to (min) 97 and (max) 106 planets being seeded with a capturable which can be scaled however the player sees fit without having to factor in galaxy size. Average that at 0000143:0000050%.

There could also be influence on additional factions:
[Modifier]*1 Risk Analyzer per 100 planets based on Faction Influence
[Modifier]*1 Telium per 25 planets based on Faction Influence
[Modifier]*1 Dark Spire Vengeance Generator per 25 planets based on Faction Influence
[Modifier]*1 Nanocaust Supression Field Emitter per 100 planets based on Faction Influence
Dyson Spheres and Devourer Golems are added as single entities but for balance's sake their strength should be balanced based on a slider and planet amount. Since I got no idea what the Dyson Sphere has as maximum possible strength to control I'll make up a value for reference. Devourer Golem has 343 strength base. It's hull, shield and damage should be adjusted to compensate for bigger galaxies with more fleets and smaller galaxies with fewer fleets.
200-2000 Dyson Sphere Max Strength per 100 planets
Devourer Golem health/shield/damage modified by ([faction strength]/5) * ([planets]/80)

Assuming all sliders set to 5 faction strength on every instance we would get in the galaxy above:

10 Risk Analyzers
25 Telium
25 Dark Spire Vengeance Generators
10 Nanocaust Suppression Field Emitters
2000 Dyson Sphere Max Strength
2.5x Devourer Golem health/shield/damage

Added to the above we would see (assuming each thing in its own system) (min) 169 and (max) 178 planets being seeded with something upon map generation.
I would, however, set an absolute minimum of 1 capturable of each type of faction (if included at all into the galaxy at more than 0x) to avoid seeding something and never encountering it.
But if the player intends to have 0x of a certain type then let's grant their wish and have get nothing of that.

For the finishing touch, the amount needn't be set to X amount at the end of these calculations, there should be a variation margin inside, possibly set by the player too.
Assuming a slider going from 0-50% max variation, meaning that each type of capturable or special object could gain X% more or less to its total seeded amount.
This would make the map seed at absolute worst 85 capturables or special objects, and at absolute most a theoretical 267 (which brings us to the next point):

For simplicity sake I will refer to all these capturables and special structures and stuff as "things" on planets for the rest of this.


2.) Stacking Stuff

Right now it seems to me that there is 2 rules to how planets can gain multiple things:
NEVER seed more than 1 of the Capturable tab per planet. Have the MapGen algorithm crash and display an error log if you would have to.
Stack as much as needed of everything else however seen fit.

Ideally I would like to see something like this:
NEVER seed more than 1 type of thing on each planet (i.e. no planet has more than 1 Strike Fleet or Battlestation or Risk Analyzer or Telium)
Use this logic independently from all other types of things (i.e. a planet may have a Strike Fleet, Battle Station, Risk Analyzer and Telium if really lucky at once)
Seed AI defenses and increase or decrease Planet Mk based on how many things have been seeded there and add additional ships, Guard Posts and special structures like Orbital Mass Drivers/Ion Cannons, Raid Engines, Eyes, etc, etc.

IF(!!!) things turn out like this I think it would make maps even more interesting:
There would be a lot of planets having multiple things on them and higher Mk levels as well as more defenses and a whole lot of special defenses, making them a hard nut to crack.
More planets than right now would still end up being "useless" apart from generating Metal, Science and Hacking, though the average distribution should not make this too common. Requires testing in this case.

All in all this would let the player focus even better on important systems without having to worry about capturing everything (unless playing in scout-adjacent-only). While independent of the map size it would be heavily affected by the amount of things, on very low settings making planets with more than 1 thing a rare sight but on very high settings producing systems with on average already a lot of stuff but also systems where it's just an insane bounty of things, defended by all the AI's Guard Posts and all the AI's special defensive buildings. I dare not imagine what a Dark Spire Vengeance Generator would put out while this planet is under siege... But that's a topic for a different time.

This would also counteract everything being pushed back further away from the player by more and more Strike Fleets or in reverse coming very, very close to the player due to a lack of Strike Fleets.


Thanks to all those who read this far.
TagsNo tags attached.

Relationships

related to 0021682 resolvedChris_McElligottPark Cryptic map generation errors when planet count too low 

Activities

NRSirLimbo

Sep 7, 2019 6:52 pm

reporter  

Test_Small_None.jpg (441,934 bytes)
Test_Average_Max.jpg (522,447 bytes)
Test_Average_More.jpg (518,295 bytes)
Test_Average_Normal.jpg (517,729 bytes)
Test_Average-Min.jpg (510,015 bytes)
Test_Average-None.jpg (485,301 bytes)
Test_Big-Max.jpg (596,784 bytes)
Test_Big-Minimal.jpg (598,128 bytes)
Test_Big-More.jpg (597,479 bytes)
Test_Big-None.jpg (559,137 bytes)
Test_Big-Normal.jpg (572,230 bytes)
Test_Small_Min.jpg (478,236 bytes)

NRSirLimbo

Sep 7, 2019 7:02 pm

reporter   ~0052918

Somehow Tilde makes weird things here...

Added a bit more information about fractions (like 13.3 Mk6 Planets) of stuff and Mk6/7 Planet percentages.

Chris_McElligottPark

Sep 30, 2019 4:19 pm

administrator   ~0053330

Thanks!

* The entire mapgen code logic for what ships block which other ships has been redone.
** Previously it was very hard-and-fast in terms of "you can go here or not," which wasn't super helpful on crowded maps or on very small maps.
** Now it instead looks at things which are completely blocking early -- namely an entire faction taking over a planet, which is rare -- and then it gets more flexible with everything else.
** After it seeds those early things, it then makes a strong attempt to keep the number of big good things spread apart, but no longer tries to separate them from big bag things. We also have small good and small bad things that we try to keep spread apart in their own category, but that we don't care about overlapping beyond that.
** This actually will add more texture in ALL games, not just crowded or small-map ones. Essentially you're more likely to see some planets that are "extra good" with lots of cool stuff, or "a real mixed bag" with awesome stuff and super scary stuff, whereas before thosee were always kept rigidly separate.
** This also fixes the issue of a lot of small maps being unable to generate because they didn't have enough room to seed everything.

Issue History

Date Modified Username Field Change
Sep 7, 2019 6:52 pm NRSirLimbo New Issue
Sep 7, 2019 6:52 pm NRSirLimbo File Added: Test_Small_None.jpg
Sep 7, 2019 6:52 pm NRSirLimbo File Added: Test_Average_Max.jpg
Sep 7, 2019 6:52 pm NRSirLimbo File Added: Test_Average_More.jpg
Sep 7, 2019 6:52 pm NRSirLimbo File Added: Test_Average_Normal.jpg
Sep 7, 2019 6:52 pm NRSirLimbo File Added: Test_Average-Min.jpg
Sep 7, 2019 6:52 pm NRSirLimbo File Added: Test_Average-None.jpg
Sep 7, 2019 6:52 pm NRSirLimbo File Added: Test_Big-Max.jpg
Sep 7, 2019 6:52 pm NRSirLimbo File Added: Test_Big-Minimal.jpg
Sep 7, 2019 6:52 pm NRSirLimbo File Added: Test_Big-More.jpg
Sep 7, 2019 6:52 pm NRSirLimbo File Added: Test_Big-None.jpg
Sep 7, 2019 6:52 pm NRSirLimbo File Added: Test_Big-Normal.jpg
Sep 7, 2019 6:52 pm NRSirLimbo File Added: Test_Small_Min.jpg
Sep 7, 2019 7:02 pm NRSirLimbo Description Updated
Sep 7, 2019 7:02 pm NRSirLimbo Note Added: 0052918
Sep 26, 2019 3:17 pm BadgerBadger Relationship added related to 0021682
Sep 30, 2019 4:19 pm Chris_McElligottPark Assigned To => Chris_McElligottPark
Sep 30, 2019 4:19 pm Chris_McElligottPark Status new => resolved
Sep 30, 2019 4:19 pm Chris_McElligottPark Resolution open => fixed
Sep 30, 2019 4:19 pm Chris_McElligottPark Fixed in Version => 0.893 Usability and Tutorial Prep
Sep 30, 2019 4:19 pm Chris_McElligottPark Note Added: 0053330