Project

General

Profile

Feedback #15826

Do not map minThrust to 0% throttle

Added by psycho_zs about 7 years ago. Updated over 6 years ago.

Status:
New
Severity:
Low
Assignee:
-
Category:
Gameplay
Target version:
-
Version:
Platform:
Linux, OSX, PS4, Windows, XBoxOne
Expansion:
Core Game
Language:
English (US)
Mod Related:
No
Votes:
Arrow u r green
Arrow d r red

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
}

Also available in: Atom PDF