Jump to content

[1.12.x] SystemHeat - a replacement for the CoreHeat system (October 9)


Nertea

Recommended Posts

Hi Nertea,

I finally had some time to test SystemHeat. First of all, I think that this will work :D. I read one of your latest post regarding FFT, how SystemHeat is nice to work with, and I completely agree. Once you get the hang of SystemHeat, heat management will be a breeze. It was very intuitive, matching the required radiators to the heat sources, changing the loops and, managing multiple loops is all easy to do with the overlay and information.

I tested some stuff on the lauchpad, in space and on Eve in a clean KSP instal with no other mods. What I think/found that might help development:
- The balance of the drills, converters and nuke engine is fine as it is now
- The radiators feel a little bit off balance, the lower end one feel overly efficient and the larger ones less than expected. The following changes come to mind:
RP (small) 50 -> 50, feels fine, for use with the smaller drill and converter.
TCS (small) 50 -> 125, seems a bit low, now you would need a couple for a nuke or the larger drill/converter.
RP (edge) 150 -> 100, felt a bit too efficient for the size.
RP (large) 200 -> 125, felt a bit too efficient for the size, now you would need 4 for a nuke without being able to cool it as it balances out.
TCS (medium) 250 -> 400, felt a bit low. 
TCS (large) 1000 -> 1200, 3x TCS (medium).
- There is some wonkyness going on with the overlay system when just building stuff in the VAB. It gets messed up, is all over the place, blocks the vessel from view, sticks around until you exit the VAB. I made some screenshot of it happening, it does not go away when starting a new vessel without any relevant parts (see the vessel cost changing for the new vessels). I have not been able to reproduce it in anyway that would help you track it down. It just seems to occur during building. If I do manage then I will let you know.

Screenshots: https://www.dropbox.com/sh/qpyf7du9asvfjxw/AABrRFnj556VlVgoUZcEPxGia?dl=0

But overall, great work! 

Edited by 4nxs
Spelling
Link to comment
Share on other sites

10 hours ago, 4nxs said:

Hi Nertea,

I finally had some time to test SystemHeat. First of all, I think that this will work :D. I read one of your latest post regarding FFT, how SystemHeat is nice to work with, and I completely agree. Once you get the hang of SystemHeat, heat management will be a breeze. It was very intuitive, matching the required radiators to the heat sources, changing the loops and, managing multiple loops is all easy to do with the overlay and information.

I tested some stuff on the lauchpad, in space and on Eve in a clean KSP instal with no other mods. What I think/found that might help development:
- The balance of the drills, converters and nuke engine is fine as it is now
- The radiators feel a little bit off balance, the lower end one feel overly efficient and the larger ones less than expected. The following changes come to mind:
RP (small) 50 -> 50, feels fine, for use with the smaller drill and converter.
TCS (small) 50 -> 125, seems a bit low, now you would need a couple for a nuke or the larger drill/converter.
RP (edge) 150 -> 100, felt a bit too efficient for the size.
RP (large) 200 -> 125, felt a bit too efficient for the size, now you would need 4 for a nuke without being able to cool it as it balances out.
TCS (medium) 250 -> 400, felt a bit low. 
TCS (large) 1000 -> 1200, 3x TCS (medium).
- There is some wonkyness going on with the overlay system when just building stuff in the VAB. It gets messed up, is all over the place, blocks the vessel from view, sticks around until you exit the VAB. I made some screenshot of it happening, it does not go away when starting a new vessel without any relevant parts (see the vessel cost changing for the new vessels). I have not been able to reproduce it in anyway that would help you track it down. It just seems to occur during building. If I do manage then I will let you know.

Screenshots: https://www.dropbox.com/sh/qpyf7du9asvfjxw/AABrRFnj556VlVgoUZcEPxGia?dl=0

But overall, great work! 

Thanks, that's very useful feedback. I'm glad the overlay work paid off!

I do need to do a balance pass for sure - I'd like to normalize the heat rejection by radiator area for sure. I recently learned that the stock radiators are massively broken in terms of thermal ability for mass - that needs to be adjusted.

There are probably some edge cases to handle with the overlay, please let me know if you find anything definitive in terms of reproduction steps. 

Link to comment
Share on other sites

1 hour ago, Nertea said:

Thanks, that's very useful feedback. I'm glad the overlay work paid off!

I do need to do a balance pass for sure - I'd like to normalize the heat rejection by radiator area for sure. I recently learned that the stock radiators are massively broken in terms of thermal ability for mass - that needs to be adjusted.

There are probably some edge cases to handle with the overlay, please let me know if you find anything definitive in terms of reproduction steps. 

I think it has to do with reverting to the editor, I made a video, it's in the .zip. https://www.dropbox.com/sh/qpyf7du9asvfjxw/AABrRFnj556VlVgoUZcEPxGia?dl=0

Link to comment
Share on other sites

On 6/16/2020 at 4:00 PM, linuxgurugamer said:

@Nertea will this system deal with reentry heat and hestshields? 

Sorry if this was already addressed, hard to read a complete thread while reading on a phone while walking my dog

Not at all.

On 6/16/2020 at 11:31 AM, 4nxs said:

I think it has to do with reverting to the editor, I made a video, it's in the .zip. https://www.dropbox.com/sh/qpyf7du9asvfjxw/AABrRFnj556VlVgoUZcEPxGia?dl=0

Lots of work debugging for a one line fix. This is nearly ready, i just need to fix a couple more issues, will post when it's up.

Link to comment
Share on other sites

New alpha:

  • Heat loops now handle multiple producers on one part better
  • Overlay UI no longer has epilepsy when going into flight and back
  •  Heat loop simulation improved accuracy and performance
  • Rebalanced heat production
    • Radiator heat rejection is now proportional to their size and maximum temperature operation
    • This has reduced most stock radiator powers to < 1/4 of their previous ratings
    • ISRUs, drills have had their output reduced so that it is still possible to use stock radiators reasonably with them
  • Many, many, many minor bugfixes
Link to comment
Share on other sites

Looks promising.

How does it handle being near a star? Is the temperature radiators cool to still the ambient space temperature, or some blackbody equilibrium with the light?

And regarding refrigeration, I think it'd be neat to have compressors and expanders you can add to your lines (with some basic checking to make sure they're always paired up), maybe even as purely UI elements, so you can adequately cool parts on hot atmospheric planets. Not sure if that'd be too complex for people to handle though.

One other thing, do the radiators handle both convection and radiation flux? If not they should, since that can make a fair bit of difference on planets with thin atmospheres (or high up in atmospheres).

Link to comment
Share on other sites

4 hours ago, WarriorSabe said:

How does it handle being near a star? Is the temperature radiators cool to still the ambient space temperature, or some blackbody equilibrium with the light?

No effect currently, this would be difficult to compute, and I have my doubts about providing a system that deals with orientation-dependent heat in timewarp without the tools to do things like thermal rolls, consistent pointing, etc. 

4 hours ago, WarriorSabe said:

And regarding refrigeration, I think it'd be neat to have compressors and expanders you can add to your lines (with some basic checking to make sure they're always paired up), maybe even as purely UI elements, so you can adequately cool parts on hot atmospheric planets. Not sure if that'd be too complex for people to handle though.

I don't plan to support this initially, but the idea would be to provide a refrigerator part that adds thermal flux to the loop but lowers the nominal temperature by some amount.

4 hours ago, WarriorSabe said:

One other thing, do the radiators handle both convection and radiation flux? If not they should, since that can make a fair bit of difference on planets with thin atmospheres (or high up in atmospheres).

They do not.

Link to comment
Share on other sites

5 hours ago, Nertea said:

... be difficult to compute, and I have my doubts about providing a system that deals with orientation-dependent heat in timewarp ...

You could do it like Kerbalism handles stuff like solar panels - assume the orientation relative to the sun is frozen once you start timewarping and the vessel is just automatically orienting itself. And blackbody equilibrium temperature is actually a pretty simple thing to calculate, and probably not too computationally heavy either (especially since there's no real reason to figure it out every frame; you won't be moving around *that* fast)

 

5 hours ago, Nertea said:

... refrigerator part that adds thermal flux to the loop but lowers the nominal temperature ...

Hmm, I'm not sure if that'd actually be simpler for users than a simple step up paired with a step down (and presumably some power consumption and maybe inefficiency), and I can see some ways that might have unintended behavior, unless I'm misunderstanding what you're saying.

Edited by WarriorSabe
Link to comment
Share on other sites

On 6/23/2020 at 1:58 PM, WarriorSabe said:

You could do it like Kerbalism handles stuff like solar panels - assume the orientation relative to the sun is frozen once you start timewarping and the vessel is just automatically orienting itself. And blackbody equilibrium temperature is actually a pretty simple thing to calculate, and probably not too computationally heavy either (especially since there's no real reason to figure it out every frame; you won't be moving around *that* fast)

 

Maybe I'll be clearer: determining radiative capacity based on environmental fluxes is too complex for this mod. Fundamentally the goal is to provide a deterministic experience and not a thermodynamics simulation experience. Thermal equilibrium-based radiators would result in vastly different performance for radiators in low planetary orbits, near the sun and in shadow of planets, which is difficult to plan for without creating complex player-facing tools (I'm only one person). This doesn't even get to the questions of different radiative loading for different parts other than radiators, which will dominate the radiative loading in low orbit situations. 

My typical approach to this in my mods is to focus on the gameplay outcomes of a fairly simple system and slowly expand it as optional modules as needed. 

On 6/23/2020 at 1:58 PM, WarriorSabe said:

Hmm, I'm not sure if that'd actually be simpler for users than a simple step up paired with a step down (and presumably some power consumption and maybe inefficiency), and I can see some ways that might have unintended behavior, unless I'm misunderstanding what you're saying.

Well, consider the goal of this - I'm seeing it as a requirement to create a tool to reduce the nominal temperature of a loop below that contributed by the systems in a loop. I don't see any need to complicate that with needing multiple parts, pairs of them, etc. That immediately raises question of ordering in my mind, which as has been discussed previously in this thread is not somewhere I want to go. Maybe to be clearer, let's say that there is a part that reduces temperature of the loop. Operating it has consequences (needs power, generates heat). That seems to fit the requirements.

Link to comment
Share on other sites

9 hours ago, Nertea said:

Well, consider the goal of this - I'm seeing it as a requirement to create a tool to reduce the nominal temperature of a loop below that contributed by the systems in a loop. I don't see any need to complicate that with needing multiple parts, pairs of them, etc. That immediately raises question of ordering in my mind, which as has been discussed previously in this thread is not somewhere I want to go. Maybe to be clearer, let's say that there is a part that reduces temperature of the loop. Operating it has consequences (needs power, generates heat). That seems to fit the requirements.

How about if it were a setting that could be toggled on radiators that made them treat the loop temperature as some proportion higher for determining cooling rates at the cost of some power and efficiency loss? That'd be what you'd ultimately need the expansion/compression for - cooling below ambient temp, and making it a radiator setting is simple and doesn't require adding parts or directionality or anything, and I think would end up closer to the desired result.

Link to comment
Share on other sites

11 hours ago, WarriorSabe said:

How about if it were a setting that could be toggled on radiators that made them treat the loop temperature as some proportion higher for determining cooling rates at the cost of some power and efficiency loss? That'd be what you'd ultimately need the expansion/compression for - cooling below ambient temp, and making it a radiator setting is simple and doesn't require adding parts or directionality or anything, and I think would end up closer to the desired result.

I've stared at this a few times and I don't think this works with how the simulator is set up. 

Maybe the takeaway is that there will be some way to cool loops below ambient, but I haven't figured out the best way to do it yet. 

Link to comment
Share on other sites

New update on the master branch today. Note that this is still built for 1.9.

  • Engineer's report integration - there are now warnings and cautions when you have overheated parts in a loop or loops with positive net fluxes
  • VAB thermal simulation now resets to T0 when a part is attached
  • Fix radiator simulation in VAB - flight was fine but some things were weird
  • Various bugfixes related to radiators
  • Larger radiators now provide more volume to a loop than small radiators 
  • Heat Control radiators are set up as SystemHeat radiators when both are installed
  • Tuned some components of Overlay UI panels to look better 
  • Localization for SystemHeat radiator module UI components
  • Localization for some Overlay UI components
Edited by Nertea
Link to comment
Share on other sites

Looks fascinating, can’t wait to try it.

How compatible would this be with making stock inhabited parts require cooling, in simple proportion to number of seats? Could it be as simple as a custom patch adding a systemheat module?

Link to comment
Share on other sites

6 hours ago, fourfa said:

Looks fascinating, can’t wait to try it.

How compatible would this be with making stock inhabited parts require cooling, in simple proportion to number of seats? Could it be as simple as a custom patch adding a systemheat module?

Yes, but what is the consequence? That's the thing that requires work. 

Link to comment
Share on other sites

On 7/4/2020 at 7:34 AM, Nertea said:

Yes, but what is the consequence? That's the thing that requires work. 

Forcing complexity on stock-parts gameplay. So at a minimum, without radiators the inhabited parts get hot and have temp gauges show up. At the outside of the spectrum, eventual overheat and explosions. Good question, I hadn’t thought of it in those terms

Link to comment
Share on other sites

Yep, I understand why, but to implement the functionality we need to define what the consequences of heating up a crew cab is. 

Frustrating thing about stock is that parts have a > 1000K heat tolerance, so just exploding them when they reach a reasonable LS temperature (300 K?) would look odd. That functionality really needs to go with an LS mod, somehow, for example tie LS processors to temperature or something. 

Link to comment
Share on other sites

Doesn't even need to be tied to processors - the LS mod could just check the temperature directly. For example USI-LS has (or used to have, it's been ages since I last played with it) a big old status window where it tracked everything from supplies over homesickness to available living space. Cabin temperature would just be one more variable, and something that could probably even be made to dynamically detect whether SystemHeat is installed.

Still, all of this would be on the end of the life support mod, and not SystemHeat itself.

Link to comment
Share on other sites

On 7/6/2020 at 12:15 AM, Nertea said:

That functionality really needs to go with an LS mod, somehow, for example tie LS processors to temperature or something

Yep, and that LS mod is called Kerbalism. Which actually will probably become incompatible with this in its next update since it will do some stuff related to heat when it comes out. Obviously it's too early to ask for compatibility since that update doesn't even have a date yet and it might not even make sense to want both, but it is something to keep in mind.

Link to comment
Share on other sites

Kudos for attempting a replacement for the core heat system. I tried to integrate KSPIE with the Stock heat system in the past but failed misserably due to all the problems you mentioned in the OP. So I'm wonder, how do you bypass the Core system? The only succesfull method I know it to make it immune to external heat effects and then implement your own heat model, which is something I succesfull did for the Photon Sailor mod. But this was a special case and could not by applied to other parts, so what is the catch?

Edited by FreeThinker
Link to comment
Share on other sites

1 hour ago, FreeThinker said:

Kudos for attempting a replacement for the core heat system. I tried to integrate KSPIE with the Stock heat system in the past but failed misserably due to all the problems you mentioned in the OP. So I'm wonder, how do you bypass the Core system? The only succesfull method I know it to make it immune to external heat effects and then implement your own heat model, which is something I succesfull did for the Photon Sailor mod. But this was a special case and could nt by applied to other parts, so what is the catch?

Core heat basically only exists as a part module, plus interfaces from some other stock part modules to interact with it. It's easy to cut out (delete the modules from the configs)

SystemHeat just places its own modules in as replacements - effectively a SystemHeat module that is the interface to the system. Other modules exist to provide new functionality or adapters (such as interfacing between old stock ModuleResourceConverters), which plug into that SystemHeat module. 

Link to comment
Share on other sites

I was looking into it some more, and it looks like you probably don't have to worry about Kerbalism 4.0; it adds its own replacement to the core heat system, so it'd be redundant to use both.

Though, I guess users might want to disable Kerbalism's heat system in favor of SystemHeat, in which case it'll need to be able to run stably at high timewarps and in the background for Kerbalism to work with it (though that's not exactly the same as a compatibility patch since you probably don't need to interface with Kerbalism for that).

Link to comment
Share on other sites

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...