Jump to content

[1.3.0] Kerbalism v1.2.9


ShotgunNinja

Recommended Posts

@ShotgunNinja Noticed the warning for EC at high time warp the first time today and didn't expect the requirement was so high. I'm curious why netting EC input and output first and then applying the difference to the stored charge is not an option. I'm not really familiar with how the Kerbal handles resources so I might just have a too simplistic view of the problem.

Link to comment
Share on other sites

@leomike The capacity requirement surprised me too, the reason for such high values is the number of seconds that there are in a simulation step at max timewarp (2400 seconds per-step).

Actually the solution you propose is still on the table and probably I'll end up implementing it.  My concerns with it are these: [1] resource requirements of various modules are checked against the amount in the previous simulation step (not a big problem, but may have subtle consequences), [2] need to unify all background consumption/production in a single place (working on it) and [3] the problem will still be present for stock modules in loaded vessels (as I have no control on them). From the positive side, it also has the additional advantage of making the background simulation slightly faster (as background resource consumption/production involve working directly on the serialized structure of the game, and doing it once will be faster than doing it multiple times).

Link to comment
Share on other sites

5 minutes ago, ShotgunNinja said:

@leomike The capacity requirement surprised me too, the reason for such high values is the number of seconds that there are in a simulation step at max timewarp (2400 seconds per-step).

Actually the solution you propose is still on the table and probably I'll end up implementing it.  My concerns with it are these: [1] resource requirements of various modules are checked against the amount in the previous simulation step (not a big problem, but may have subtle consequences), [2] need to unify all background consumption/production in a single place (working on it) and [3] the problem will still be present for stock modules in loaded vessels (as I have no control on them). From the positive side, it also has the additional advantage of making the background simulation slightly faster (as background resource consumption/production involve working directly on the serialized structure of the game, and doing it once will be faster than doing it multiple times).

That's great. I did think about the fact active vessel would be treated differently given KSP "proper" would be simulating those, probably not much that can be done about that.

On a similar note, does the degeneration countdown start after the step in which resources were depleted or during the step. For example if the time steps are 2,400 seconds each and I have 1 oxygen left at the beginning of the step, will my Kerbal be dead when the step (~4s of oxygen supply + 480s for the degeneration < 2,400s) end or will I get the warning/de-warp and have 8 minutes from that point to correct this?

 

Link to comment
Share on other sites

@leomike That's a good point. The accumulator start filling as soon as the resource is exhausted. At max timewarp, this mean that it will get filled immediately in a single step. Even at 10,000x warp speed, 4 of the 6 minutes will be filled immediately. Didn't think about this. The threshold warning+stopwarp was meant to avoid these kind of issues at high timewarps, but consider that only stopping timewarp from max to 1x will take a long time (maybe 1 hour in-game, or something like that), and I'm doing it the fastest way possible. Doing it any faster will cause weird issues with orbits changing (this is also the reason the stock game 'blend' between timewarp speeds). In general, time is moving too fast relative to the small amount of time you have until oxygen deprivation kill the kerbal. The only thing standing between instant death for suffocation at high timewarps is the resource depletion warning+stopwarp, that's why this problem wasn't noticed until now.

Link to comment
Share on other sites

9 hours ago, ShotgunNinja said:

@nosscire The sun visibility problem was fixed already: I'm doing a poor man integration of sun visibility over the whole orbit, if there are not enough samples per-orbit (meaning at high timewarp speed).

The inconsistency that's left (and that you get the little warning in the planner) is unrelated to sun visibility, but only to capacity. Most users can just ignore it, as you have noticed it has little to no practical effects. Anyway, in a few versions I'm going to refactor the background resource consumption once more to minimize this problem further (to the point that basic EC capacity will be enough to hide that warning).

I think you may have miss-understood me. When I said that "in practice a couple of hundred EC is enough" I meant that for when I have the ship active.

When in the background, I keep getting warnings about EC usage all the time, which stops timewarp. I'm using Kerbal Construction Time, which means that I frequently warp 10-15 days at a time.

If the probes in this case are active, they never drop below 40% or so, but when simulated in the background they go completely empty during max time warp. It doesn't happen all the time, but any probe I have in orbit will generally throw a warning every few kerbal days or so at max timewarp.

This means that I essentially have to turn of EC warning on all my probes. Not a big deal really, as I know they will be fine, but quite annoying.

Can't say that I understand what the issue is if you have already fixed the sun visibility issue, but I trust that you know what you are doing, and will come up with the best solution. Just thought that if you can't fix it, just ignoring EC consumption on "perpetual" ships might be an option at max timewarp :)

Link to comment
Share on other sites

ShotgunNinja, today I took the plunge. I am switching from TAC-LS to the pure Kerbalism experience. You put way too much time, energy, and effort into this for me not to give it a go. Again, thank you. Looking forward to many tear-drenched funeral processions from all of my radiated, asphyxiated, starved, and bored test subjects...er, pilots. :)

Link to comment
Share on other sites

2 hours ago, nosscire said:

Can't say that I understand what the issue is if you have already fixed the sun visibility issue, but I trust that you know what you are doing, and will come up with the best solution. Just thought that if you can't fix it, just ignoring EC consumption on "perpetual" ships might be an option at max timewarp :)

This seems wise and "Big O" friendly.. what sayest you @ShotgunNinja ?

Link to comment
Share on other sites

Way to go SN! Thanks for doing that. Having the two other profiles identify themselves has been really useful. At least to me anyway. I can now consolidate all my general purpose patches and put them into a singular file. Works well with my cloned parts to. In fact, I'm almost ready to release my Planetary Base Systems config just for the realism profile (Should anyone want it). Just a few more tweaks, some guesswork, and testing and I'll be good to go. However, it leads me to ask a few questions for clarity sake.

First off, after seeing the outrageous suggested EC requirements for high warp in the planner, can anyone tell me 'exactly' what high warp is? For the most part, either myself or some other mod like Mechjeb or Kerbal Construction Time usually warps the highest time in the range of x1000 or x10000. The only other one is x100000. So whats low (safe) warp?

This question is simple SN: Are you SURE the scrubbers are working correctly within the background processing? I'm not too concerned about this cuz I might just be confused, but it reminds me of how Persistent Rotation behaved with Kerbalism. When in a vessel everything appears to work just fine with an empty oxygen tank slowly increasing the oxygen resource. But drop into the space center and time warp a day, and that empty tank is either empty, or the numbers of oxygen haven't increased at all. I'll try and explain this better at a later time.

This should be easy to: Does doing something like this actually work?

        !MODULE[Scrubber]{}
        MODULE
        {
            name = Scrubber

            resource_name = Oxygen
            waste_name = CarbonDioxide
            ec_rate = 0.08
            co2_rate = 0.53
        }

Well, I'd guess it does, but according to the VAB calculations I've been getting some really wonky results. For example, having two kerbals onboard the vessel pretty much shows me what I expect in the VAB (Hitchhiker part + KPBS airfilter + Full CarbonDioxide tank). But drop in a third kerbal and the values suddenly jump to something strange. Also, are multiple scrubbers on the same ship cumulative? The main reason I'm asking this is I'm attempting to make an industrial sized scrubber/airfilter for KPBS. It needs to be WAY stronger then the standard command pod scrubbers. It should 'almost' support a crew of 4-6 with very little oxygen loss.

Based on the example above, the kerbals should be swimming in oxygen. But the VAB says otherwise... The only way I can show this is with some screen shots. Hopefully, you got my most recent PM.

Thanks,

BTW - It looks like the 'BackgroundProcessing' mod might be getting some life back. Do you think that mod would also suffer from high warp EC inconsistency? Just curious.

Link to comment
Share on other sites

First off, this is a fantastic mod! Well done!

Second, is this compatible with 6.4x kerbin mod (Will all of its features work within an install using 6.4x kerbin or even RSS)? I would really like to keep both of these mods installed together!

Link to comment
Share on other sites

@DarkonZ The scrubber work, at least as far as I can tell. Every kerbal produce waste resources, in this case CarbonDioxyde. Then all eventual scrubbers in the vessel are going to pick it up and convert a portion of it back into Oxygen. So you can create a bigger scrubber like in your example, that just have a bigger co2_rate. The rate of co2->oxygen will be related to scrubber efficiency tech. You can post screenshots here, no problem. Maybe you found a bug.

Background processing will have the same inconsistency at high timewarp speed (also stock game has it, for the loaded vessels).

 

@TeeGee Yes, absolutely. This mod is agnostic about the solar system features: antenna ranges will scale appropriately, and magnetosphere details are generated from celestial body parameters.

Link to comment
Share on other sites

In case anyone is wondering, I just tested version 1.0.2 on KSP 1.1.3 pre-release and the Kerbalism interface doesn't show up. Wasn't able to try launching a vessel and see if life support worked because of issue with other mods. Guess I'll just wait for now and see, not really unexpected that there would be issues like this.

Edit: I'm able to compile by changing "UI_SCALE_APPS" to "UI_SCALE" (in Launcher.cs). Interface shows up in the KSC, but nothing else seems to work. I think this is outside my current abilities with C# and Kerbal modding.

Edited by leomike
Link to comment
Share on other sites

@ShotgunNinja, I've noticed some "hiccups" on gameplay and I wonder if they may be caused by Kerbalism... They are not long (just a fraction of a second) but happen about every one or two seconds...

They don't seem to be due to graphics overload, because the counter is green flashing yellow regularly and when the hiccup hits, KER figures (AP, PE, distance to target, etc.) freeze for a brief moment (that fraction of a second I mentioned before)...

If Kerbalism is already optimized, what other setting (like physics) I could change? Can you help me?

Link to comment
Share on other sites

I'm still playing with this mod, and still loving it!

 

Sorry if this question has been asked before, but I'm curious... will there be a way to make oxygen, with a greenhouse or similar, instead of just needing huge numbers of little tanks? That's the one thing that can be a bit difficult.

Link to comment
Share on other sites

Can anyone give me a quick run down on how exactly the antenna's work? I've been really enjoying the mod but have been having problems losing control of ships that I sent off to say Eve or Duna.

I've unlocked the third tier antenna that says it can reach the nearest planet in its part description, but the satellites always loose signal roughly halfway between Duna/Kerbin and I zing right past my maneuver node. Is there is a way to view or actually see what your antenna range is?

Link to comment
Share on other sites

3 hours ago, leomike said:

@Tokamak You can see my previous post, I posted a code that will allow you to generate oxygen from ore in the ISRU (similar to how we can generate oxidizer). This should support any mod that adds an ISRU as well (eg: KPBS).

Awesome, thanks. :) I was curious to know if there was a plan to support it by default, but that is still quite useful. 

Link to comment
Share on other sites

@ShotgunNinja I have two request if you think could be added:

1) Keep the the vessel monitor open while overing the mouse inside its own windows wihtout the need to pin it by clicking on the icon in the applist

2) Lock input inside UI windows , ie when scrolling the details of a vessel the scroll also zoom the view

Thanks

Edited by brusura
Link to comment
Share on other sites

@ShotgunNinja With 400 hours clocked up playing Kerbalisim I have a few thoughts to share.

When you've got multiple kerbals on a ship and multiple ships in the system during high time warp the warning messages can sometimes stack up very quickly from the point the first time warp stop is triggered to reaching 1x it's then quite tedious to wait for each message to pop up one by one to see what problems we've got. So we get the first ec warning then a freezing to death for each kerbal (sometimes that's 20 plus messages) these are mixed in with warnings fro other ships and once the warning is gone it's gone. So i propose a 'log window' that lists warnings and events. I think this would improve the game play experience.

As others have pointed out, we have a way of growing our own food but not creating oxygen. Would you be able to include an MM patch to add Oxygen generation?

I use EPL for building ships and bases and currently there is no way of launching a ship with shielding because we have no way of creating/storing the resource. Would you be interested in including an MM patch that would duplicate the ore holding tanks into shielding holding tanks and give the IRSU's the ability to generate and store shielding when EPL is installed? 

@brusura's ideas about the UI windows are great. I'd love to see this happen.

 

 

Link to comment
Share on other sites

@ShotgunNinja I've created an MM patch that add's the ability create and store shielding when EPL is installed. 

Spoiler

 

// ============================================================================
// Add shilding generation to IRSU & add holding tanks
// ============================================================================

// Add shilding conversion module
@PART[*]:HAS[@MODULE[ModuleResourceConverter]]:FOR[Launchpad]:NEEDS[Kerbalism]
{    
    MODULE
    {
         name = ModuleResourceConverter
         ConverterName = Shielding
         StartActionName = Start ISRU [Shielding]
         StopActionName = Stop ISRU [Shielding]
        AutoShutdown = true
        TemperatureModifier
        {
            key = 0 100000
            key = 750 50000
            key = 1000 10000
            key = 1250 500    
            key = 2000 50    
            key = 4000 0
        }                
        GeneratesHeat = true
        DefaultShutoffTemp = .8
        ThermalEfficiency 
        {
            key = 0 0 0 0
            key = 500 0.1 0 0
            key = 1000 1.0 0 0
            key = 1250 0.1 0 0
            key = 3000 0 0 0 
        }

        UseSpecialistBonus = true
        SpecialistEfficiencyFactor = 0.2
        SpecialistBonusBase = 0.05
        Specialty = Engineer
        EfficiencyBonus = 1

         
         INPUT_RESOURCE
         {
            ResourceName = Ore
            Ratio = 1
         }
         INPUT_RESOURCE
         {
            ResourceName = ElectricCharge
            Ratio = 30
         }
         OUTPUT_RESOURCE
         {
            ResourceName = Shielding
            Ratio = 0.001
            DumpExcess = false
         }
    }
}
// Add large tank
+PART[LargeTank]:FOR[Launchpad]:NEEDS[Kerbalism]
{
    // You must rename the new part
    @name = LargeTankshielding
    @title = Large Shielding Holding Tank
    
    // Delete the Ore resource
    !RESOURCE[Ore]{}
    
    // Add your new resources here
    RESOURCE // add a new resource to this part
    {
     name = Shielding
     amount = 0
     maxAmount = 50
    }
}
// Add small tank
+PART[SmallTank]:FOR[Launchpad]:NEEDS[Kerbalism]
{
    // You must rename the new part
    @name = SmallTankshielding
    @title = Small Shielding Holding Tank
    
    // Delete the Ore resource
    !RESOURCE[Ore]{}
    
    // Add your new resources here
    RESOURCE // add a new resource to this part
    {
     name = Shielding
     amount = 0
     maxAmount = 10
    }
}

 

 

Link to comment
Share on other sites

@chickenplucker You can right click an antenna to see it's range, as far as I know Kerbin has infinite range so you just need to make sure your probe has enough range to call home. You problem might just be that you are passing behind the planet when getting captured, which would block the signal.

@dboi88 I'd update the top section of your code to this:

@PART[*]:HAS[@MODULE[ModuleResourceConverter]]:NEEDS[Kerbalism]
{    
    +MODULE[ModuleResourceConverter]:HAS[#ConverterName[MonoPropellant]] {
		@ConverterName = Shielding
		@StartActionName = Start ISRU [Shielding]
		@StopActionName = Stop ISRU [Shielding]
		@OUTPUT_RESOURCE:HAS[#ResourceName[MonoPropellant]] {
			@ResourceName = Shielding
			@Ratio *= 0.001
		}
	}
}

This allows for production to be scaled based on each ISRU's production rate (the large ISRU will have the same rate as your configuration) and ensure all other attributes are kept consistent. Also the FOR attribute should be avoided as it will make other mods think Launchpad (extraplanetary launchpad?) is installed even if it is not, if one patch that has FOR[ModName] is executed, all NEEDS[ModName] will then be executed.

@dboi88 @ShotgunNinja I like the idea of a log, maybe the easiest implementation would be to have three modes for messages. Disabled, pop-up and stock notification. Probably isn't too hard to implement given Kerbalism already uses stock notifications for certain things.

Link to comment
Share on other sites

15 minutes ago, leomike said:

 

@dboi88 I'd update the top section of your code to this:


@PART[*]:HAS[@MODULE[ModuleResourceConverter]]:NEEDS[Kerbalism]
{    
    +MODULE[ModuleResourceConverter]:HAS[#ConverterName[MonoPropellant]] {
		@ConverterName = Shielding
		@StartActionName = Start ISRU [Shielding]
		@StopActionName = Stop ISRU [Shielding]
		@OUTPUT_RESOURCE:HAS[#ResourceName[MonoPropellant]] {
			@ResourceName = Shielding
			@Ratio *= 0.001
		}
	}
}

This allows for production to be scaled based on each ISRU's production rate (the large ISRU will have the same rate as your configuration) and ensure all other attributes are kept consistent. Also the FOR attribute should be avoided as it will make other mods think Launchpad (extraplanetary launchpad?) is installed even if it is not, if one patch that has FOR[ModName] is executed, all NEEDS[ModName] will then be executed.

Cheers, that's a much more elegant solution, I have loads of patches i could improve with this method.

Link to comment
Share on other sites

12 hours ago, dboi88 said:

I use EPL for building ships and bases and currently there is no way of launching a ship with shielding because we have no way of creating/storing the resource. Would you be interested in including an MM patch that would duplicate the ore holding tanks into shielding holding tanks and give the IRSU's the ability to generate and store shielding when EPL is installed? 

EPL has a recipe system where you assign specific resources for building specifing things. For example to make heatshields with full ablator EPL uses this recipe:

Spoiler

 


EL_ResourceRecipe
{
    name = Ablator
    Resources
    {
        RocketParts = 1
    }
}

You can duplicate the recipe and change the Ablator to Shielding.

 

More things, you can force EPL to require special resources if a part has a specific module:


EL_ModuleRecipe {
	name = ModuleScienceExperiment
	Resources {
	RocketParts = 0.7
	RareMetals = 0.2
	ExoticMinerals = 0.1
	}
}

 

 

 

@ShotgunNinja  I made a compatibility patch which makes the Shielding resource buildable by the ExtraPlanetaryLaunchpads mod.

EL_ResourceRecipe
{
    name = Shielding
    Resources
    {
        RocketParts = 400
    }
}


@EL_ResourceRecipe[Shielding]:NEEDS[Kolonization] {
	-Resources {}
	Resources {
		MaterialKits = 800
	}
}

 

Edited by Enceos
Link to comment
Share on other sites

Is the realism profile designed to work on already made saves? I made a save using default profile and then switched to realism, which gave me a bunch of problems. The monitor window didn't work, the game crashed twice and I couldn't click anything in the tracking station. Also, I tried to send you the save an log, but I don't know how to attach things to the mail function. Also, I have an idea for radiation: If you are in the atmosphere, your radiation slowly decreases. I installed Planetary Base System, and the radiation consistently increases even when I'm in Kerbin-like atmosphere (Laythe.) And is there a possible way to make the 'quality of life' feature perpetual? I've tried all sorts of gravity rings and huge pods, but it doesn't seem to do much

Edited by BashGordon33
Link to comment
Share on other sites

3 hours ago, BashGordon33 said:

And is there a possible way to make the 'quality of life' feature perpetual? I've tried all sorts of gravity rings and huge pods, but it doesn't seem to do much

Right now other than disable the rule, there is no way to make QoL perpetual. You can remove the rule from the profile file though or increase entertainment values to make it near-perpetual.

 

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...