Thread Rating:
  • 1 Vote(s) - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Major "Real Time" Processing Causes Issues
#1
Ever since reagent processing was changed to be in "real time" as opposed to BYOND time, there's been a number of weird bugs with reagents.

There seems to be far more instances of rounding errors when reagents deplete. While this has always occurred with reagents, this seems to be happening more often.

That said, the major frustration with this is that reagent damage as defined by the wiki is now meaningless. I dunno if this is intentional or not, but it's impossible to know or tell how much damage a reagent is supposed to do. Sometimes a reagent that's supposed to do 1 TOX will do 1.25. Then next time it'll be 2.32342.

I'm guessing you're doing some weird thing of looking at total elapsed tick useage or measuring when something started versus finished, then taking the time difference and multiplying it by when it should have processed, but this makes things a bit confusing and inconsistent.

Breathing and losebreath have the same problem (8.255962 damage, verus the flat 5, for instance) when you're in an O2 deprived environment or acquire the losebreath status. Also, as an aside, there's some weird conditions where O2 will just not heal from `Breath` at all; it'll stay stuck, forever, when it should be recovering 5 every other atmospherics process (as a personal aside this should probably be changed to process every other `Life`instead of processing based on what the air controller is doing).

I get what's being gone for, but I'm not really sure it's necessary for reagent processing to be so precise that all transparency for what a reagent is doing is effectively destroyed (or anything using this).

It seems that a better solution would be to track the current duration of how long it took `Life` to process (or whatever it is you're doing for this system), and subtract the over time for the next scheduled time for it to run. So, if reagent processing or Life processing was delayed by 0.5 seconds, then the next time it runs, it'll run 1.5 seconds later, instead of the usual 2.

In this way, the damage/healing of reagents/breathing is kept the same, and transparent, but the damage over time is kept consistent and in "real time" of what it should be.


Messages In This Thread
"Real Time" Processing Causes Issues - by Fox McCloud - 04-04-2019, 01:30 PM
RE: "Real Time" Processing Causes Issues - by mbc - 04-04-2019, 02:03 PM

Forum Jump:


Users browsing this thread: 1 Guest(s)