gaerzi wrote:removing arid and ice from the Garden world, even if they made sense (one can see deserts and ice caps) gets the number of affinity combos down. I wondered if it was a game balance decision but the combinatorial explosion issue makes more sense.
Again, as explained in the long comment at the top of pop_growth.lua, the choice to leave out both Arid and Ice bioms on Garden worlds is really about both the combinatorial and game balance implications. Weird stuff starts to happen gameplay wise when you have small bioms that can imply very slight advantages for bringing in new species -- for example, humans are a little better than Ashdar at tolerating Ice boims, so if we have a small ice biom on a Garden world then there's a small but noticeable incentive for an Ashdar player to import humans onto all of their Garden worlds, which feels kinda excessively fiddly. Including Ice bioms on any planet also boosts the Yoral's pop caps on those worlds, and I felt like the Yoral already had more than enough habitat perks, without making them even stronger on Garden worlds. But also, yes, as you noticed, the commented out Garden definition would imply 8 equivalence classes, which could break the game if you somehow got the wrong 8 races cohabiting a garden world.
gaerzi wrote:I fired up Excel, filled some values in a spreadsheet, and came up with a quick and dirty way to get the number of unique affinity combos when all the game's races are present on a world. (Basically: for each race get a single number created with airless affinity + 6 times inferno affinity + 36 times vents affinity + 216 times ice affinity, etc. Then count the number of unique values with sumproduct(1/countif(cells;cells)). It's slightly more involved than that since I can toggle each habitat on and off, by setting a habitat factor cell to 0 or 1, but that's the gist of it.) I went with powers of six as it was, for values within the [0.8, 4.0] range, the smallest integer that made sure each possible value was non-ambiguous, e.g. with powers of 5 then the value 4 can be either 5*0.8 or 1*4.
If you change the 'false' on line 174 of ~habit_info.lua to a true, and save the file while the game is running, the live-coding features will cause the F1-console to get some spam that does these sorts of calculations using the game's own equivalence class calculation logic -- outputting groupings for all the planet types currently defined in game.
gaerzi wrote:Barring any logic error on my part, putting all the game's existing race on the current 4-biome garden planet results in 5 unique combinations, while on the commented-out 6-biome version we get 8 different combos. Adding back either ice or arid would be fine (6 or 7 combos, respectively), but not both.
Hmm... There may be a bug in your excel sheet (or you may be missing a race or two). By my calculations, there are 6 distinct equivalence classes implied by the current 4-biom Garden definition. Specifically, if you have a Garden world with Yoral, Gremak, Phidi, Humans, Orthin, and Tinkers, they'll all have different implied population growth behaviors. (Any of the other races will behave like one of those 6 on a Garden world though.) (You're right that the commented out code does imply 8 different groupings, which is indeed one reason why I never shipped it.)