why do particle effects often keep going in the background when you pause a game while everything else is frozen in place?

491 views

why do particle effects often keep going in the background when you pause a game while everything else is frozen in place?

In: 315

16 Answers

Anonymous 0 Comments

Particle systems are possible because we do a lot of performance optimizations to make those millions of particles run at a decent speed. One of those optimizations is keeping the system as simple as possible. Particles use what’s called “Delta Time,” (time since last frame) to judge how much a particle needs to move that frame, and then a simple algorithm is used on each particle to move them into their new positions.

If you pause the game, suddenly the time since the previous frame increases dramatically, meaning if done incorrectly, when unpaused the particles would go “Oh, I need to move 1,000,000 frames worth of distance **right now**,” and cause some weird effects. While possible to mitigate, it’s much simpler to just allow particle systems to keep running.

Anonymous 0 Comments

If you want to make something move inside a game engine, you need a global delta time variable, i.e a clock that keeps on ticking as the game runs. This changing number can be used to change an objects features, for example its position.

It could be that the game engine uses a different clock for its particle systems, and another clock for everything else. When you pause the game, what the game does is that it halts the increasing of the global clock variable, and hence halts any change in the objects. So if the particle system has an independent clock, pausing the game wont halt the particle systems clock.

Could you provide an example of the particle system being unlinked from the rest of the game?

Anonymous 0 Comments

Particle systems are possible because we do a lot of performance optimizations to make those millions of particles run at a decent speed. One of those optimizations is keeping the system as simple as possible. Particles use what’s called “Delta Time,” (time since last frame) to judge how much a particle needs to move that frame, and then a simple algorithm is used on each particle to move them into their new positions.

If you pause the game, suddenly the time since the previous frame increases dramatically, meaning if done incorrectly, when unpaused the particles would go “Oh, I need to move 1,000,000 frames worth of distance **right now**,” and cause some weird effects. While possible to mitigate, it’s much simpler to just allow particle systems to keep running.

Anonymous 0 Comments

If you want to make something move inside a game engine, you need a global delta time variable, i.e a clock that keeps on ticking as the game runs. This changing number can be used to change an objects features, for example its position.

It could be that the game engine uses a different clock for its particle systems, and another clock for everything else. When you pause the game, what the game does is that it halts the increasing of the global clock variable, and hence halts any change in the objects. So if the particle system has an independent clock, pausing the game wont halt the particle systems clock.

Could you provide an example of the particle system being unlinked from the rest of the game?

Anonymous 0 Comments

Particles kinda exist separate from the rest of game objects. Like you couldn’t have Skyrim render 1000 rocks without the game slowing down, but if you want 1000 sparkles on screen that’s fine, because they cheat to be their own thing with way simpler rules, even if they seem like they interact with things. Starting and stopping the system tends to look messed up, because they cheat by using formulas based on time passing and what the last particles did and if you stop that and have to restart it it gets all weird. So things just keep them running

Anonymous 0 Comments

Particles kinda exist separate from the rest of game objects. Like you couldn’t have Skyrim render 1000 rocks without the game slowing down, but if you want 1000 sparkles on screen that’s fine, because they cheat to be their own thing with way simpler rules, even if they seem like they interact with things. Starting and stopping the system tends to look messed up, because they cheat by using formulas based on time passing and what the last particles did and if you stop that and have to restart it it gets all weird. So things just keep them running

Anonymous 0 Comments

Pausing a game isn’t a kind of universal constant, it is whatever the developer codes to happen when you hit pause.

What that means is they might stop absolutely all actions, or they might just limit some game system time from advancing. Often things like graphical updates continue, especially if it is a game like a RTS or RPG that allows interaction with the game while paused.

Anonymous 0 Comments

Pausing a game isn’t a kind of universal constant, it is whatever the developer codes to happen when you hit pause.

What that means is they might stop absolutely all actions, or they might just limit some game system time from advancing. Often things like graphical updates continue, especially if it is a game like a RTS or RPG that allows interaction with the game while paused.

Anonymous 0 Comments

Most of these comments miss one of the real reason. I work on rts games and we had problems with pause not stopping particle systems and here is why. The particle system gets used in the menu for button interaction and for actions like move command indicators that you can do while paused. Because it’s needed while paused it gets hooked up to a different delta time which does not stop when the game is paused.

Anonymous 0 Comments

Most of these comments miss one of the real reason. I work on rts games and we had problems with pause not stopping particle systems and here is why. The particle system gets used in the menu for button interaction and for actions like move command indicators that you can do while paused. Because it’s needed while paused it gets hooked up to a different delta time which does not stop when the game is paused.