Jump to content

fatcargo

Members
  • Posts

    393
  • Joined

  • Last visited

Posts posted by fatcargo

  1. I'm just reporting a incompatibility for anyone else also stumbling on this issue.
    This isn't not a real bug report because i just rebooted my KSP1 playthrough after a long time and i'm not sure CC mod is up to date with KSP version.
    Alongside this mod, i installed also Allista's Configurable Containers v2.6.2.1 and main UI panel won't open.
    I found in log file a line with "Failed to add Resource [long integer number] to Simulation PartSet etc etc"
    It appears some resource is being removed while other parts/modules are trying to use it, and KSP isn't too happy about it.

  2. If managed by mod, any bugs can be compensated for.

    So, completely separate tech trees can be a thing in KSP.

    Like geology, general phyiscs, structural engineering, fluid dynamics,  biology,  psychology, nanotech etc ...

    I'm hinting at the idea replacing current science system to prevent investing science in one branch to be used in another, keeping unrelated fields of study separate.

    One more thing : how are science points being kept separate by type, from generating by the science part to the last step when utilized in tech tree ?

  3. So, this mod can separate science points into types that can be later expended on specific nodes in tech tree...

    Could tech tree nodes be separated completely from main tech tree, in their own root nodes ? Yes, it would make them unresearchable from default research root, but with some additional code those could be unlocked and allow further research as expected.

  4. In my case for Science Relay, i had similar problem, but was able to kind of solve it.

    When i deployed a small science station around Mun i tried to send science data from a nearby satellite and it didn't work.

    So i turned on debug output and found that my station had 0 capacity to receive science (it has MPL lab module) and all science was sent back to original sources (the science parts that generated it).

    So i built a second module, launched it on SPH tarmac and tried to send science there and it worked. For unknown reason, my first station simply bugged out. I send an engineer to weld the science box part and it works now.  Strange indeed.

    I did poke around in source, recompiled it with referencing KSP 1.11 assemblies and added some debug prints. Turns out finishTransfer() function in ScienceRelay.cs receives the vessel loaded argument as false, then it loops through all available science containers and ultimately fails, causing the "No valid science container for science" to show in  debug log window.

    I can try to reproduce the bug, but this may be some edge case.

  5. Hoping to reignite the discussion (even by going slightly OT again) , i've looked at Modular Flight Integrator which is written as VesselModule that manages part aerodynamics and heating model.

    Link:

    I assume it is designed only for crafts moving in air medium (ie low Reynolds number), but i'm not entirely sure if it can do other things, like modeling part behaviour in liquid medium (ie high Reynolds number).

    If MFI can't be used to model part motion in liquids, is it possible to write a separate VesselModule plugin that can override stock fluid mechanics in KSP and perform its own calculations ?

    In the above linked old post discussing the "Analysis of the buoyancy of parts and how to improve things" it has in OP mention of

    Quote

    The game uses a formula which, as far as I can tell, involves basic part mass, density/mass of resource(s), volume and funny enough, sometimes surface area instead of volume.

    If this still holds true (and i assume this wasn't addressed by Squad since their first release), a separate plugin to tackle this would be welcome.

  6. 21 hours ago, JadeOfMaar said:

    @fatcargo The first and best thing to do is to manipulate these:

    
    // passive undeclared keys and values
    PART
    {
    	buoyancy = 1 // dimensionless (0 ~ 1). do not exceed 1
    	maxPressure = 4000 // in kPa
    }

    All parts have these values by default, and so, have maximum buoyancy (before what other calculations are applied like mass-volume ratio? which cause some parts to still sink in spite of this or still float when they should sink). Angel-125 has a solution for buoyancy and pressure limits already in his Buffalo/Guppy rover.

    Thanks for the link, but beyond adding own modules to add ballast management and defining buoyancy for its own parts, it really does not address the issue en masse. There is still no clearly defined method to derive required parameters from part itself. The  forum post i linked to does discuss about this, alas without definitive solution. Hence my post here. I'm hoping not to have hijacked (too much) of this thread to discuss this.

  7. How is buoyancy affected by this ? Is it even considered as a sideffect of calculations ?

    I'm not mentioning it in objective headspace since i have waited long for someone to solve this problem. There was an effort to fix it, but it required adding extra module/field in part cfg and manually tweak the value of each part. You can see this method got nowhere. I did try for several times to build a combination of quadcopter and a bathysphere that was winched up and down on a KAS cable. It worked to some depth (below cable limit) until the kraken, after which cable physics stopped working. The bathysphere had a small module {} added to a cockpit part to artifically add/remove mass. It looked as if when buoyancy forces were excessively different among parts on bathysphere, hell broke loose (only a modified cockpit had its mass changed, rest of part were untouched).

  8. To add my two cents, the visual damage can be done with code adapted from conformal decals mod . This way all impact can accumulate on surface and fit more or less nicely with surface. Oh and also this can add challenge to solar powered rovers on celestial bodies with dusty atmosphere (Opportunity rover survival challenge).

    As for impacts in interplanetary space, it can be expected to take craft cross-section area into probability calculation, but not all impact vectors point in direction of travel. There can always be impact from any direction and i don't know of any analysis / scientific paper describing distribution of matter in our solar system that can be used as starting point to make those calculations.

    I can only tell that the angle difference between impact vector and direction of travel does decrease as craft travels through space if its speed is approaching the average speed of particles defined for that particular volume of space.

    For example, in case of planetary rings, you can be fairly sure that particles travel in single plane and in same direction as it parent body rotation (i did say "fairly sure" since i'm not an astronomer). If you travel through them above their average speed, they will strike the craft "on the front".

  9. On 8/11/2020 at 12:30 AM, Aniruddh said:

    EDIT: Problem with if statement solved.

    Also for those who were asking for beamed power propulsion, I've figured out ModuleEngines, so the next release will also have an optional photon sail and thermal rocket part module. I initially though I wouldn't do this, but I'm bored in partial lockdown, so might as well, it'll be a fun addition to this project.

    Uh-oh ! I completely forgot about "beam propulsion" - it is direction-dependant ! You could imagine it as trying to raise orbit using only ion engine. You need to fire the engine at the single point in orbit to get what is needed. This one will be tricky. Imagine using sail-like propulsion to drive TOWARD source of beam, that is contradiction.

  10. I agree with @linuxgurugamer, this plugin can be a PartModule that saves the list of all  connected transmitters or receivers (with respect to its receive/transmit type). One transmitter can have list of multiple receivers and a one receiver can only have one transmitter (unless some kind of list for fallback transmitters is added to compensate for loss of power due to lost line of sight, power failure  or other disabling conditions). All save/load happens on OnLoad and OnSave which write into Persistent.sfs file that holds all save game config data.

  11. 1 hour ago, Aniruddh said:

    For the first point, either you are talking about photon sails or beamed power thermal rockets, both of which are in KSPIE and work well, the latter of which I will add to the mod as well in the plugin. The propulsion concept that uses ablation for thrust is a good idea I'm thinking of implementing, although it won't be particularly good gameplay wise (you'd need a lot of power beamed and converted to heat to make this worthwhile, may even be impractical, will do some further research into this).

    Irradiated ablative receiver propulsor (you are free to use the name ;) ) is like a normal receiver that also expends ablator resource. The thrust for it can be somewhere between chemical rockets and ion engines (very wide range, i can't pinpoint it) but in game it should provide uniquely difficult use case -  a orbital probe could carry only this part with mass of ablator resource and remotely receive energy (no need for heavy power generator) required to vaporize it, but since energy received can drop off drastically with distance, it may need a dedicated beam transmitter with a lot of power output.

  12. @Aniruddh one more idea about warp drive detection : you could list all parts in transmitter/receiver vessel for any warp drive part modules, check their fields and then let beam power mod decide.

     

    Now, this can easily blow up into a large list and make this mod unusable, but there may be a way to do it, at least gradually.

    You could add a list in config file describing quadruplet of module name, ksp field, value and action to be taken.

    Small fake example config :
     

    MODULE
    
    {
    
      name = WirelessSource //same for WirelessReceiverDirectional
    
      CONDITION
    
      {
    
        name = WarpDrive
    
        field = DriveState
    
        value=Engaged
    
        action = Disable
    
      }
    
      CONDITION
    
      { ...}
    
    }

    Each "CONDITION" node tells the plugin when and how to work.

    You can see how to access KSPField in other mods like Action Groups Extended, Kerbal Operating System and Mod Actions (this last one may be most relevant).

    Note that this node list can be used for anyhing else as well, not just warp drive mods.

     

  13. 1 minute ago, Aniruddh said:

    Oh, I misunderstood, I though you were asking for it to check when a warp-drive module is engaged, and then turn off the receiver/transmitter when that occurs. Turns out you just want it to check whether the vessel has exceeded speed c. The latter is much easier to implement!

    For jump-gates, according to your description, the same method can be used as the one for warp-drives, or it can check for a scene switch. I'll definitely be implementing the warp-drives part, but it may take a while longer to implement as satisfactory version that works for jump-gates.

    The speed detection could be a problem : crafts using warp drive mods to simulate speed above c may not actually move crafts at speed c :) For example alcubierre drive mod just make it easier to transfer craft in space, does not need c to do it. What can be done is to detect speed that is above limit and then take action. This limit can be written into mod config so it can be tweaked to something realistic/working.
     

    This also raises another interesting question : if there is a speed limit between transmitter and receiver, there may be situations where transfer breaks just because crafts with this mod parts orbit planets with large speed difference :) So do account for this too. Especially since there are mods that add alternative solar systems that can have planets with quite large speed differences. And please don't consider anything beyond this, at least at this stage, or mod development will get really complicated.

  14. 11 minutes ago, Aniruddh said:

    For the first point, I like the suggestion. It would take a bit of time, as every warp drive mod has slightly different code. This isn't a priority, only once I get this mod out of alpha will I add that. Should I also add red-shift/blue-shift for vessels not using warp-drive but travelling near speed of light?

    For the second point, I have no clue what a "jump gate" is, I've studied a lot about Alcubierre warp-drives and how they could work, but I don't know the physics for that kind of thing. Is it like a wormhole in any way?

    For warp drive mods : they all have speed in common. There is no way around it. So you could simply test for speed and break power transfer if speed exceeds the limit, optionally could add redshift losses prior to breaking this connection.

    For jump gates : this is a bit more complicated, but i believe that they will generally cause vessel unload and a scene switch, maybe sudden relocation of active vessel so that can be accounted for as well.

  15. @Aniruddh if this is not too much to ask : there should be a feature to disable beamed power functionality in certain situations.
    Examples:

    1. Disable power transfer for crafts that are moving at great velocity using warp drive modded parts

    2. If there are dedicated transmitter/receiver pairs, and one of them is being instantly transferred via some kind of "jump gates" (like ESLD beacon mod)

    To elaborate it would be cheaty and could be explained in game to player as relativistic effects. I know these mods are sci-fi and are not much in same scope of realism as this mod, but please take this into consideration.

  16. (Ab)using Commnet to get occlusion data is a good choice :)

    KSPIE features a complex dependancy on power efficiency so take care how realistic you want your mod to be.

    Directionality is interesting feature, but if you can make it optional for short range transmission networks it would work great for small planetary bases.

    How close to KSPIE wavelength dependancy do you plan to make your mod ? If i may suggest, make beam wavelength dependant on emitter and receiver diameter only for simplicity.

    Please comment. It is better to resolve this as soon as possible.

     

    Ahh also since you published plugin source, please consider moving it to https://github.com/ site so you can recveive bug reports, and patches.

  17. For me, adding "VolumeConfigs.user" made it work, i guess in plugin code didn't account for starting from scratch. :)

    I like the UI, hints explain everything and yellow highlight helps keep track of what is edited.

    As for some of requests for alternate setups that match resource requirements for other mods - that may be partially solved by defining a tank setups by mod makers themselves.

    If some XYZ LS mod needs food/water/oxygen, than an appropriate preset should be made either by mod author OR a player that needs this. BUT there is a difference to normal presets - these "source presets" (or "base presets" ?) should  not be deletable or editable, should be defined as MM patches that are active only if such mod is present in GameData. These presets are only used to generate initial tank setups that can be later edited and saved by player under a different name.

  18. Hoooolly Kraken !!!

    MY TEST MODEL WORKED. It has a prefab built as "variant" from custom FBX imported model and a vanilla Diffuse shader with custom png texture.

    Next test is animation driving a custom shader (which is already proven to work since prefab holds a complete compiled shader, does not matter if it is built into KSP ).

    A noteworthy reminder : in my part config i set model with "mesh" value instead of MODEL{} node so model loading failed every time before i changed it to the above config style.

    One more thing : i've "discovered" BlendShapes. That thing is really something else. Pretty mych every inflatable part uses this method to show part inflating animation. I'll HAVE to try that next.

    Oh also i didn't have time to test the code, that's why this reply is soooo late. THANKS @xEvilReeperx , you pretty much wrote the entire plugin for me. This is something i don't see every day !

  19. Ok i think i've analyzed enough of the code to continue discussion.

    First off, i've got Textures Unlimited 1.5.8.23 from ShadowMage's github repo. Secondly, if there is a more appropriate thread to discuss this (so as to not unnecessarily divide/divert attention) do please point me to it.

    i've noticed that central part is in TexturesUnlimited-1.5.8.23\Plugin\SSTUTools\KSPShaderTools\Util\SMFBundleDefinitionReader.cs which contains attribute

    [DatabaseLoaderAttrib((new string[] { "smf" }))]

    Is "smf" an extension that will trigger this plugin to load it ? I'm not familiar with this attribute.

    Next, further in source there is local var

    List<Material> adjustedMaterials = new List<Material>();

    which appears not to be used for anything. Materials get added to it and nothing else. And being local it is not usable by anything outside of setupModelTextures(). Maybe some kind of cache used in future ?

    Why is this asset loading method limited to single model only ? I ask because loading of multiple models from single assets file may have savings in reusing textures and shaders as well. I admit i don't have much expirience with assets beyond some (failed) experiments. Will look into this more.

    One more thing : in above mentioned forum discussion about assets and models you have used asset's XML file (ending in " _bundle.xml") which i think should be handled in TU plugin as it provides all resources listed by name and type (i personally like this and will use it when i try again to make my loader plugin). What does worry me is if i try to pack multiple files with same name (for example multiple models that use different textures in different directories but otherwise have same filename).

    And last : is there an example asset file that features a model, shader and texture ? I'd like to have a look at it.

×
×
  • Create New...