User:Zamujasa/Broken Stuff

From Space Station 13 Wiki
Jump to navigation Jump to search

i'm a coder now! that means that i am empowered to personally fix bugs and enhance the game as i see fit.

unfortunately i'm also lazy and chronically out of energy so i will complain about them here.

actually i just want to document stuff i know of that would require a lot of refactoring or reworking to properly fix, or would have big impacts on how rounds play these days


broken

body temperature / thermal regulation

human thermal regulation is basically ineffective.

you can see this in-game easily:

1. after freshly spawning or being admin-healed, check your body temperature - it will be 98 F 2. within a few seconds, life will proc and your body temperature will start dropping towards room temperature, 20 C (yes, different units; deal with it) 3. your temperature will settle around 21 C

this is possible to observe in game by watching the thermometer in the hud; it will change from the normal temperature to "it feels cool"

this is also why it takes so long for shivering to go away and why lizards have incredibly awful thermal reg, even beyond what would be expected.

thermal protection

the short version is that thermal protection is applied based on the ambient temperature versus your ideal temperature. this means things kind of work paradoxically to how you would expect them to:

1. equip 100% cold protection, in an area with nominal atmosphere (20°C, 101kPa) 2. lower your body temperature to 0°K, easily done with application of cryostylane 3. your body will stay extremely cold for a long period of time 4. if you remove your cold protection, you will actually warm up again much faster

the problem is that the cold and warm protections calculate if they should protect you based on the difference between the ambient temperature and your base_body_temp, not your current body_temp... so even if the air is a brisk 20°C and you're chilling around -200°C, your cold protection protects you from the ambient temperature because it's colder than your body's ideal temperature.

the same works for heat protection. this, combined with the body's broken thermal regulation, means that body temperature is hard to control and doesn't make a whole lot of sense.


power

powernet stuff is just all kinds of jank

solar panels

solar panels were optimized to only process every x cycles, since they are largely static. the main problem is that the power output from them is now unstable:

  • before: runs every cycle, slow updates
    • runs every cycle, causes needless slowdown
    • stable, steady output
  • now: runs every x cycles, split into buckets based on coordinates
    • buckets aren't evenly sized; power spikes and dips almost randomly
    • power output per active cycle increased to make up for only some of them running

one possible fix is to re-enable the previous behavior, but instead keep a count of how many cycles it has been and only run the los update when needed. this might slow things down again but i'd have to test how much it would re-introduce slowdown


power usage

power usage for a lot of things doesn't make sense and isn't well-documented. apcs take forever to charge or discharge; even if the engine isn't set up it can often take half an hour before anyone even begins to notice.

apcs and smes units will wait for several cycles where the powernet has a surplus before beginning to actually charge their batteries (represented as "performing self test"). fluctuations in power getting added/removed from the network can cause these charge cycles to reset, requiring several more cycles before they start charging again; even occasional disruptions can prevent apcs from charging

things like powersinks are very good at deleting the entire powernet, but even with high power in the network, apcs will only charge very slowly. a powersink that manages to drain most of the station is usually a round-ender.


powernet in general

there are still some bugs involving powernets where they become broken and disconnected. i'm not sure what exactly causes it but the admin fix-powernets command will fix it.


more

i'll write more eventually