This project is read-only.

Xen 1.5

Jan 10, 2009 at 9:07 AM
Edited Jan 10, 2009 at 9:15 AM


Just a quick heads up.
I'm expecting I'll get 1.5 out before the end of the month. Things are taking longer than expect, mainly for the big new feature (particle systems). I've got some minor features lined up too.

I ask if there is anything anyone would like to see included, that would be a quick and easy addition (ie, no giant features). No guarantees but if it only takes a bit of work I'll slip it in there.

Anyway. I thought I'd share the first image of the Xen Particle System in action. This is the GPU particle processor (which is nearly complete - the CPU one is less so) so I can guarantee that you'll struggle to find a particle system as flexible and fast :-) (I feel justified bragging here :)
I'll be doing some stress testing soon, but I'll be disappointed if it doesn't managed 1 million+ particles on the xbox. This is an improved system based on a particle system I built for a commercial game.

To make it even better (although a bigger learning curve) it's *highly* programmable. And it's all configured through schema validated XML (which means you get intellisense and validation at edit time).


Here is a sneak peak to give an idea:


Hope you all like it :-)

Jan 13, 2009 at 4:36 PM
Great work! I will be waiting to try it out. Actually this particle system could be a blessing to our project.
Jan 29, 2009 at 12:03 PM

Just a heads up that things are moving slower than expected. For example I'm running into a lot of xbox specific bugs, which are somewhat troublesome to get around.

For example, binding a vertex texture seems to invalidate the vertex declaration on the next draw call. Setting certain sampler states then creating a vertex buffer crashes, and also some very weird shader bugs too (quirky constant usage). A real hoot.

And beyond that I'm simply not spending as much time on it, as I was getting a bit bogged down and my 'normal' life was suffering.
So hope you guys understand.

Feb 1, 2009 at 1:10 PM

Yay, it looks like my dreams come true :) Thank you for such a great work!

Feb 7, 2009 at 12:38 PM
Edited Feb 7, 2009 at 10:32 PM

Yikes. That old screenshot is ugly :-)

Just an update, the particle system is all in place, it runs on the cpu on older machines and after a fairly significant effort, it's working on the 360 really well - ~1m simple particles @ 75fps :-D.

The documentation is mostly in place, and I just have a few other minor additions to make to 1.5. Beyond that, there is just a few little things like making it easy to create the particle systems, and tutorials (which do take a while).
So.. If things went really well, I'd guess next weekend would be possible.

Finally, you may have noticed visitor numbers have dropped off. I'm not too worried about this, however I'd like to know what XNA related sites you visit, so I can plan some good PR.

Ohh and:

Feb 7, 2009 at 7:36 PM
Wow. That looks awesome. I want it :)
Ohh, and I believe Ziggyware would be THE place to advertise. It is the only XNA related site i visit regularly.
Feb 24, 2009 at 11:51 AM
Edited Feb 24, 2009 at 12:00 PM

For anyone who is interested: (and I hope there is a few of you :-)

I've put up a 'first draft' of xen 1.5 for download here:

It's taken a lot longer than I anticipated, but I'm very happy with the results. The full version will be up in a few days (still some doc work and the like to do). If you have the time, I'd greatly appreciate anyone putting it through it's paces to make sure there isn't anything obvious I've missed.
Thanks :-)

Feb 25, 2009 at 11:18 AM
Just note I realise the 1.5 draft doesn't compile in release mode. Don't worry, it will be fixed :-)
Feb 25, 2009 at 2:44 PM
Hey there. Only came across Xen just recently and like what I see from the tutorials and code. Nice timing with the upcoming release (for me at least :)). I'll start integrating from 1.5 and see how I go.

By the way, any plans for multi-pass shader support in the near future?

Feb 25, 2009 at 10:36 PM


Sorry, I don't have any plans for multipass shader support. I made the decision early on that shaders would not support render state changes (Every experience I've had with these in the past - in both hobby and commercial projects - has lead to significant problems down the road).
The result is there is very little use for multipass shaders if you don't have support for render state changes in the shader. It's also a lot of work, and actually would add some overhead compared to just using two shaders. Finally, it makes the 'Bind()' usage much less obvious that anything drawn from then on is multi-pass.

My feeling is that shaders should do just one thing, and that's shade pixels. A change to render state will have no possible effect on the actual output or computation of the shader, so it doesn't really make much sense for a shader to force the render state it uses. (With the exception of texture sampler state, which I do support changes to, and enforce a sensible default).

But thanks for your feedback, and I hope you enjoy xen :-)

Mar 1, 2009 at 9:18 AM

It's out!. It's taken a lot longer than I expected, but I hope it's been worth the wait.

I'm looking forward to seeing some of you guys creations!