
on the other hand, alpha testing rocks for 1000 sprites in a confined space, at least when you can get away with otherwise-opaque sprites (side note: alpha test doesn't exist in gles2, you need to use the discard keyword instead).
the safest way around depth/blending issues is to make the explosion fully additive (sprite+particles), then you don't need to care about the depth buffer at all, just disable depth writing (but not testing) and everything works out okay in the end even with stuff smoothly fading out.
of course, then it isn't quake...
the original particles being the same size regardless of distance is a feature! it prevents issues with excessive overdraw when the particles are close, although it often makes effects look silly far off, but again, the advantage is that you can more easily see where you hit, and if you hit something that bleeds in the process.
yeah, the vanilla explosions are not photo-realistic, but very little of vanilla actually is. with nearest sampling and square particles, they at least match everything else. they suit the world. or maybe I've just seen them far too often such that I no longer even look.