0
Started

Feedback on the new power system (0.61b)

Mr. Fusion 3 years ago updated by Tyler Owen (Lead Developer) 3 years ago 5

I played a few hours with the new power system, and in general it appeared to work as expected, but I didn't perform any specific/targeted tests on it, only kept an eye on how it works and if anything seems off.


A few specific issues I've noticed:

  • Systems appear to charge the battery even when they are turned off. I don't think this is how it should work, since it means that all the panel slots effectively belong to Electrical, not to their respective systems. When a system is turned off or has component failures, it should not be able to send charge to the battery, and its charge should be reported as zero on the hab status screen.
  • The Reoxygenator power use line is "stuck", it always reads as 50 even when turned off, and it's added to the total drain on top of the screen. However, it doesn't actually drain power when turned off, only the display shows it all the time.
  • When Electrical is turned off, the charge side of the total charge/drain line should drop to 0, since there's no actual charge happening without Electrical. The systems do produce those units, but at that time, without Electrical, it's not charge as such.
  • There was one time when the hab status display completely broke: most of the text disappeared, and a single line of text (the charge/drain line of the Heater) started to fill the screen first upwards fron where it normally is, then also down to the bottom, and after a few seconds the normal status text returned. It was during a storm, so I'm not sure if it was just some intended but very rare display corruption related to that, but didn't really look like it.

A few notes on balance and possible improvements/changes:

  • The Reoxygenator could switch to the low power state when there's no water available for it (nothing to break down so that part of the system powers down).
  • The water and oxygen production rate is way too high. Since systems are now running constantly, unlike before when they throttled down for the night, they are producing probably close to twice as much as before. Their base production rate should be lowered significantly to compensate for this.
  • Power production vs. use feels a bit high currently (I got about 40% left morning to morning with all systems running and suit charged up), and in part because of that, and in part to make choices between what to turn off a bit more interesting, I think the power use of the three producing systems could be tweaked a little as follows:
    Water Reclaimer: 60/45
    Reoxygenator: 50/40
    Heater: 55/35
    The increase is not as significant as it looks, since the Heater is practically always in low power mode (and the Water Reclaimer is also likely to hit cap after a while and power down, in which case it can even be turned off if you want to save power), so while previously the "nominal" drain from these 3 systems was 50+50+40=140, it would be 60+50+35=145 with these values. I think this would be just enough added drain to make the power budget a bit tighter.
  • Because of the offline systems still providing charge, I coouldn't get really good info on how the power holds up during a storm, but in may be necessary to raise the minimum panel efficiency from 15% to 20%. as changes in the panel efficiency now have a different impact on the power balance than they had with the percentage based implementation.

I also thought a bit about what could be done to improve the hab status screen. I think the biggest problem with it currently is that information isn't really well organized, or rather, organized in a way which makes it difficult to see all information at a glance which logically would belong together. Currently it's grouped by system, and while that makes sense when you want to see system-by-system information, some of it, especially the power related information would be better to be grouped together by "theme" as they need to be interpreted together to understand where you stand in terms of power balance. So my suggestion would be to organize this screen into two groups: one that shows the production related information, and another which shows the power related information. Maybe something like this:


Life Support
 Power: 75.3% [Charging: Electrical Has Sufficient Feed]
 Water: 3.0L (100%) [Water Reclaimer Offline]
 Oxygen: 105.8L (45%) [Reoxygenator Producing From Water]
 Temperature: 14.7C [Heater Raising Temperature]


Power Utilization: 130 Units Total Feed / 125 Units Total Draw
 Electrical: Feeding [100 Generated / 25 Used]
 Water Reclaimer: Offline
 Reoxygenator: Drawing [30 Generated / 50 Used]
 Heater: Drawing [0 Generated / 50 Used]



Template and all display lines for each field, should give a rough idea about how it would work:


Life Support
 Power: xxx.x% <electrical_mode>
 Water: xx.xL (xxx%) <water_mode>
 Oxygen: xxx.xL (xxx%) <oxygen_mode>
 Temperature: xx.xC <temperature_mode>


Power Utilization: <power_utilization>
 Electrical: <system_state> <electrical_warning> <power_ratio>
 Water Reclaimer: <system_state> <power_ratio>
 Reoxygenator: <system_state> <power_ratio>
 Heater: <system_state> <power_ratio>


<electrical_mode>
- [On Stand-By: All Systems Offline]: 0 charge, 0 drain
- [Discharging: Electrical Offline]: 0 charge, non-zero drain, turned off
- [Discharging: Electrical Failed]: 0 charge, non-zero drain, component failure
- [Discharging: Electrical Has No Feed]: 0 charge, non-zero drain
- [Draining: Electrical Has Partial Feed]: higher drain than non-zero charge
- [Charging: Electrical Has Sufficient Feed]: higher charge than drain


<water_mode>
- [Water Reclaimer Offline]: turned off
- [Water Reclaimer Failed]: component failure
- [Water Reclaimer Collecting]: online, tank not full (high power mode)
- [Water Reclaimer Recycling: At Capacity] (green): online, tank full (low power mode)


<oxygen_mode>
- [Reoxygenator Offline]: turned off
- [Reoxygenator Failed]: component failure
- [Reoxygenator Has No Water]: online, no water (low power mode)
- [Reoxygenator Producing From Water]: online, has water, tank not full (high power mode)
- [Reoxygenator Recycling: At Capacity]: online, tank full (low power mode)


<temperature_mode>
- [Heater Offline]: turned off
- [Heater Failed]: component failure
- [Heater Raising Temperature]: online, raising temp to 20 (high power mode)
- [Heater Regulating: At Nominal Temp]: online, temp stable at 20 (low power mode)


<power_utilization>
- 0 Units Total Feed / 0 Units Total Draw: all systems offline
- 0 Units Total Feed / Y Units Total Draw: 0 charge, non-zero drain
- X Units Total Feed / Y Units Total Draw: non-zero charge which is less than non-zero drain
- X Units Total Feed / Y Units Total Draw: charge greater than drain


<system_state>
- Offline: turned off
- Component Failures: turned on but failed
- Drawing: local power less than or equal to power use (shouldn't be red, this is normal condition)
- Feeding: local power higher than power use and electrical is on
- Local Only: only for water/reoxy/heater, local power higher than power use but electrical is off/failed


<electrical_warning>
- Warning - Reserve Battery cannot be charged!: only when electrical is off or failed


<power_ratio>
- (not displayed): system is turned off or failed
- [0 Generated / Y Used]: no local power
- [X Generated / Y Used]: local power less than or equal to current use
- [X Generated / Y Used]: local power higher than current use

Another, possibly easier to read approach to the unit based power balance display could be to display only the difference between the local production and local drain.


Eg. a system has 100 input and 50 drain, then it's simply displayed as "Feeding (+50)". If it has 30 input and 40 drain, then "Drawing (-10)". This wouldn't tell you at a glance which system has the highest potential drain, but it would be just a simple matter of finding the biggest negative number and turning that system off first when you are short on power.


And the same would go for the battery state, only the result of all drains/feeds added would be displayed as a positive or negative number: eg. "Charging (+35)" or "Draining (-20)".

Started

I'm going to address each of your points from your original post first.


A few specific issues I've noticed:

  • Systems appear to charge the battery even when they are turned off. I don't think this is how it should work, since it means that all the panel slots effectively belong to Electrical, not to their respective systems. When a system is turned off or has component failures, it should not be able to send charge to the battery, and its charge should be reported as zero on the hab status screen.
    • RESPONSE: I noticed this as well and it is fixed now for public release of 0.61.
  • The Reoxygenator power use line is "stuck", it always reads as 50 even when turned off, and it's added to the total drain on top of the screen. However, it doesn't actually drain power when turned off, only the display shows it all the time.
    • RESPONSE: Found and fixed for 0.61 public release.
  • When Electrical is turned off, the charge side of the total charge/drain line should drop to 0, since there's no actual charge happening without Electrical. The systems do produce those units, but at that time, without Electrical, it's not charge as such.
    • RESPONSE: Found and fixed for 0.61 public release.
  • There was one time when the hab status display completely broke: most of the text disappeared, and a single line of text (the charge/drain line of the Heater) started to fill the screen first upwards fron where it normally is, then also down to the bottom, and after a few seconds the normal status text returned. It was during a storm, so I'm not sure if it was just some intended but very rare display corruption related to that, but didn't really look like it.
    • RESPONSE: I noticed this happen a few times during testing before I put out the public beta, but obviously I didn't quite get it fixed it you still saw it. I'm hoping the changes I've made since public beta of 0.61 should now have fixed this for the public release of 0.61. I will likely revisit this display and redo it completely in the future. For now I kind of retrofitted it quickly just to get the new functionality in.

A few notes on balance and possible improvements/changes:

  • The Reoxygenator could switch to the low power state when there's no water available for it (nothing to break down so that part of the system powers down).
    • RESPONSE: Good idea and implemented for 0.61 public release.
  • The water and oxygen production rate is way too high. Since systems are now running constantly, unlike before when they throttled down for the night, they are producing probably close to twice as much as before. Their base production rate should be lowered significantly to compensate for this.
    • RESPONSE: I agree and I've reduced the production rate to be about 60% of what they were before. Might still tune them down lower in the future.
  • Power production vs. use feels a bit high currently (I got about 40% left morning to morning with all systems running and suit charged up), and in part because of that, and in part to make choices between what to turn off a bit more interesting, I think the power use of the three producing systems could be tweaked a little as follows: Water Reclaimer: 60/45 Reoxygenator: 50/40 Heater: 55/35 The increase is not as significant as it looks, since the Heater is practically always in low power mode (and the Water Reclaimer is also likely to hit cap after a while and power down, in which case it can even be turned off if you want to save power), so while previously the "nominal" drain from these 3 systems was 50+50+40=140, it would be 60+50+35=145 with these values. I think this would be just enough added drain to make the power budget a bit tighter.
    • RESPONSE: I've decided not to make any changes to the power use just yet. I like the simplicity of the 50 cost max and the 100 charge max per module. Also, in the hopefully near future there will be a new thing to expend your reserve battery on (*wink* check the control options screen *wink*).
  • Because of the offline systems still providing charge, I coouldn't get really good info on how the power holds up during a storm, but in may be necessary to raise the minimum panel efficiency from 15% to 20%. as changes in the panel efficiency now have a different impact on the power balance than they had with the percentage based implementation.
    • RESPONSE: I haven't had time to test this more myself, but I want to get out the 0.61 public release in the next 24 hours before I leave for a short weekend trip. I'm keeping the minimum at 15% and unless it is literally impossible to wait out the Big Storm scenario with that minimum efficiency then it will probably stay that way. In the future I'm planning to add battery items that you can charge and stockpile for use in the case of a dust storm which would make a normal dust storm easier to survive than it is currently.

Concerning all the other changes you have come up with for the hab status screen: I agree that it could use some improvements. And in fact your suggestions may serve quite nicely. But I will have to wait on that until later. I want to move on to a larger feature implementation that I teased above.

The hab status display issue is still present in the public 0.61 version. At one time when I interacted with the status console inside the hab, the status screen came up with the heater's power status line filling the entire screen for a few seconds, then it went back to normal.

Made this its own topic. I'll be getting back to the design of the screen soon and I'll include a fix to prevent this from happening.