I'm going to post the code to the whole thing further down, you should be able to just drop the CParticleSystem class into whatever you want, if you're interested in using it. You'd just have to change my SpawnSprite function to however you display billboarded sprites.
Right now I've got support for 7 different particles/effects as follows: bullet casings, generic particles, basic explosions, fire, smoke, blood, etc.
I made 2 videos of the particle system, if you wanna check them out here are the links, any feedback would be appreciated....
//Videos are encoded in MPEG4
//Empty field test, 8MB
//In-game test, 12MB
//Screenshot from City_Particle.avi
//I'm not happy with the way the smoke is blending with the ground, anybody have ideas about how to fix that?? I can't just disable Z-testing.
//Maybe I could put a AABB around each particle and use that for collision detection, seems like overkill though.
//Another screenshot from City_Particle.avi
//Yea, I'm dead.
//View from up high
//Progressive screenshots of the "death beacon" that appears whenever a gang member dies, a beacon of that gang's color, emmits from their position.
//You can see it in motion in City_Particle.avi.
Here's the code to the particle system as in those videos/screenshots....hopefully somebody might get some use out of this, though it's pretty simple/straightforward. I spent a few hours typing, and a few hours tweaking the parms to get the different effects.
Notice there is no frustum culling on the particles. I do the culling on a particle emmitter basis, it's much more efficient that way. Since I'm already testing the visibility of any object/area that can emit a particle.
Finally here are some screenshots of each specific effect, taken from Particle_Test.avi I've still got a lot of work to do on the Explosion effect, it looks a lot better in motion/the video, as does the blood.
Early explosion (looks a lot better in motion)
Generic white particles (to show unit healing maybe?)
Shell casings imposters
Other than that, the game is coming along well I'm working on the gameplay/multiplayer aspects as well....it's starting to come together.