Implementing New Game Settings

Sure, but I’m going to say that’s beyond the scope of this feature. A good candidate for the future though.

That’s fair.

@Thim Based on your suggestion, I added an osmoregulation cost multiplier for the player cell. I did find some unwanted behaviour though. If I had osmoregulation set to cheaper than normal, I could build a cell that ordinarily wouldn’t survive, and because the osmoregulation adjustment applied to only the player cell itself, other cells of my species would be permanently dying in the environment and I’d get a big osmoregulation penalty in Auto-Evo.

Consequently, I think it’s better to apply the osmoregulation adjustment to all cells of the player’s species. Do you have any thoughts on this?

1 Like

Sorry for the delay; I think that makes a lot more sense. My guess would be that players would feel like the difficulty setting is “cheating” if other microbes of the species are following different rules, and I don’t see why it would be a problem for the other individuals to work the same way.

Since this has just been merged into master, I’ll add a few notes to this thread to conclude things.

After a suggestion from hhyyrylainen, difficulty presets are now defined in JSON, specifically difficulty_presets.json. This should make it easier for anyone to modify or add difficulty presets, especially mod makers. Note that these may involve a change to the maximum and minumum values in Constants.cs though. With the devbuilds and community testing from now until 0.5.9, we should hopefully get some good feedback on the optimal values to choose for the existing difficulties.

Adding extra new game settings shouldn’t be too difficult either. Just follow the approach of the existing values to equip a WorldGenerationSettings object with the right information. The hard part will be accessing and using the setting correctly in the right part of the game code.

I added two settings which are currently invisible: patch map type and Easter eggs. These should both be enabled as part of the code changes for these respective features.

While there is a planet generation screen placeholder, filling out the planet generation options will take a lot more design work. I haven’t worried about that at all for now. It’s possible more GUI scenes will be needed, e.g. if the design ends up something like this.

Finally, now that there’s a functioning LAWK toggle in the game, it’s high time we added thermoplasts. Unfortunately the thermoplast branch has an eye-watering amount of merge conflicts. I do think we need to do something with the LAWK setting in 0.5.9, otherwise it’ll be completely useless this release, so I’ll see what I can do about that. Wish me luck.

4 Likes

May your sanity last.

I think that maybe this restriction should be removed? Only the GUI should probably use the min and max values, unless they truly break the game then I think it’s a good idea to mandate those for the JSON set values as well.

Well, having a preset with values outside the min/max will cause the GUI to display the wrong information, and since the game builds the settings from the GUI when pressing confirm, they would be overwritten anyway. So it’s a bit more work than just removing the JSON validation.

1 Like

I see, that makes sense. I guess we’ll just need to live without this for now as it sounds too complicated to make for the benefit it would provide.