This is just a guess, but i think it's not the number of effects or shaders that drops the fps, but rather the high amount of entities.
When i started with my Idon Beat Player, i used one entity for each cube and then scaled/moved it based on the music's spectrum.

Belive it or not, but 400 cubes, just scaling/moving dropped my fps to ~70fps. And i had NO effects, NO shaders, NO nothing. Just the cubes, moving around.
So i ended up creating an array of cubes in 3dsmax and then animated it by moving it's vertices via ent_getvertex / ent_setvertex. The code is much more complex as it was in the first version, but now it runs at ~450fps, WITH effects, WITH shaders. The "only" difference is that there's only 1 model being rendered, and not 400.

So yeah, unless you find a way to cluster your entities and use 1 model instead of ~10, don't expect better performance, just by using 2D Sprites instead of 3D models.

However, as you are thinking about using sprites, you might want to code yourself a simple instancing algorythm. The vertex stream the cpu has to send to the gpu for each entity can get pretty high once you have lot's of entities. Instancing tries to send one big vertex stream instead of many small ones. There are many tutorials on instancing out there, maybe that helps.
Or maybe you can "hack" the particle functions and create your 2D characters out of particles, as these are instanced in A7 Pro and you can render hugh amounts of it.


Of course, a high amount of entities is not the only fps hit, shaders, polygons, textures, skills, flags, etc are of course also part of the fps eating. But you know that yourself wink


Shade-C EVO Lite-C Shader Framework