Jump to content

[0.23]asmi's ECLSS Mod (current version - 1.0.15) - Life Support Mod


asmi

Recommended Posts

Thank you for your help!

It looks like the problem is with the way RSS "fixes" solar panels, which Nathan has promised to fix in the next release. Please try the following:

1. Back up file RealSolarSystemSettings.cfg, copy section "powerCurve" somewhere, then delete it from the file and save it.

2. Go into folder Squad\Parts\Electrical\solarPanels5, open part.cfg there (make a backup!), look for powerCurve section and replace it with whatever is in abovementioned config file.

Make sure you put your backups outside your KSP directory to prevent loading up two configs for the same part, which can lead to conflicts.

Load KSP and check if issue still persists.

Sorry for the delay. Replacing the power curve with that of the stock part you listed leads to the satellite not being able to generate any power at all, or at least not fast enough to replace what it uses, even when I'm controlling it. Is your theory it's somehow reverting to this mode when the vessel isn't active?

Link to comment
Share on other sites

Thank you for your help!

It looks like the problem is with the way RSS "fixes" solar panels, which Nathan has promised to fix in the next release. Please try the following:

1. Back up file RealSolarSystemSettings.cfg, copy section "powerCurve" somewhere, then delete it from the file and save it.

2. Go into folder Squad\Parts\Electrical\solarPanels5, open part.cfg there (make a backup!), look for powerCurve section and replace it with whatever is in abovementioned config file.

Make sure you put your backups outside your KSP directory to prevent loading up two configs for the same part, which can lead to conflicts.

Load KSP and check if issue still persists.

Sorry for the delay. Replacing the power curve with that of the stock part you listed leads to the satellite not being able to generate any power at all, or at least not fast enough to replace what it uses, even when I'm controlling it. Is your theory it's somehow reverting to this mode when the vessel isn't active?

No, he said to replace what was IN the stock file. Not to use it in place of RSS power curve.

It's no wonder at all that you wouldn't get very much power. Look at the numbers in the power curve. The first one is distance. The second is a multiplier for ElectricalCharge produced. What you just did means you're using stock values while playing RSS. That means that in Kerbin orbit you're only getting the amount of sunlight you'd get if you were over stock Jool.

btw, actually editing part.cfg files isn't a real great idea.

May I instead suggest the following.

Below are the contents for two cfg files. ONLY USE ONE.. Make a cfg file and copy/paste one of the following sets of code into it and save that file. It can go anywhere in GameData folder

The first one assumes you are using the latest unmodified RealSolarSystemSettings.cfg

Not just the latest version, the latest one. If the first key in powerCurve says something like key = 0E0 238 then you have the latest. If it only says key = 0 238 then re-download.

Edit: In fact, the way I wrote out #2 it should actually work regardless of whether your RealSolarSystemSettings.cfg has had its powerCurve deleted. I also tried to bulletproof it a little more than my original version. Also the original only looked for solar panels that actually output ElectricCharge. These versions don't care about that. In fact just go with code #2 for now.

RSS.Solar.Fix.1.cfg


@PART[*]:HAS[@MODULE[ModuleDeployableSolarPanel]]:Final
{
@MODULE[ModuleDeployableSolarPanel]
{
!powerCurve{}
}
}

If powerCurve is deleted from RealSolarSystemSettings.cfg use this:

RSS.Solar.Fix.2.cfg


@PART[*]:HAS[@MODULE[ModuleDeployableSolarPanel]]:Final
{
@MODULE[ModuleDeployableSolarPanel]
{
!powerCurve{}
!powerCurve{}
powerCurve
{
key = 0E0 223.8 0 0//0 -0.5
key = 5.79091E10 6.6736 0 0//-0.5 -0.5
key = 1.08208E11 1.9113 0 0//-0.5 -0.5
key = 1.49598261E11 1.0 0 0//-0.1 -0.1
key = 2.279391E11 0.431 0 0//-.03 -.03
key = 7.785472E11 0.037 0 0//-.01 -.001
key = 5.874E12 0 0 0//-0.001 0
}
}
}

Edited by Starwaster
Link to comment
Share on other sites

Models are very nice, but there definitly shoudl be smaller version of them too!

Really. Make smaller versions.

Short ballistic flights above Kerbin atmosphere dont need such large tanks at all.

Link to comment
Share on other sites

No, he said to replace what was IN the stock file. Not to use it in place of RSS power curve.

It's no wonder at all that you wouldn't get very much power. Look at the numbers in the power curve. The first one is distance. The second is a multiplier for ElectricalCharge produced. What you just did means you're using stock values while playing RSS. That means that in Kerbin orbit you're only getting the amount of sunlight you'd get if you were over stock Jool.

btw, actually editing part.cfg files isn't a real great idea.

Sorry for the misunderstanding, and thanks for the help. I created the second config file and the recharging is working no problem.

Link to comment
Share on other sites

Sorry for the misunderstanding, and thanks for the help. I created the second config file and the recharging is working no problem.

Glad to hear it.

What that file is doing in there btw is deleting up to two powerCurves in every part that uses the solar panel module. Then re-inserts the one that RSS uses.

The cause of the problem btw is that there end up being two powerCurves in the solar panels. One was supposed to be deleted by the RSS mod (in code) but apparently isn't.... the other is inserted by RSS to replace the first. I'm not sure if the solar panel code is using the wrong one or maybe actually merging them (not literally, probably using both for lookups)

So what I did there, it's basically a brute force approach because I'm not 100% sure which node would get deleted. on the RSS forum, it seems it doesn't work for everyone so this version deletes up to two nodes and then inserts another one with the values it needs to work in RSS. Also, unlike the earlier version I did, it doesn't check to see if the panel is producing ElectricCharge on the chance that there's panels using a differently named resource (interstellar mod maybe? I dunno, users of that mod apparently were getting different results from my fix attempts)

Link to comment
Share on other sites

Glad to hear it.

What that file is doing in there btw is deleting up to two powerCurves in every part that uses the solar panel module. Then re-inserts the one that RSS uses.

The cause of the problem btw is that there end up being two powerCurves in the solar panels. One was supposed to be deleted by the RSS mod (in code) but apparently isn't.... the other is inserted by RSS to replace the first. I'm not sure if the solar panel code is using the wrong one or maybe actually merging them (not literally, probably using both for lookups)

So what I did there, it's basically a brute force approach because I'm not 100% sure which node would get deleted. on the RSS forum, it seems it doesn't work for everyone so this version deletes up to two nodes and then inserts another one with the values it needs to work in RSS. Also, unlike the earlier version I did, it doesn't check to see if the panel is producing ElectricCharge on the chance that there's panels using a differently named resource (interstellar mod maybe? I dunno, users of that mod apparently were getting different results from my fix attempts)

So should I worry about it causing more problems? I am using interstellar, but my career is pretty much at 1950's level tech right now so I won't be using its stuff for a while. It's ok to leave your config in until RSS or Realism Overhaul gets updated?

Link to comment
Share on other sites

So should I worry about it causing more problems? I am using interstellar, but my career is pretty much at 1950's level tech right now so I won't be using its stuff for a while. It's ok to leave your config in until RSS or Realism Overhaul gets updated?

It should be ok, yeah.

Link to comment
Share on other sites

So should I worry about it causing more problems? I am using interstellar, but my career is pretty much at 1950's level tech right now so I won't be using its stuff for a while. It's ok to leave your config in until RSS or Realism Overhaul gets updated?

If you update to the latest version of Interstellar, it shouldn't matter what the config definitions are. Interstellar will write a custom float curve to the solar panels to produce proper inverse square behaviour, it also scales the value based on Kerbin's orbital radius for compatibility with RSS.

Link to comment
Share on other sites

Has anyone had a chance to think about Post #294?

I have re-checked and all seems to point to lifesupport doing 'something' with craft that have no lifesupport mods or kerbals or such...

Thanks.

Yes, I've looked at the code and it's definitely going over all the active and inactive vessels in every single frame. I'm not 100% if this is what is causing performance issues, but I'm hoping to test soon.

I have an idea on how to improve this. Which would be a simple list of "vehicles that are on-rails and do not need to be updated as they do not have life support components", as soon as the code checks for an on-rails vessel and it finds out it has no kerbals, it can be put on that list. As soon as the vehicle is no longer on-rails it needs to be removed from the list as a Kerbal could board it. Should be pretty easy.

(Now just to find time to actually implement this, test it, and send out a patch)

Link to comment
Share on other sites

Yes, I've looked at the code and it's definitely going over all the active and inactive vessels in every single frame. I'm not 100% if this is what is causing performance issues, but I'm hoping to test soon.

I have an idea on how to improve this. Which would be a simple list of "vehicles that are on-rails and do not need to be updated as they do not have life support components", as soon as the code checks for an on-rails vessel and it finds out it has no kerbals, it can be put on that list. As soon as the vehicle is no longer on-rails it needs to be removed from the list as a Kerbal could board it. Should be pretty easy.

(Now just to find time to actually implement this, test it, and send out a patch)

It does go over all vessels, and it's done like that on purpose since it's more than just life support mod - it contain infrastructure for many other cool things - right now it tracks electricity in all vessels. I'm still working on optimizing it, hoping to get something release'able in coming few days.

Link to comment
Share on other sites

It does go over all vessels, and it's done like that on purpose since it's more than just life support mod - it contain infrastructure for many other cool things - right now it tracks electricity in all vessels. I'm still working on optimizing it, hoping to get something release'able in coming few days.

Are you doing every vehicle on every update?

An alternative would be to only do one vehicle per update. Each update advance to the next vehicle.

Besides spreading the list out over multiple updates you could even do a vehicle every X update. ( where X = 1 out of the number of updates that occur over some TBD period of time)

Link to comment
Share on other sites

Are you doing every vehicle on every update?

An alternative would be to only do one vehicle per update. Each update advance to the next vehicle.

Besides spreading the list out over multiple updates you could even do a vehicle every X update. ( where X = 1 out of the number of updates that occur over some TBD period of time)

No, it goes over all of them every update, but each (inactive) vessel is being processed in the separate thread (up to amount of CPU cores in the system). As such the system works way better on quadcore and six-core CPUs than it is on dualcores.

Link to comment
Share on other sites

H'mmm, I am running on 6 core (12 if you count HT ), 64 GB ram and NVidia 690. So my system is not what I would consider 'slow'. However, with all of my sat's around different planets and moons, and only one flight that has a capsule with kerbals, I am getting low fps. When I disable this mod by removing .dll's, everything comes back to normal, full speed.

Is there anyway that we can turn off the 'check every sat' stuff and only worry about ones that have something to have 'lifesupport' on?

The current implementation is such that I either have to remove active sat's or this mod... And i don't want to do either...

Thanks for this great mod and all of the work that has gone into it.

Link to comment
Share on other sites

No, it goes over all of them every update, but each (inactive) vessel is being processed in the separate thread (up to amount of CPU cores in the system). As such the system works way better on quadcore and six-core CPUs than it is on dualcores.

Great, but the point isn't whether or not it's iterating over every vehicle in one update as efficiently as it could be.

The point is that you don't have to handle every vehicle in one update at all. And with people running into performance issues you should think about throttling things down. Not everyone has a six core or even a quad core.

It wouldn't hurt the mod to slow things down even if it meant that a given vehicle only got updated every five seconds.

Link to comment
Share on other sites

The point is that you don't have to handle every vehicle in one update at all. And with people running into performance issues you should think about throttling things down. Not everyone has a six core or even a quad core.

It wouldn't hurt the mod to slow things down even if it meant that a given vehicle only got updated every five seconds.

Actually I do have to and it will hunt. The reason is simple - time acceleration, which can turn 5 seconds into 500000 seconds.

That's why I'm working hard on optimizations, and there are still things that are done sub-optimally (specifically resource-related functions), so I'm doing my best to optimize it. Unfortunately I've got only so much spare time that I can dedicate to that task, so the work is progressing slower than I'd want it to...

Link to comment
Share on other sites

No problem. I will keep all of my separate (saves) so that i can test when you issue a new release. I really like this mod, it is the best lifesupport, imo.

Work progressing slower.... That is something that will never change.... At least that is the way it seems... Good luck... and like your sig... NEVER GIVE UP!

Link to comment
Share on other sites

Something like on rails craft update on a time interval while the active craft updates live might be quite significant for a lot of people. The rails interval would probably not even need to be that high for an improvement (fractions of a second even, though configurable up to a few seconds would allow people with potato chips for processors to limit impact). :)

Link to comment
Share on other sites

Actually I do have to and it will hunt. The reason is simple - time acceleration, which can turn 5 seconds into 500000 seconds.

That's why I'm working hard on optimizations, and there are still things that are done sub-optimally (specifically resource-related functions), so I'm doing my best to optimize it. Unfortunately I've got only so much spare time that I can dedicate to that task, so the work is progressing slower than I'd want it to...

Yeah, yuck. Dealing with time acceleration is gross. :P Good luck with work.

Link to comment
Share on other sites

Actually I do have to and it will hunt. The reason is simple - time acceleration, which can turn 5 seconds into 500000 seconds.

That's why I'm working hard on optimizations, and there are still things that are done sub-optimally (specifically resource-related functions), so I'm doing my best to optimize it. Unfortunately I've got only so much spare time that I can dedicate to that task, so the work is progressing slower than I'd want it to...

No you can always scale.

Link to comment
Share on other sites

Actually I do have to and it will hunt. The reason is simple - time acceleration, which can turn 5 seconds into 500000 seconds.

That's why I'm working hard on optimizations, and there are still things that are done sub-optimally (specifically resource-related functions), so I'm doing my best to optimize it. Unfortunately I've got only so much spare time that I can dedicate to that task, so the work is progressing slower than I'd want it to...

Update everything once you notice a change in time acceleration. Else update the active vessels and only 1 on-rails vehicle at a time? This might give a minor inaccuracies, but nothing world-shocking.

The reason why people (including me) are complaining, and giving suggestions here is simple. I have an 2.6GHz i5 with 8GB ram, which runs KSP quite nicely. But as soon as I add ECLSS I get slowdowns with only 2 satellites in orbit, and 1 vessel on the launchpad.

Link to comment
Share on other sites

I've been following this mod for a while and I would really like to see a change log on the first post. That way, I know what is changing from version to version. This is definitely the best LS available right now. IMO.

Link to comment
Share on other sites

I have an idea. Why not completely exclude vessels that do not have Kerbals on board? Right now, it seems that it's running even for debris pieces, unmanned satellites, etc. This clutters ECLSS GUI in the map view like you wouldn't believe, too. While the resource monitor certainly is nice, I can sacrifice it on unmanned probes for some performance.

Link to comment
Share on other sites

I have an idea. Why not completely exclude vessels that do not have Kerbals on board? Right now, it seems that it's running even for debris pieces, unmanned satellites, etc. This clutters ECLSS GUI in the map view like you wouldn't believe, too. While the resource monitor certainly is nice, I can sacrifice it on unmanned probes for some performance.

Agreed... Just craft that have and need 'lifesupport'...

Link to comment
Share on other sites

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