Feedback #15826
Do not map minThrust to 0% throttle
Description
Not directly related to 1.3.1, but version bump might be a good occasion for this.
Currently in ModuleEngines and ModuleEnginesFX minThrust is always mapped to 0% throttle. It is hard to simulate poorly throttlable engines with this behavior.
Instead always map 0kN thrust to 0% throttle and have the engines flame-out if thrust provided by current throttle is below minThrust.
Additionally, a tweakable can be added (under advanced tweakables) to engine parts to select behavior when 0 < currentThrust < minThrust: either flame-out or continue burning on minThrust.
History
#1 Updated by Squelch about 7 years ago
- Project changed from KSP Pre-Release to Kerbal Space Program
- Category changed from Gameplay to 291
- Version changed from Build 01836 to 1.3.0
Thanks for the feedback. As you rightly point out, it is not 1.3.1 specific. Moved to main tracker.
#2 Updated by psycho_zs about 7 years ago
- Description updated (diff)
#3 Updated by psycho_zs almost 7 years ago
- Description updated (diff)
#4 Updated by linuxgurugamer almost 7 years ago
Based on my experience with the Throttle Limit Extended mod, I disagree with this. I have had no problem changing the minThrust on a ModuleEnginesFX module
Oh, I think I understand, this is related to the throttle settings. NM, he is correct
But, this applies to ModuleEngines as well as ModuleEnginesFX, I think
#5 Updated by psycho_zs almost 7 years ago
- Description updated (diff)
#6 Updated by linuxgurugamer almost 7 years ago
I would suggest this be made an option. Some people, including myself, would prefer that the entire range of the throttle on screen be the available range of the thrust, the way it is now
#7 Updated by psycho_zs almost 7 years ago
Things will get messy either way when engines with different throttle depth are used simultaneously.
Combinations of things can be reduced down to three advanced tweakables:
- shutdown engines when throttle = 0
- shutdown engine when it's current thrust < minThrust
- throttle mapping: stretched or proportinal
Out of 12 (2*2*3) possible variants, only 7 make sense:
Proportional, shutdown under minThrust: Engine1: 0-----------------------------------------|maxThrust Engine2: 000000000000|minThrust--------------------|maxThrust Engine3: 00000000000000000000000000|minThrust------|maxThrust Throttle: 0|not_0-----|-------------|---------------|100 Proportional, shutdown at 0: Engine1: 0-----------------------------------------|maxThrust Engine2: 0mmmmmmmmmmm|minThrust--------------------|maxThrust Engine3: 0mmmmmmmmmmmmmmmmmmmmmmmmm|minThrust------|maxThrust Throttle: 0|not_0-----------------------------------|100 Proportional, no shutdown (## Current model in KSP ##): Engine1: 0-----------------------------------------|maxThrust Engine2: mmmmmmmmmmmm|minThrust--------------------|maxThrust Engine3: mmmmmmmmmmmmmmmmmmmmmmmmmm|minThrust------|maxThrust Throttle: 0|not_0-----------------------------------|100 Stretched proportionally to deepest throttle, no shutdown: (Engine1 removed, otherwise it would be the same as proportional) Engine2: |minThrust--------------------------------|maxThrust Engine3: mmmmmmmmmmmmmmmmmmmmm|minThrust-----------|maxThrust Throttle: 0|not_0-----------------------------------|100 Stretched proportionally to deepest throttle, shutdown at 0 (Engine1 removed, otherwise it would be the same as proportional) Engine2: 0|minThrust-------------------------------|maxThrust Engine3: 0mmmmmmmmmmmmmmmmmmmm|minThrust-----------|maxThrust Throttle: 0|not_0-----------------------------------|100 Stretched full, no shutdown: Engine1: 0----------------------|maxThrust Engine2: 0------|minThrust-------------|maxThrust Engine3: 0------------------------------------------------|minThrust-------------|maxThrust Throttle: 0|not_0----------------|100 Stretched full, shutdown at 0: Engine1: 0----------------------|maxThrust Engine2: 0------0|minThrust------------|maxThrust Engine3: 0------------------------------------------------0|minThrust------------|maxThrust Throttle: 0|not_0----------------|100
Let's screen less desired models...
Continuing burning when throttle is at 0 might not make sense gameplay-wise.
Proportional stretching utilizes the throttle control range more fully, but may be unpredictable when the set of currently active engines changes.
Option to Flame out under minThrottle might not fit well globally, so apply it for engine individually in editor (defaulting to continue burning)
This lefts us with 3 global models:
Proportional: Engine1: 0-----------------------------------------|maxThrust Engine2: 0mmmmmmmmmmm|minThrust--------------------|maxThrust Engine3: 0mmmmmmmmmmmmmmmmmmmmmmmmm|minThrust------|maxThrust Throttle: 0|not_0-----------------------------------|100 Stretched proportionally to deepest throttle: (Engine1 removed, otherwise it would be the same as proportional) Engine2: 0|minThrust-------------------------------|maxThrust Engine3: 0mmmmmmmmmmmmmmmmmmmm|minThrust-----------|maxThrust Throttle: 0|not_0-----------------------------------|100 Stretched full: Engine1: 0----------------------|maxThrust Engine2: 0------0|minThrust------------|maxThrust Engine3: 0------------------------------------------------0|minThrust------------|maxThrust Throttle: 0|not_0----------------|100 + an option at part level to flameout below minThrust
#8 Updated by psycho_zs almost 7 years ago
Another possibility is to move all throttle advanced tweaks to part level.
Imagine these options in engine's menu in VAB:
... Under throttle: flameout/continue Map min. thrust to: [-------o----------------------] 30% throttle Map max. thrust to: [-----------------------------o] 100% throttle Over throttle: flameout/continue ...
With advanced tweakables disabled, just rely on some default values modeled after some of the variants mentioned in previous comments. With advanced tweakables enabled you could actually create an engine cluster which fires different sets of engines on different thrust levels while at certain throttle.
#9 Updated by psycho_zs over 6 years ago
- Expansion Core Game added
Alternative idea: Add throttleTrhustCurve to ModuleEngines*
like:
throttleThrustCurve { key = 0 0 key = 1 75 key = 100 100 }