Perhaps your original idea was actually correct, but maybe there was something causing that lag?
I recently added death effect to my game and had about 200 or so particles go into the physics box2d and at first it lagged hard.
It wasn’t until I realized that I was checking some collisionLists and was checking the particles against a bunch of things they shouldnt be. Especially in box2D with ‘getFixtureA()’ being called (thousands of times) lagged my game out hard.
When I filtered out the particles, the game never even flinched, even at 100x the amount of particles.
How were you handling it that caused the lag?
Unless you are aiming at a very low end system(mobile), a few hundred, or even a few thousand particles shouldn’t be much of a problem at all. However when dealing with many particles, its easy to overlook an expensive method call.
Edit:
Also your current blood doesn’t look so bad, I would make the blood pieces much smaller, possibly circular, and have many more of them. Perhaps 1/10th the size and 10x the amount, so overall its about same, but itd look much more like splatter