The purpose of this thread is to design the new game settings screen (excluding planet generation), ideally ready for implementation in 0.5.9.
I’m jumping the gun a bit here as I won’t be able to work on this for like a month (exams + learning the codebase + smaller additions first) but considering some recent discussions and features currently being worked on, I think it makes sense to get this discussion started. I’ve been thinking about it quite a bit lately at any rate, and I have ideas I need to get down.
Here’s my proposal. Feel free to provide opinions and input. There’s quite a lot to gather agreement on which is why I’m doing this a bit early.
Clicking ‘New Game’ now opens a new interface in the style of the options menu. This includes back and confirm buttons below the main panel. There are three tabs, described below, and each time the player enters this scene, all options are reset to their default values.
The first tab, labelled ‘Difficulty’, is self-explanatory, and contains the following options. Unless the difficulty preset is set to ‘Custom’, all but the first option are not editable, and have visuals to indicate this, e.g. they’re greyed out when inactive.
Difficulty preset - Drop-down with ‘Easy’, ‘Normal’, ‘Hard’ and ‘Custom’. The first three set the rest of the settings in this tab to pre-defined values, while ‘Custom’ doesn’t change any values but does allow for player editing (until this setting is changed). Default value is ‘Normal’.
Compound cloud density - Numeric value. A multiplier for the base density of compound cloud spawns, so lower values are harder and higher values are easier.
Mutation cost multiplier - Numeric value. A multiplier for the MP cost of every action in the editor, so lower values are easier and higher values are harder. Obviously the actual editor values will be rounded to integers and clamped between 0 and 100. An alternative for this option would be to change the actual amount of MP available, but considering 100 MP is supposed to represent 100% change, this is an equivalent approach which retains that perspective.
Player death population penalty - Numeric value. How much population the player species loses when they die, so lower values are easier and higher values are harder. I don’t know enough to even guess what values this would take at the moment.
Glucose decay rate - Numeric value. A multiplier for the passive decay of glucose in patches, so lower values are easier and higher values are harder.
Free glucose cloud when leaving editor - Checkbox. Adds a small glucose cloud next to the player when they exit the editor. My thinking behind this is that, with the spawn system the way it is, it can be pretty brutal to enter a new patch if you aren’t prepared for it. With new patches often so barren to start off with, you’ll likely run out of glucose and die before you find anything. So having this checkbox on for the ‘Easy’ setting will provide a slight buffer for new players.
Auto-Evo AI fitness - I don’t have much clue yet what exactly this would be, or even if it’s possible with the current system. But it would be nice to have one or several options related to Auto-Evo to vary the fitness of the organisms it creates.
A note on numeric values: I’m not sure whether it’s better to represent these with a textbox, a slider, or something else. For almost all of the above, it would be sensible to have maximum and minimum values so the player doesn’t catastrophically break the game in ‘Custom’ mode. How we want to represent those, and how they relate to the preset values, will determine the solution.
The second tab is ‘Planet’, with the following features.
Patch map type - Drop-down with ‘Procedural’ and ‘Classic’. Switches between the existing patch map and a procedurally generated one. I’m not sure how everyone else feels about this, but I think it would be nice to give the player the option to play a game with the known, static patch map layout, at least for now. I’ve looked through Kemikal’s code for the procedural patch map and the old one’s still in there, so it’s pretty simple to switch between them when setting up a new game (I tested this and it worked perfectly with like two lines changed). Default value is ‘Procedural’.
Life origins - Drop-down with ‘Hydrothermal vents’, ‘Warm pond’, ‘Panspermia’, maybe some others. Determines the player’s starting patch, with ‘Panspermia’ dropping them somewhere random, as if arriving on a meteorite. Could have some interactions with the LAWK toggle in future, but just the few options we know are theoretically possible will be enough for now. Default value is ‘Hydrothermal vents’.
Planet generation placeholder graphics - Artwork representing the more detailed planet generator to come. Maybe add a Magrathea reference and/or a banner proclaiming ‘COMING SOON!’. I’m sure our artists could have some fun with this.
The final tab is ‘Misc’, with the following options.
LAWK only - Checkbox. When enabled, non-LAWK (Life as We Know It) organelles, processes, etc. are not present in game for either the player or AI cells. This should finally let us add thermoplasts (conditionally). Default value is off.
Include Multicellular Stage prototype - Checkbox. When enabled, the player can enter the Multicellular Stage as normal. When disabled, the ‘Become Multicellular’ button is blocked from appearing, so the player remains in the Microbe Stage. Maybe emphasise that this is here because the Multicellular Stage is buggier and experimental? Default value is on.
Enable cannibalism (TBA?) - Checkbox. Allows cells (including the player) to eat and be eaten by members of their own species. A basic implementation is as simple as removing a few checks in the code (again, I tried it and it really is that easy), but there are a few secondary factors to consider. How does cannibalism affect Auto-Evo? Do signalling agents override predatory behaviour towards the same species? I think it would be nice to have this as a toggleable option, at least in the near future, but it might well be too complex to think about for 0.5.9. Default value is off.
Day/night cycle (TBA) - Checkbox. Greyed out. For now, nothing but a tease for this feature coming in the near future. In my view, the day/night cycle could be such a substantial change to gameplay that players will get an entirely different experience with and without it, so it makes sense to have it toggleable.
The full state of these options is saved to the world generation settings after clicking ‘Confirm’. The save file then retains the information.
Interactions with Other Features
An advantage of getting this done for 0.5.9 is the save incompatibility point. I suppose it’s possible to have a null check when loading a game and generate default game settings to match pre-0.5.9 games though.
The spawn system overhaul will interact with the difficulty settings, especially cloud density. So this feature should be added only after the spawn system work is done.
The procedural patch map also has interaction concerns. I wanted to make this post now because I noticed the old patch map is still hidden in Kemikal’s code. If people think the patch map toggle option is a good idea, then please keep it that way. As above, the patch map should ideally be completed before this feature.
Obviously adding planet generation is the big one, but hopefully this design is modular enough to allow for that whoever takes it up. Extra options are similar, with null checks and default values to not break save compatibility again.
As I said, I won’t be able to work on this for about a month. I definitely want to though. Difficulty options in particular will be important additions for testing and player feedback.
In the meantime, please let me know what you think. Are some things too ambitious for 0.5.9? Are there other things I’ve missed? I’m hoping that we’ve finalised the design by the time I’m ready to work on it.