In general, sprites are always going to be your first "goto" for any sort of graphics. So start with them. If you run into a situation where they start to feel limited, then you can branch out for the things that are involved in those limitations. For instance, a fireball spell would probably be fine with a sprite. If you're bad at drawing and want some sort of "animation", you might chuck a few particles onto it. So that will work fine for a fireball, an iceball, a blast or whatever. But let's say you then want to put in chain lightning? Well, a simple draw_sprite()
might not be up to the task.
So you'd branch out. Perhaps you can run a loop and use draw_sprite_ext()
and draw multiple lightning sprites with their angles, lengths and positions all done with maths to connect them into something that looks like a lightning chain...Perhaps you'd set up some primitives and texture them...Perhaps you'd go the shader route and manipulate the individual pixels using shader maths to create the lightning effect. None of these are necessarily "better" than any others (some might be easier on the processor, though), but whatever you do, it's not necessarily going to change how you'd draw a fireball. You'd draw your fireball the same way as you did at the start, but change how you do things for the chain lightning.