Bug #5267
Ship on launchpad causes explosion of the launchpad by entering and exiting time warp
100%
Description
Reproduction steps:
- Create a new sandbox save
- Load the attached ship on Launchpad
- Enter x5 physics warp
- Exit time warp
On entering time warp the ship "straightens out", and its parts clip slightly into the launchpad.
After exiting time warp, the ship's parts appear to pop up above the launchpad again and for very short time everything looks fine, then there is an explosion inside the launchpad, followed by another explosion which destroys the ship.
By entering time warp again right after the first explosion, it is possible to save the ship and get it completely unharmed on pile of rubble that remains from the launchpad.
Estimated cause: time warp clips parts of the ship into the launchpad. Exiting the time warp expels these parts out of the launchpad, and flexibility of joints makes them tap the launchpad at speed exceeding launchpad tolerance, leading to its destruction.
Apart of that, there are exception entries in output_log.txt:
Game Unpaused!
Can not play a disabled audio source
(Filename: Line: 377)
NullReferenceException: Object reference not set to an instance of an object
at ProtoCrewMember.UnregisterExperienceTraits (.Part part) [0x00000] in <filename unknown>:0
at Part.UnregisterCrew () [0x00000] in <filename unknown>:0
at Part.OnDestroy () [0x00000] in <filename unknown>:0
(Filename: Line: -1)
[PlanetariumCamera]: Focus: Kerbin
NullReferenceException: Object reference not set to an instance of an object
at UIPanelBase.StartTransition (SHOW_MODE mode) [0x00000] in <filename unknown>:0
at UIPanelBase.BringIn () [0x00000] in <filename unknown>:0
at KnowledgeBase.Show () [0x00000] in <filename unknown>:0
at KnowledgeBase.OnMapFocusChange (.MapObject target) [0x00000] in <filename unknown>:0
at EventData`1[MapObject].Fire (.MapObject data) [0x00000] in <filename unknown>:0
at PlanetariumCamera.SetTarget (.MapObject tgt) [0x00000] in <filename unknown>:0
at PlanetariumCamera.RemoveTarget (.MapObject tgt) [0x00000] in <filename unknown>:0
at MapView.OnDestroy () [0x00000] in <filename unknown>:0
(Filename: Line: -1)
NullReferenceException
at (wrapper managed-to-native) UnityEngine.MonoBehaviour:StartCoroutine_Auto (System.Collections.IEnumerator)
at UnityEngine.MonoBehaviour.StartCoroutine (IEnumerator routine) [0x00000] in <filename unknown>:0
at ProgressTracking.postProgressData (UnityEngine.MonoBehaviour host) [0x00000] in <filename unknown>:0
at ProgressTracking.OnDestroy () [0x00000] in <filename unknown>:0
(Filename: Line: -1)
NullReferenceException
at (wrapper managed-to-native) UnityEngine.MeshFilter:set_sharedMesh (UnityEngine.Mesh)
at SpriteMesh.CreateMesh () [0x00000] in <filename unknown>:0
at SpriteMesh.get_mesh () [0x00000] in <filename unknown>:0
at SpriteRoot.Delete () [0x00000] in <filename unknown>:0
at SpriteBase.Delete () [0x00000] in <filename unknown>:0
at UIListItemContainer.Delete () [0x00000] in <filename unknown>:0
at UIScrollList.RemoveItem (Int32 index, Boolean destroy, Boolean doEasing) [0x00000] in <filename unknown>:0
at UIScrollList.RemoveItem (IUIListObject item, Boolean destroy, Boolean doEasing) [0x00000] in <filename unknown>:0
at UIScrollList.RemoveItem (IUIListObject item, Boolean destroy) [0x00000] in <filename unknown>:0
at ApplicationLauncher.RemoveApplication (.ApplicationLauncherButton button) [0x00000] in <filename unknown>:0
at ResourceDisplay.OnDestroy () [0x00000] in <filename unknown>:0
(Filename: Line: -1)
Related issues
History
#1 Updated by Squelch over 9 years ago
Interesting find.
I am able to reproduce the exploding launchpad, the subsequent craft destruction, and even the "saving" of the craft by warping again. However, I cannot reproduce the errors you cite. They clearly show in your log, but I do not have corresponding entries in mine.
I would contend that the errors are as a result of entering warp again, and they do relate to game events that would usually occur when the vessel is being registered as "in flight". I suspect that warping has left it in an indeterminate state. As a result, I am inclined to say that while they are caused by re-warping, and they do not relate to the exploding pad.
The craft is rather wobbly, and can be seen to move around as the scene is loaded. Entering physics warp before this has settled, or even as a result of exiting physics warp will amplify any instabilities in the craft construction. Your observations about the craft clipping into the pad and popping out again I do agree with. However the craft is nearly 286 tonnes resting directly on the launchpad, and from a design perspective, could be made much stiffer and ideally have launch clamps. The simple addition of launch clamps alone does reduce the wobble, so therefore the clipping and subsequent explosion.
Should this be classified as a bug, or feedback? It is clearly an undesirable event, but can be mitigated by stiffer construction and launch clamps. ie better design.
#3 Updated by Squelch over 9 years ago
There is a physics "grace period" in place that should prevent building destruction on launch, and is also present when reverting to launch. However, this does not apply to time warping, and is very likely the cause of the observed destruction here.
There may be a case for a similar grace period when coming out of warp, but it must be considered whether this is a usual state of events on the launchpad. This would put the issue firmly into feedback territory.
#4 Updated by Kasuha over 9 years ago
I can confirm that I don't see exceptions I reported first when I try to reproduce the issue again. I assume it was related to the ship's destruction in some way and is probably separate issue.
In my opinion the problem is with implementation here. The game may act as intended, but the result is undesirable and unrealistic. Landed ships have all kinds of distortions and tensions between parts as forces of gravity push the ship against the ground. The very process of putting such ship to the physics simulation should make sure the ship is deployed in already appropriately distorted state - no grace period would then be needed. Options include running a physics relaxation pass right before each deployment of a landed ship to physics, or saving each landed ship including all distortions and tensions (and only running the relaxation pass for new crafts constructed in VAB/SPH). Doing it that way might come with added benefit in deploying planes with uneven landing gear height on runway without bouncing them around.
#5 Updated by Squelch over 9 years ago
- Platform Win32 added
- Platform deleted (
Windows)
#6 Updated by Squelch about 9 years ago
- Related to Bug #5268: Craft clipping through asteroid on timewarp added
#7 Updated by Squelch about 9 years ago
- Status changed from New to Confirmed
- % Done changed from 0 to 10
Issue #5268 is closely related to this, and as you observe, the behaviour is a little odd. However, when timewarp is entered, all vessels are packed and have their physics properties disabled. This is likely intended for performance reasons, but feedback items will be put forward to the developers that covers each of these issues, especially for focused or "in close proximity" vessels.
The observed behaviour is confirmed, but like the related issue, may be intended. This issue will be updated with confirmation or otherwise as that information becomes available.
#9 Updated by TriggerAu over 8 years ago
- Status changed from Confirmed to Needs Clarification
- % Done changed from 10 to 0
#10 Updated by TriggerAu about 8 years ago
- Status changed from Needs Clarification to Closed
- % Done changed from 0 to 100
Closing this report out for now. If you find it is still occuring in the latest version of KSP please open a new report (and this one can be linked to it.) For best results, the wiki contains really useful info for when creating a report http://bugs.kerbalspaceprogram.com/projects/ksp/wiki.
You can also ask questions about the bug cleanup in the forum here: http://forum.kerbalspaceprogram.com/index.php?/topic/143980-time-to-clean-up-the-bug-tracker/ and tag @TriggerAu to get my attention