Jump to content

[WIP][1.8.x] SSTULabs - Low Part Count Solutions (Orbiters, Landers, Lifters) - Dev Thread [11-18-18]


Shadowmage

Recommended Posts

3 hours ago, 123nick said:

isnt it pronounced .Gif ? with a hard G ?

Not according to the guy who named it. (this has the potential to go very, off topic, however) Suffice it to say that when it was a novel, new way to get graphical content over the net, I never heard anyone use the hard G.

On the subject of actual KSP stuff... I had a rescue contract and the target turned out to be an LC2. Since it had EC and RCS, I decided to dock it. Oddly enough, it won't dock. I do not think this is an SSTU issue, per se, since the game does't know that rescue pod can have a docking port. It did make me wonder how the initial pod is created such that it cannot dock, but like an idiot, I derogated it instead of checking the save file and looking at the craft. I'll go hunting for another SSTU pod, I'm curious now.

Link to comment
Share on other sites

7 hours ago, tater said:

Not according to the guy who named it. (this has the potential to go very, off topic, however) Suffice it to say that when it was a novel, new way to get graphical content over the net, I never heard anyone use the hard G.

On the subject of actual KSP stuff... I had a rescue contract and the target turned out to be an LC2. Since it had EC and RCS, I decided to dock it. Oddly enough, it won't dock. I do not think this is an SSTU issue, per se, since the game does't know that rescue pod can have a docking port. It did make me wonder how the initial pod is created such that it cannot dock, but like an idiot, I derogated it instead of checking the save file and looking at the craft. I'll go hunting for another SSTU pod, I'm curious now.

It sounds like another MM file for contracts is going to be needed.   Much like the "Deploy Parachutes while splashed down" with Real chute that prevents such a thing....

 

Link to comment
Share on other sites

16 hours ago, StickyScissors said:

@Shadowmage Found an issue with station parts and symmetry that i have somehow managed to not find until now.

Example jif -

Relevant part of output file:

Notes:

-This issue only happens with parts that come with swapable ports right out of the part menu, such as the ST-COS-HAB-L.

-If you place, for example, the ST-COS-HAB-L down without symmetry, set TDock and BDock to Mount-None, then place it down with any symmetry amount, it will work fine. 

-It's kinda annoying trying to build a wet-lab concept with symmetry issues :P

 

 

 

 

That is no good.  Sounds like it is a problem related to the module-switching, and might not be something that I can solve (meaning docking ports switching will have to be removed from all parts).

 

Will do a bit of investigation on it before todays release to see if I can clean it up.  No guarantees though; stock code -really- doesn't like module-switching.

 

Edit:  The good news is it looks like I might be able to get this problem fixed.  Seems that during symmetry counterpart creation my modules are creating a second set of docking port modules, and the difference in module-list-length between the base and symmetry parts is what is causing the error.

(But again... why must there be so many different loading/part creation code-paths?  Why could they not just instantiate the symmetry part from prefab, like every other part, call onSave() on the base part, and feed that config node into the symmetry part during its OnLoad() call?  Symmetry parts are my worst nightmare in the coding end of modding this game; they are 100% inconsistent with the loading and creation of parts anywhere else in the game, except for maybe contracts.. those are terrible as well for part-creation consistency).

 

Edited by Shadowmage
Link to comment
Share on other sites

13 hours ago, Pappystein said:

Actually, I think @NecroBones solved this issue with his radial SAS module in his SpaceY mod.    It goes on in Symmetry 2. Drag and Wobble forces will cancel each other out because the same drag/wobble is happening exactly 180 degrees out of phase (IE on the other side of your Rocket.)  

Applying his methodology, assuming a quarter circle with an RCS thrust point at each end, and the attachment halfway across the arc. You will have reduced your RCS part count by half and you are ALMOST as accurate (in lack of wobble) as you were with the standard parts.  

But I agree with others that a modified stack mounted probe core is the better choice because then everything is centered no matter what.    can you swap node sizes out when you resize a part (for larger torque/drag resiliency on larger stack RCS modules?)

I was out of SOI of the station for much of that time (6 weeks game time.) waiting for my probe to get to it's next burn point and time warp was a factor.

I have run 3 rockets now with ZBO tanks, each keeps spamming in the right click Tweakable menus a temporary loss measured in what I think are µl.

I am checking these during my burn to orbit or while ON station.

NOW,  Not all of my tanks are ZBO but the non ZBO tanks are not in the same stage and there is no fuel flow that should be happening.

 

Re The tank fragility,   I am sick so this weekend when I am up I will play with things further.

 

 

Yeah doing it as others have done wrap-around reaction wheels is a possibility, I'm not a huge fan of using symmetry to solve part-count problems though.  -If- I make such a part it will be a single part and not rely on symmetry at all.

 

Thanks for the updated information on the boiloff issue.

Indeed, sounds like there might be some sort of problem with the boiloff plugin, perhaps simple(?) floating-point accuracy issues; as long as you have sufficient EC, its boiloff should be exactly zero.

 

Hope you get feeling better :)

 

Link to comment
Share on other sites

10 hours ago, tater said:

Not according to the guy who named it. (this has the potential to go very, off topic, however) Suffice it to say that when it was a novel, new way to get graphical content over the net, I never heard anyone use the hard G.

On the subject of actual KSP stuff... I had a rescue contract and the target turned out to be an LC2. Since it had EC and RCS, I decided to dock it. Oddly enough, it won't dock. I do not think this is an SSTU issue, per se, since the game does't know that rescue pod can have a docking port. It did make me wonder how the initial pod is created such that it cannot dock, but like an idiot, I derogated it instead of checking the save file and looking at the craft. I'll go hunting for another SSTU pod, I'm curious now.


Indeed;  I'm going to start bundling my 'rescue-contract-pod-validator' mini-mod with SSTU in the near future, as I absolutely do not support my parts being used in rescue contracts, at least until SQUAD cleans up the part-spawning code to be consistent with the main part-initialization sequences (currently it appears that it skips most of the loading steps, which of course causes problems with uninitialized modules in the parts).

Worse yet, I can't even try to test the problem effectively, as it relies on random contract generation to select the right pod.  Then you have to RV with -each- one to see if it was one of the problematic parts... and by then you've missed most of the opportunities needed for debugging (e.g. when the contract was originally created, and when you first came into physics range of the part).  Terrible.. just terrible.

(On a similar note.. I wish the entire contract system would go away, and be replaced with a proper 'program management' mechanic).

Link to comment
Share on other sites

9 minutes ago, blowfish said:

I know there's a way to spawn contracts through the debug window, I haven't quite figured out how it works though.

Good point.. and as it is available there, it likely has some API stuff that might be used to spawn specific ones through code for testing.  Or... hmm.. I could actually use my 'rescue-pod-validator' to force it to use the specific problem pod for testing purposes (it picks randomly from a config list of approved pods; merely make that list contain a single part, the one intended for testing, and all new contracts would use that single part).

So I suppose that isn't too much of a problem if/when it comes time to do testing on those.

 

 

 

Link to comment
Share on other sites

12 minutes ago, blowfish said:

I know there's a way to spawn contracts through the debug window, I haven't quite figured out how it works though.

The contract adding system is based on what contracts are already spawned, so sometimes it will refuse to add any more of a particular type, and you can't specify what parts spawn in part/crew recovery contracts

Link to comment
Share on other sites

Updated testing release is available:

https://github.com/shadowmage45/SSTULabs/releases/tag/0.5.32.125

Adds a large number of solar panels, solar panel switching on DOS modules, textures for COS modules, and a few bugixes and other enhancements.  See the link for downloads and full change-log.

 

a4Stjo9.png

 

This next week will consist of playing around with the AO shader a bit and more texture work on DOS/COS parts.  If I get the shader working and integrated I will likely add the MFT-C series of tanks (same as A/B but without piping).  May also finish up the WDP model and textures as it is a fairly stand-alone part and won't effect too much else. 

On that note, has anyone had problems with the WDP (Welding Docking Port)?  Are vessels functional and stable after having been welded together?

Link to comment
Share on other sites

Initial investigations into loading shaders for KSP is turning up some interesting but disappointing information.

1.) In order for a shader to be ever found by the Unity built-in function Shader.Find("shaderName"), it has to be compiled with the application.  This is a Unity limitation as near as I can tell, and there is little/nothing that SQUAD can do about it.  So mod added shaders will never be findable for the stock model-loading functions.

2.) Loading of surface shaders is not supported through the built-in (but deprecated/obsolete) Material(string shaderSource) constructor that is currently used by every other mod that is loading custom shaders.  It will work for fixed-pipeline shaders, but not for any more advanced setups.  Will need to find a new method to load shaders.

3.) Going to have to investigate loading of the shaders through asset bundles.  I have no idea if this is in fact supported or not.  Google searches turn up inconsistent results.  Loading models was easy enough, so loading of shaders might not be too hard if it is even possible.

4.) Any use of the shader will have to be done manually at runtime through plugin code and the creation of custom material setups.  You cannot export models with the custom shader and expect them to work when loaded into KSP (as the shader is not available to Shader.Find(), which the stock model-loading functions appear to use).

Link to comment
Share on other sites

2 hours ago, Shadowmage said:

On that note, has anyone had problems with the WDP (Welding Docking Port)?  Are vessels functional and stable after having been welded together?

Your multi docking port node is so good that it kinda make them redondant. There is not much reason to weld something you can dock/undock.

I will give it a try, I am currently building a interplanetary tug and I just don't see why I would undock some if its part.

Link to comment
Share on other sites

Well, I can see it being awfully useful for making permanent space station modules. I'm going to stress test that right now.

E: Shadowmage, as you appear to be some sort of wizard, have you considered the idea of wet workshops?

Edited by falken
Link to comment
Share on other sites

10 minutes ago, falken said:

Well, I can see it being awfully useful for making permanent space station modules. I'm going to stress test that right now.

I don't build much station. But the solar panel structure seem like a good application for WDP. If I may ask, I would be pleased to see some pics of your construction operation.

@Shadowmage There is a tipo in the SC-C-CMX config:

INTERNAL
{
    name = SC-B-CM-IVA // should be SC-C-CM-IVA
}

 

Edited by RedParadize
Link to comment
Share on other sites

3 minutes ago, RedParadize said:

I don't build much station. But the solar panel structure seem like a good application for WDP. If I may ask, I would be pleased to see some pics of your construction operation.

I do, and I'm a little annoyed. I started making my ISS/Freedom hybrid, and I got this far:

QCrK9Ym.png

(all made with shuttle besides the 'russian' style module and supply ship)

Now I am sitting here, looking at the new lovely textures on these station parts that just showed up in the latest update and I want to start over!!

Link to comment
Share on other sites

Okay so I like the solar arrays, and I really like that they are dual axis. That to me is a very important thing. Now, will you be having the truss be modular? Like, the ability to have a few types of truss that are used quite often by station builders such as habtech, hex truss? Or even the ability to get rid of the truss entirely, leaving just the solar array and its rotation system, so you can just pop it on anything? 

E: The welding docking ports seem to work as intended. Very nice! 

Edited by falken
Link to comment
Share on other sites

23 minutes ago, RedParadize said:

I don't build much station. But the solar panel structure seem like a good application for WDP. If I may ask, I would be pleased to see some pics of your construction operation.

@Shadowmage There is a tipo in the SC-C-CMX config:

INTERNAL
{
    name = SC-B-CM-IVA // should be SC-C-CM-IVA
}

 

Thanks, noted and fixed :)

 

6 minutes ago, falken said:

Okay so I like the solar arrays, and I really like that they are dual axis. That to me is a very important thing. Now, will you be having the truss be modular? Like, the ability to have a few types of truss that are used quite often by station builders such as habtech, hex truss? Or even the ability to get rid of the truss entirely, leaving just the solar array and its rotation system, so you can just pop it on anything? 

Yes; pretty sure they will use a customized structure to allow for something much more compact than what you currently see while stowed.  From there I will likely have it go to a standard diameter end-cap (1.875m maybe?, no larger than 2.5m), which will have a selection of adapters available for it.  I likely won't be including any truss parts myself, but may include patches to make use of Nertea's parts for integrated adapters when NF-Construction is present.

 

On the custom-shader note; I have found how to load the shader through AssetBundles, and it appears to be working properly in initial testing.  Will have to put together some more complete test-cases to make sure the specular and AO portions of it are working properly, and do a bit of code updating to properly handle shader switching.

Just now, RedParadize said:

I have a bug to report: DOS Solar panel produce +10000 e/s.

Which ones?  The stand-alone panels, or the integrated panels?  And any specific size of panel?

Link to comment
Share on other sites

1 hour ago, Shadowmage said:

On the custom-shader note; I have found how to load the shader through AssetBundles, and it appears to be working properly in initial testing.  Will have to put together some more complete test-cases to make sure the specular and AO portions of it are working properly, and do a bit of code updating to properly handle shader switching.

Nice!  Does this allow them to be found using Shader.FInd / whatever the stock mu loading code does?  If not, I can poke around and try to figure out how this works...

Link to comment
Share on other sites

21 minutes ago, blowfish said:

Nice!  Does this allow them to be found using Shader.FInd / whatever the stock mu loading code does?  If not, I can poke around and try to figure out how this works...

I haven't checked, but I highly doubt it.  From my research earlier today it is a limitation of Unity that only shaders compiled with the application will be available with Shader.Find()  (which is what the stock model-loading code uses from what I can tell).

Will do a bit of testing to see if it can be found with Shader.Find();  would be good to know one way or the other.

 

Edit:

Indeed, it does not load in a way that Shader.Find() can locate it.

[LOG 17:45:10.189] Loaded shader: SSTU/Bumped Specular AO
[LOG 17:45:10.190] Shader.Find() returned: 

Sad, but not unexpected.

Edited by Shadowmage
Link to comment
Share on other sites

Comparison of custom shader vs. KSP shader

Left = KSP/Bumped Specular shader.  Base texture has AO baked into it, specular comes from the alpha channel in diffuse texture.

Right = SSTU/Bumped Specular AO shader.  Base texture is RGB only.  Specular is separate RGB texture.  AO is separate RGB texture.

9QYPZPE.png

No real noticeable differences between the two; I would say that the custom shader is so far looking like a quite nice replacement/addition.  Need to add back in rim-highlight support as apparently stock uses that for part highlighting in the editor (or is otherwise incompatible with the custom shader).

 

I also just realized that I can control the specular hardness value directly from the shader as well, perhaps from the alpha channel in the specular texture (though I've not once changed the hardness on the shader from the default value for any of my parts, so no clue how much I would use that ability).


So, looking good towards having some no-piping fuel tanks.  Have a few other uses in mind for the shader, but this was the main one.

Link to comment
Share on other sites

I was stress testing the welding docking ports, and I think these parts are one of those "do one, then save before doing more" type deals. I set up an ISS truss system which had 6 of the things. Got 3 of them done before the game crashed on the 4th. No documentation unfortunately, but hey.

Wasn't noticing any problems at all with parts that had welded in place however.

Link to comment
Share on other sites

Not entirely sure if this is a bug or not, but disabling something in staging doesn't quite work. For example, the petal adapter, if I say disable bottom payload staging, it still does it anyway upon staging. also if you try to disable it entirely, it doesn't go off the staging list and still does it's normal thing. Just wanted to clear this up. :)

Link to comment
Share on other sites

This thread is quite old. Please consider starting a new thread rather than reviving this one.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...