Is ParticleBatchNode is unnecessary like SpriteBatchNode?

I know that in v3+ rendering systems written from scratch and using SpriteBatchNode is unnecessary because batching is done automatically.

But I don’t know how particle systems leverage from this. Is using ParticleBatchNode as unnecessary as SpriteBatchNode in v3+? Or still we need to use them as a performance optimization technique?

Yes it should be no longer necessary to manually batch anything anymore in general. There are recent commits that improved the performance of the 2D particle system. Also the particle system as I understand it sort of manually batches the particles by creating and setting up the render commands directly without going through the normal Sprite auto batching system.

Hopefully someone can confirm this.

There may be very specific use cases where manual batching is necessary and you can also look at the FastTMXTiledMap where it “manually” batches all the quads for each layer using triangle/quad commands.