Mercury Particle Engine

Latest release 14.October.2007

Mercury Particle Engine is a 2D particle system for Microsofts XNA Framework. It allows developers to add impressive visual effects to their Windows & XBox360 games with minimum effort.

opensource-110x95.gif

In order to provide users with the best possible balance of extensibility & performance for their own particular requirements, i have split Project Mercury into two separate branches: 'Skinakas' and 'Caloris'.

Skinakas focuses slightly more on extensibility, giving the user the option to create their own customized particle structure with their required fields. Skinakas opens up possibilities for advanced effects utilizing modifiers that attach custom data to particles, resurrecting hope for the long overdue Farseer Physics modifier. Skinakas is recommended for projects targeting the Windows platform, and although it is compatible with the Xbox360, performance is likely to be limiting on the 360s' CLR.

Caloris focuses on pure unadulterated speed, at the expense of some extensibility. Caloris is highly optimized for the XBox360, achieving efficiency similar to Skinakas on the Windows platform. The ability to create customized particle structures has been removed, locking users into a predefined particle format. Caloris is recommended for projects targeting the XBox360 platform.

!!New Devblog
I've started a new development blog (mostly) about Project Mercury. Read all about it!
Last edited Oct 14 2007 at 3:13 PM by JimJams, version 28
Comments
GentooBox wrote  May 8 2007 at 9:04 PM 
This project is very cool. I like the simple API for making particle system with the modifiers and controllers. I've had a lot of fun playing with this particle engine and when i saw the demo with the FarseerPhysicsModifier, I was all "Yippppie". hehe.
On the dark side of the coin; I would really like some documentation on usage, special features and maybe some info on how to include one's own textures into the particle engine. Then I would be more than happy.

genbox wrote  Jul 15 2007 at 1:05 AM 
JimJams - What are the status on this project? I hope that FarseerPhysicsModifier will be ready soon.

crashlander wrote  Oct 11 2007 at 8:31 PM 
Good to see you are back with a new version!

crimsomshadow wrote  Dec 17 2007 at 10:25 PM 
This looks really promising, but I don´t know why but I just don´t get as much performance as I hoped. With the included sample, only with one simple modifier, it gets sluggy with 7000 particles in a T7500 with a 8600M GT and 2 Gigs of Ram. With more modifiers it cannot keep the framerate with more than 2000 particles. Am I doing something wrong?

JimJams wrote  Jan 12 2008 at 4:28 PM 
Hmm it's hard to say without more information, is the bottleneck in the CPU or the GPU?. I developed Mercury on an 8500GT and had no problem getting 15000+ particles with half a dozen modifiers. Since then i've upgraded to an 8800GT and can get 30,000+ now! One thing i have seen people do is call Update() and Draw() manually for their particle effect, this doesn't need to be done as it's called automatically as a DrawableGameComponent. If your particles don't need to rotate, you can save significant GPU time by disabling rotated point sprites in the Renderer.

If that doesn't work, feel free to start s forum thread, i'd be happy to look over your code for you.

crimsomshadow wrote  Jan 14 2008 at 9:42 AM 
That won´t be neccesary. It was the example that was coming and I think I just discovered (in surface) the problem. In the beginning, just to test it out, I had the particle system exported and imported again from the created file. When I get rid of that, I get 15000+ particles with all the modifiers included in the example. It really works like a charm. I only miss some documentation, but for the time being, experimenting is the best I can do!

Thanks for your attention and keep the excellent work!

Updating...
© 2006-2009 Microsoft | About CodePlex | Privacy Statement | Terms of Use | Code of Conduct | CodePlex Blog | Version 2008.12.9.14291