I've been reflecting on comparative performance for particle type effects where I can't use the built in particle system.
If you want to use particles in your own system, then these results will be interesting.. I compared the performance because I was interested to see the difference between the 3 methods and was somewhat surprised - here are the results on a low spec laptop.
Test 1:
2048 sprites (5x5) from image, with alpha on and no shape = ~210fps
Test 2:
2048 sprites from no image (5x5), with alpha on and no shape = ~258fps
Test 3:
2048 5x5 blocks drawn using the drawline command. No transparency or shape overheads = ~127fps
using a loop:
for l=0 to 4
DrawLine(x,y+l,x+5,y+l,255,0,0)
next l
and expanded loop gave a eyebrow raising increase, but still nowhere near sprites: - ~158fps
DrawLine(x,y,x+5,y,255,0,0)
DrawLine(x,y+1,x+5,y+1,255,0,0)
DrawLine(x,y+2,x+5,y+2,255,0,0)
DrawLine(x,y+3,x+5,y+3,255,0,0)
DrawLine(x,y+4,x+5,y+4,255,0,0)
Conclusion: I am somewhat surprised that this is the case. Obviously drawline is not as fast as I thought and in reality, you'd be better off drawing lines with sprites still for performance.
This example also indicates how expensive for/next loops can be in extremis (2048 hits to the loop per frame) so consider expanding your loops in this way for performance.
Reminds me of the old assembler days on the amiga where you had compiler commands such as REPT where you could repeat the same code
n times to gain much needed frames.