Wow thank you so much, surprised i’ve never heard of it before,
I have to go back to my previous messages to re-find it whenever I need to make a new bug report so, totally understandable!
Going to bump this again because I just really want Roblox staff to not forget and not have it fade into nothingness like the posts on this before it.
Hello and thank you for your vigilance!
We are currently testing a potential fix internally. This fix specifically targets the issue where outdated particles remain active and accumulate, ensuring their timely removal.
Please feel free to reach out if you have any questions or need further information.
Yes!!!
Finally, after many years this is getting a fix! Thank you Roblox staff!
Sounds perfect. Thanks a lot, this update has been causing behind-the-scenes problems for who knows how many games for a while now, will be good to see it put to rest.
To clarify, this change will mean that particles creating using :Emit or whatever else will vanish while offscreen assuming they make it through their assigned lifetime?
What if we turn away from an emitted particle for about 50% of it’s lifetime and then turn back, will it be 50% through it’s effects (EX, if its size went from 1 to 10 during its entire lifetime, it’d be at 5 size)?
Good question!
this change will mean that particles creating using :Emit or whatever else will vanish while offscreen assuming they make it through their assigned lifetime?
Correct. The particle system will destroy a particle after the lifetime for this particle.
What if we turn away from an emitted particle for about 50% of it’s lifetime and then turn back, will it be 50% through it’s effects (EX, if its size went from 1 to 10 during its entire lifetime, it’d be at 5 size)?
In this example, if you look at the particle when it’s halfway through its lifetime, it will be size 1. It will then resume the simulation, growing over the second half of its lifetime, and reach size 5 upon completing its lifetime.
I understand that such behavior might not be ideal. It happens because we don’t simulate particles off-screen. We knew that this would be a side effect when developing the fix. However, we decided to go with it for the benefit of resolving the immediate issue with infinite particles.
Would it be feasible to fast forward the particles when they resume simulation? Each particle could keep track of when it was last seen and fast forward by the delta time since it was last seen. I’m sure a regular float would be enough to store this which wouldn’t cause much overhead.
My thought was, even if we can’t physically simulate the position of the particle, we should be able to interpret their transparency/size etc, right?
Like, it’s just on a big number sequence. So we should know what it should be after having been active for X time - I think a good compromise would be to ensure that those properties are still calculated when the particles come into view, even if calculating the actual movement of the particles isn’t feasible.
At the very least, for transparency. I think the roughest part about this update will be that, previous particles that faded out at the end of their lifetime, might accidentally self-delete before fading out, which is why being able to have something keeping track of what transparency a particle would be at X time would be extremely, extremely useful.
Great ideas!
The main issue with forward simulating the outdated particles is a potential lag of updating all accumulating particles. With the current system you would need to simulate all missed frames with some precision for the particles to catch up.
I like the idea of only forward simulating what can be mathematically calculated without actual simulation.
For the context, first we wanted first to fix the crash and getting out of memory with too many outdated particles. The fix is in internal testing right now.
The forward simulation has not been prioritized currently.
Will particles being simulated off screen be possible in the future?
The fix for removing outdated particles has been released in version 603
. The expected behavior now is that ::Emit
particles will be destroyed after their designated lifespan. If you use curves for size, color, and alpha, the particle system will accurately calculate the correct values based on the current particle’s lifespan once the emitter is visible and the particles begin to simulate.
Please note that the position, velocity, and other properties are not simulated when the emitter is not in view.
Will particles being simulated off screen be possible in the future?
We are currently exploring the possibility of off-screen particle simulation, assessing what it would entail and how it might be implemented. However, I want to be cautious in setting expectations. There are several unknowns and technical challenges that need to be addressed, and at this time, work on particle features is not a top priority. It is unlikely that this capability will be available by the end of 2023. As for 2024, it’s too early to make any definitive statements. We appreciate your understanding as we navigate this.
A quick but unfortunate update:
We had to revert the fix because it interfered with some other functionalities. Our team is currently developing an improved version, which we aim to release in the upcoming updates.
We apologize for the inconvenience and appreciate your patience during this additional delay.
Nice, would love to have this prioritized as one of the next updates for particles as it can lead to visual issues such as when setting off explosions offscreen and them only starting the player looks at them
Can’t wait to have the Fix released! thanks!
I am extremely grateful for the transparency in all of this - it sounds like that 603 build had some good potential! I hope whatever is throwing a wrench in the works gets solved and the improvement can be fully implemented. Good luck!
The updated fix has been enabled in the latest 605 version. We are closely monitoring the 605 version for any new issues related to particle effects.
We welcome your constructive feedback and suggestions.
I will be monitoring this once I upload an update to my game this week, and I’ll let you know the results. My game makes heavy use of particles affected by this so it should be a good test