-
Notifications
You must be signed in to change notification settings - Fork 4.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Move most world/debug options to externals #79310
base: master
Are you sure you want to change the base?
Conversation
I would reverse all of the following.
Size of cities and city spacing should both be moved to external only as both of these break special generation in ways that aren't easily addressable at all and should exclusively be something that exists for innawoods or similar mods. It should never be used in any mod that isn't a total conversion mod and I'd consider it ideal with it forcing that kind of labeling in the mod menu even for third party mods. Monster Evolution I think should stay but I don't have any real arguments for it other than I think it would worsen the experience for players who are unaware of github and third party modding especially if we didn't then ship a couple mod options around this with the game which again I believe would just clog up the mod menu. Also how would mods interact with each others' slider adjustments to this? edit: there are several places in the above reasoning where I used “we” language instead of “I”. It would have been better if I had used I but since GitHub doesn’t show edit history I’m commenting it here rather than changing my original text. |
we have no such obligation. |
You have no obligations. |
I agree with Maleclypse assesment of the options, I think theres place for some small but impactful levers to difficulty in user facing settings, and the ones outlined in his post are effective and dont really seem to cause problems with development. |
Back when the simplified world settings screen was added a couple of stables ago, the current difficulty slider was specifically created as a new thing so that there is a simple lever for the player to adjust difficulty with that doesn't break the game like a lot of the other settings can do. I don't think that design rationale has expired and I would keep that one at minimum. |
This comment was marked as off-topic.
This comment was marked as off-topic.
Earnest question: Does tweaking monster evolution have any knock-on effects that are a hassle to deal with? As difficulty goes, I think it's broadly reasonable to have the game ramp up slower for a less skilled player. Monster evolution isn't pegged to any milestones or time frames that are grounded in reality, right? If it messes with wildlife spawns or such then do tell me. |
@IdleSol you have made several heckling comments like this recently in different issues. This is not ok and if repeated will result in a permanent ban. |
So my main reason for not removing the city size/spacing slider was that there would be no sliders left. It would be... weird. Reviewing the points brought up, it seems most of the design conversation around the existing sliders was #57098. I'm really not convinced that any sliders should exist, but I don't have very strong arguments against them at the moment. What I do take issue with is the city size slider. Ironically, that is the one I most think should be removed. As mentioned, it is by far the worst offender of breaking the game. So my current plan, in light of feedback, is to reverse course on the sliders. City size/spacing slider ---> Removed, options moved to externals Difficulty/NPC sliders ---> Kept
Any external options would be loaded like other json objects, with the last loaded mod taking priority. e.g. if evolution was an external and someone loaded two mods with both defining different values then the last one in the mod list is applied. All the sliders are currently 'main options', so only one thing can set them. (The player, via the options menu or the sliders during world creation). I am not 100% sure on how I could/would move the slider options to externals while still keeping them modifiable by sliders, but that's part of the working problem here. |
e743218
to
a96f09f
Compare
I don't think I agree with all of this but ignoring that for a minute do removed options need any kind of config migration or does it just silently ignore the non existent ones? |
-region_default ---> external SEASON_LENGTH --> external CONSTRUCTION_SCALING ---> external ETERNAL_SEASON ----> external -Removed the time group since it only had a single option left(ETERNAL_TIME_OF_DAY), moved that option to its own listing
Moving them to externals actually causes the new value to load smoothly from what I can tell, although more testing is definitely needed. There are a lot of ways for an option to be loaded and it's a bit of a mess. |
Due to implementation I have once again changed course. (Believe me this is not fun for me either) None of the sliders have been removed. However, all of the slider-relevant options (including One of the upsides to this is that it shouldn't* have any impact on existing savegames, which will continue to use the same world options at the same values as before. There are downsides to this approach. -We are still sending the option text to be translated, despite the fact it will never be displayed. -Because they remain as world options, they cannot be overridden with externals. *Note that the following options were not slider-based and may need migration for existing save games. I have given some thought about how to do this, and broached the topic on the development discord. The consensus answer seems to be enabling a newly-created per-save unique mod on legacy saves with the externals defined at their old values. There are issues with this, like what if the option is removed/changed in the future? |
Worth noting the churn in 4876d8a is somewhat necessary. There's a fun bug with option groups: If all the options are |
Summary
None
Purpose of change
We have a plethora of world options. Too many. This is an opinion that has been repeatedly stated by senior developers, and one that I share.
Presenting these options to players implies that it is intended for players to casually fiddle with them. It is not. These are major balance levers, meant for dedicated mods.
Describe the solution
This PR is opened as a draft, so the solution describes how it should be when it's done. It is not done at the time of this writing.
DEBUG:
Distance initial visibility ---> Moved to scenario-specific value. Same default as before, but now scenarios can twiddle with it.
Vertical Range of 3D field of vision ---> Option removed. No reason to keep it around, it should have gone with the option to disable 3D FOV. Value moved to game constants and locked at 4.
WORLD:
Size of cities ---> Untouched (for now), retained on the main menu
City spacing ---> Untouched (for now), retained on the main menu
Difficulty (slider) ---> Removed, underlying options moved to externals
Spawn rate/item scaling factor --> The underlying options in question
Monster speed/monster resilience --> The underlying options in question
Random NPCs (slider) ---> Removed, underlying option moved to externals
Random NPC spawn time --> The underlying option in question
Monster evolution slowdown --> Moved to external
Season length --> Moved to external
Construction scaling --> Moved to external
Eternal Season --> Moved to external
Wandering Hordes --> Untouched for now, option will be removed when hordes are in a better state. (That's been the plan for a long time, tangential to this PR)
Mutations by radiation ---> Moved to external
Describe alternatives you've considered
Testing
Opened as draft
Additional context