-
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
Eternal weather #59707
Eternal weather #59707
Conversation
This comment was marked as off-topic.
This comment was marked as off-topic.
I am personally all for any and all additional world creation options, they only add to the replayability and enjoyment of the game! |
Nice. |
|
If player wants to have an easy run, he can set the "Sunny" eternal weather. Setting any type of eternal weather prevents any other weather (portal storms included) from spawning. I don't know if acid weather is broken or not, if it actually works or not. I don't want to provide dubious, untested choices to players. |
As an aside, eternal acid rain would be a dope challenge run setting. I understand that may be out of the scope of this PR however. |
hell yeah! was looking to spice up my eternal winter challenge, and this would be a good addition to it! thank you! |
I do not know all the details but sunny weather have some odd features that may need to be worked around for this feature (or you can just remove sunny weather from this). Sunny weather causes certain things to happen just because it is sunny. Sunlight warmth is applied and extra light is added. AFAIK clear weather is "blank" weather that does not have any modifiers. All other weathers either add or remove something. So I do not think it should be removed. If someone wants to play with eternal "clear" then that is fine I think. |
Ok, I removed all unneeded json and option copy stuff. Made it so eternal weather updates ingame too. Removed no longer needed debug menu Change weather option as Eternal weather world option is doing essentially the same. |
If 12 new scenarios aren't worth adding why is it meaningful to add them as options? This is symptomatic of the fact that this isn't a curated experience it's just a desire to spam options and have players pick up the pieces. With a trivial amount of effort once the EOC is exposed someone can make the exact scenario they want and that's exactly the kind of thing that we want to encourage for custom play, not having a bunch of switches that encourage people that don't know what they're doing to flip them all. |
Because eternal season is an option, not a scenario; eternal time is an option, not a scenario. Following this logic, eternal weather should be an option too. Tying any of this options to scenarios severely limits players choices.
What do you mean by that? I don't understand. Care to elaborate?
Is this bad? Players clearly stated that they welcome lots of options they can choose from.
Not all players have the desire or abilities to create mods. Especially mods with the sole purpose of adding a single scenario. Changing option is billion times easier than creating a mod.
You think players are so stupid that they don't understand the description of an option? How about player exactly knows what this particular option do and switches it with full understanding?
I didn't say a word about eternal season. What if player wants to have eternal sunny weather? Will eternal sunny weather absolutely dominate his game so it doesn't make sense to mix with any other scenario? I can hide this feature behind external options. Will you accept it this way? |
I have to chime in and say I also 100% disagree with Kevin's viewpoint on this. With all due respect I am extremely disappointed that this and 'configurable forest' were declined and, frankly, the argument that 'someone can edit this themselves in JSON' is absolutely baffling to me. More options for players should never, ever, be considered a bad thing and expecting them to edit game files is absolutely bizarre. |
If we provide an option, it is exceedingly reasonable to assume that it ju-t works, and doesn't break things - e.g. options represent curated things. Options like this thrust the responsibility onto the player to make sure things work, and thus onto us to deal with all the bug reports of various things that don't work if people tweak them. So options like either force us to support a combinatorial explosion of scenarios, or degrade the utility of bug reports as we recieve bug reports to which the answer is "we don't support that" (which is in itself a maintenance burden), and which makes bug reporting less user-friendly. The expectation is not that users go to edit their JSON for this, but rather that someone puts together a cohesive thing to make it work, and they assume the maintenance burden for that, rather than this project. |
We already have a warning in world options menu saying that changing some of these options may lead to unexpected results. We assume that players are not dumb and thus should understand that some combinations of world options, scenarios, professions and so on may lead to weird thing happen. This worked perfect until now, and adding one more option suddenly completely breaks things? |
You're right, that is poorly phrased. An option like this either forces the project to maintain and make sure said combinatorial explosion works, or thrust said responsibility onto the player. Existing options increase maintenance burden, just as this one does. It is the job of project maintainers to decide where to draw the line on what is "worth it". |
So, we're not adding this feature in assumption that it might cause bugs? This contradicts our history of adding innumerable unfinished features which indeed caused bugs at the time of merging, but was fixed afterwards. Unlike eternal season and eternal time of day, this feature has undisputable benefit of turning it off right in the middle of the game, which should immediately revert any possible weird behavior in case it happens. Even so, I explicitly state that I'm ready to maintain this particular feature. I'll try to fix any bug caused by it. In case I won't be able to fix it, I'm even ready to remove this feature. |
I moved this feature from world options to external options. |
I agree with the argument to keep this in as an option. I think keeping them external is sufficient to meet grounds for stable inclusion, and we can debate the rest later. |
When eternal weather conditions were introduced in CleverRaven#59707, it added this piece of code to update the weather every turn, presumably to force the weather to the chosen option on game start, and ensure that anything that might override it during the game cannot do so. Unfortunately, updating the weather every turn means that the weather can oscillate between two types of weather every handful of turns. As seen in CleverRaven#63072, if these two types of weather have different sight penalties, this means that the map's level cache will be rebuilt every couple of turns, significantly slowing down the game. It also means that weather_manager::nextweather is effectively ignored, and with it weather_type::duration_min and weather_type::duration_max. So, instead of forcing a weather update every turn, force a weather update at the start of the game, and handle eternal weather when updating weather (giving it priority over weather overrides).
When eternal weather conditions were introduced in #59707, it added this piece of code to update the weather every turn, presumably to force the weather to the chosen option on game start, and ensure that anything that might override it during the game cannot do so. Unfortunately, updating the weather every turn means that the weather can oscillate between two types of weather every handful of turns. As seen in #63072, if these two types of weather have different sight penalties, this means that the map's level cache will be rebuilt every couple of turns, significantly slowing down the game. It also means that weather_manager::nextweather is effectively ignored, and with it weather_type::duration_min and weather_type::duration_max. So, instead of forcing a weather update every turn, force a weather update at the start of the game, and handle eternal weather when updating weather (giving it priority over weather overrides).
Summary
Features "Eternal weather"
Purpose of change
A new external option for players to play with.
Based on @Saicchi's closed #52637, but with several significant changes both on design and implementation.
Regarding @kevingranade's comment from #52637:
Describe the solution
ETERNAL_WEATHER
external option.Describe alternatives you've considered
Testing
When creating world, set snow storm as eternal weather. Created a character in this world, checked that snow storm is indeed eternal.
Additional context
None.