Writing a High Quality Particle System

Whether you're a newbie or an experienced programmer, any questions, help, or just talk of any language will be welcomed here.

Moderator: Coders of Rage

Post Reply
X Abstract X
Chaos Rift Regular
Chaos Rift Regular
Posts: 173
Joined: Thu Feb 11, 2010 9:46 pm

Writing a High Quality Particle System

Post by X Abstract X »

Hey guys. I want to write a particle system for use in a 3D RPG-type game capable of generating simple but cool effects for spells, auras, explosions and weather. I'm sure you guys have seen hundreds of particle systems that just throw out a bunch of particles of uniform color, acceleration and life time. I'm lost on what features give the particle system the ability to generate realistic effects that I could use for my needs.

So basically if people could just pitch in ideas and features that make a good particle system, it would be really helpful. Also, what sort of attributes should the particle data structure have? Mine currently has a lifetime, max lifetime, position, velocity, acceleration and color.

Thanks for reading.
XianForce
Chaos Rift Devotee
Chaos Rift Devotee
Posts: 767
Joined: Wed Oct 29, 2008 8:36 pm

Re: Writing a High Quality Particle System

Post by XianForce »

Well with most of the particle systems you've seen, you've probably just seen rectangles, or pixels. To add more of an effect, you can use small textures. But even with this, the actual particle system itself is mostly the same.
User avatar
Arce
Jealous Self-Righteous Prick
Jealous Self-Righteous Prick
Posts: 2153
Joined: Mon Jul 10, 2006 9:29 pm

Re: Writing a High Quality Particle System

Post by Arce »

^ What he said.

For "advanced" engines and particles, like you see in professional games, they are much the same. Some things to maybe consider:

- particle texturing
- transparency
- color fading/dimming

Download Unity3d sometime and take a look at how they implemented theirs. There are examples of everything from advanced fire to some to plasma/electricity effects, all easily implementable with rectangular particles.

Also, consider an advanced "particle emitter":

- variable shape (not one point)
- configurable random velocity delta
- particle forces
- particle density
- spray frequency
<qpHalcy0n> decided to paint the office, now i'm high and my hands hurt
Post Reply