Particle Explosions and performance/freezes

I’m trying to reproduce the particle explosions from Geometry Wars, a top-down twin-stick shooter.
These explosions are very spectacular and colorful, you can check them by simply searching for Geometry Wars gameplay on youtube.

Now, I find quite a few problems doing so, between performance and even freezes of the game.
Purpose of this thread is to ask for advice on how to implement in Gdevelop such a system by maintaining good performance (>>30fps).

This is my current implementation.
I start by checking the health of each enemy and for those who are dead, they explode emitting objects which are 2px high and 14px wide.
I decided to use the physics engine, as I can make them slow down using linear dampening.
The effect is very realistic and satisfactory, just like I wanted to obtain.

So far so good and good performance.
However, I now want to decrease the opacity of the objects, as well as shorten them.
In this way they will really look like debris which are cooling down and slowing down in-flight.

The opacity part works fine, I just use a counter and they gradually disappear.
However, for the shorting it’s a mess.
Not only it seems to consume a lot of performance, but also I get freezes after a few enemies are popped.
I find that by deleting the call to the Physics2 behavior, I eliminate the freezes.
Performance is anyway not good, it seems the rescale function is eating performance when there are many particles on screen (it can reach a 1000 easily).

What is happening here and how can I implement this system correctly?


Physics is very resource-hungry.
If you don’t want to use the particle emitting object that is purely visual, you should use standard objects without any behaviors.
But if you insist on using Physics, the first thing to do would be to limit the number of particles.
And another thing I would try is to set a custom Physics hitbox for your particles, slightly smaller than the particles themselves. Might help with the scaling performance.
Or you could try to hide the Physics objects, add standard objects on top and rescale those.

Thanks for the answer!
In the meantime I actually switched to the normal particle emitters:

This works well as an explosion and performance is very good.
However I cannot seem to understand how “friction on particles” is working. To me it sounds like the particles should slow down after being emitted, but it seems to be doing nothing.
Am I missing something?