Current Status, and the decisions that will shape the future of Xen.

Jan 15, 2010 at 12:38 AM
Edited Jan 15, 2010 at 12:46 AM

Hi guys.

As you have probably notice, I'm not updating or responding very quickly right now (well, or any of 2009 either...).
It's been more than two years since I started work on Xen. 14 Months since I released v1.

So, it's been a long time. 2009 wasn't great (losing my job, with the writing being on the wall for nearly 5 months, being out of work for another 4+ months... Moving to the other side of the world).. On the flip side, Fort Zombie was released, xen was mentioned on the XNA blog, it broke 5,000 downloads and - most surprisingly - someone took the time to write a set of *huge* russian xen tutorials on!

But truth be told, the personal things have had an effect. It's a funny thing, but in 2008 while my job was going really well I seemed to have all the time (and motivation) in the world to work on fun, complex technical and design problems.

Fastforward to 2010.

I'm now working longer hours, doing much *much* more technical work (the last few weeks, for example, I've been neck deep in low level PS3 SPU programming).
And it's only going to get more intense. GDC looms large, and now I'm over the early months chances are I'll be diving even deeper.

So the creative spark has gone from my work. No longer making games, I'm making tech. Supporting it, designing it. Full time.
The technical void which xen filled is now overflowing.

So, getting home at 8pm, from a long day writing SPU intrinsics and debugging memory allocations, I've been finding it *very* difficult to motivate to work on Xen.
I want to be clear I'm not canning the project, but I want things in perspective. I need to figure out my balance, as it's not right. It's going to take some time.

I'm *more* than happy for others to work on Xen, and I've been toying with the idea of opening up to everyone and anyone to go wild - full access.
I've always been more than happy to accept additions / changes / features for Xen - assuming they fit the project. No one really has contributed. Some have tried (but I felt were wildly inappropriate).
Now, however, with things the way they are, I'm quite willing for others to take a far more active role. Be it features, maintenance - or even PR (something I have let slide - and it shows in the visitor / download numbers). Although I do have the number 1 search result on youtube for 'Particle Systems' (!)


So. Food for thought, I hope I have communicated how I feel.
Xen has always been my experiment, to test ideas and flex some technical muscle on interesting challenges / ideas. I don't want to see it die, I still use it often to experiment and mess around with simple game ideas. But I feel given my current situation, without doing something that's exactly what will happen.


As always, feedback is highly appreciated :-) Even if I take a little while to respond

Jan 15, 2010 at 9:31 AM

Hi StatusUnknown,

I totally understand how you may feel as it is hell difficult to share time between what working for a living and for fun...

The job you've done on Xen is just amazing and I'm sure a lot of people will share the same feelings as I do.

Now, I believe that if you want Xen to still improve, your point in opening its development to other developers is a must have but it can only work out if you keep yourself motivated and dedicate enough time to manage a team of developers instead of diving into the code as you used to do :)

I'm more an API consumer than producer due to my limited math skills (I have to google around quite often to remember the basic vector maths to give you an example :p) but I would for sure participate to the effort to maintain/PR/improve Xen if you still lead it. More than your brain and fingers, we need your heart, vision on the project... Once there, building a team that will improve Xen shouldn't be that hard.

I'm currently using Xen in my main game project and I'm still in a position where I can use another graphics library to ease my life and focus on the core gameplay mechanics, and to be totally honest, how good I think the library is, if you decided for the reasons I would totally understand to leave the project aside letting some other developers working on it, I'd highly consider changing to something else.

As for any project, if you want it to succeed, you need someone at the top that is strongly motivated and passionate by what he's doing whatever his objectives may be (financial, recognition, helping others...) and I think the first thing you must get clear in your mind is what YOU, as a person, can and want to do with Xen ;)


Jan 16, 2010 at 2:15 AM
Edited Jan 16, 2010 at 2:15 AM

I appreciate your comments :-)

I'm going to have a think on things over the weekend.
It's interesting you mention what I want xen to be.

If anything, xen is what I wanted it to be. My goal was to produce a fairly simple, compact and clean library (there is some rather needless stuff in there, but never mind that).
The main focus being dealing with the nitty gritty, error prone stuff - wrap it up and make it fast as I can - to simply provide something that you can do very rapid prototyping with. Not so much a hard core, be all end all engine (there are more than enough of those ;-). Do the basics right and hopefully things will work well.
The times when I've needed to rapidly prototype a shader idea, geometry test, etc, have all been pretty good cases of this.

 I do have ideas that go well beyond xen, but realistically even directX 11 would probably be a challenging fit, let alone XNA. (eg, dumping HLSL entirely and doing something like converting MSIL into shader code). And then there is the extreme theoretical stuff above all that :-)

I will also say I've lead a community project in the past. A long time ago I lead the Half-Life total conversion 'Uncrossable Parallel'. Not so much by choice. Basically, it's an exceptionally difficult thing to do, and ultimately we failed fairly spectacularly.

Jan 16, 2010 at 10:07 AM

I'd have to say that as far as I can see XEN does exactly what it says on the tin, its a graphics API and it performs that extremely well.

Other than support and the occasional bug I can't really see any glaring omissions from the API that prevent it from doing what you would expect the API to do. Anything else that could be added to beginning to move into the implementation of specific graphical needs.

Whilst I'm sure no one would complain if people added in prerolled classes that would do cool graphical effects for them the ability is already there to do pretty much anything the sort of consumer for this API would need anyway if they are willing to work at it a little.


Jan 25, 2010 at 10:54 AM

Hello StatusUnknown
 I'm sad to hear that your creative spark is being work drown..
Thank you for developing this awesome framework. It really is a great piece of software and a great help.

We are starting to use it in our game project and we've learned a lot just from reading the tutorials alone.

(Word from our graphics guy) PS: You rock man!

Thanks and best of luck for you

Jan 25, 2010 at 7:48 PM
Edited Jan 25, 2010 at 7:48 PM

Thank you for your comments :-)

I'll just say that I will continue to support Xen. I simply no longer have the time / energy to continue developing and expanding it.
Although I don't feel so bad, as I'm comfortable with the current state of the API.

Thanks again :-)