When I pause my game, my GPUParticles2D node seems to pause correctly (the particles freeze in place). However, when I unpause after waiting a few seconds, it seems that the particles engine has continued to run during the pause, and the particles then suddenly “catch up”, rather than continuing with their expected behavior from before the pause.
Here is a short video - you can see that after the pause, the bubble particles sort of zoom sideways toward the player, rather than coninue gently floating upward (which is the expected behavior, since that is what would happen without pausing and unpausing):
Here are my settings for the GPUParticles2D node:
< as a new user, I can only put one imbedded media in a post, and the video seemed more important >
Question
Is there a way to get the bubble particles to behave exactly like they would if I had not paused and unpaused?
I’m relatively new to Godot, so I’m not sure if there’s a setting I missed, or whether this might be a bug. If it’s a known bug, is there a workaround?
Here are the most relevant parameters (process mode is inherit, which is pausable - setting it to pausable explicitly shows the same behavior as in my video):
If I turn on Interpolate (all other settings are the same as above), you can see particle movement while the game is paused, as this video demonstrates:
Well, I went through each Process Material setting that I had enabled, turning them off and on to see if anything fixed the problem.
It appears that turbulence is causing the problem you can see in my videos. After I turn off turbulence, there is no particle drift after a pause. Turning off turbulence also fixes particle drift during a pause when interpolation is enabled.