Flint 3D plans

Posted on

I haven't done much work on Flint since April. That's now changing since the large job I was working on is complete and I have some time to myself again. I thought I'd outline the plans for the next major version of Flint.

The next major version will do 3D particle systems as well as the 2D systems it currently does. There will be some architecture changes that will benefit the 2D version as well as the 3D version and then there's a lot of work on implementing the 3D version. Much of this work is now done, and can be checked out from the three_d branch of the code repository.

2D changes

The main architectural change involves completely separating the renderer from the rest of the system. Making the emitter independent of its renderer allows a single renderer to display multiple emitters, and multiple renderers to display the same emitter.

I have also separated the update tick from the emitter so that developers can supply their own update tick if they want to (from systems like the GoEngine) and also can update the particle system at a different rate from the frame-rate. The current system, where Flint provides an update tick that matches the frame-rate, is still the default.

Both these changes are already checked in to the branch.

3D implementation

The 3D implementation involves converting the core system and the various behaviours to 3D. This is now almost complete - a few behaviours remain but these relate to the mouse position and I haven't decided how, or if, to implement these (specifically how to relate the mouse's 2D position to the 3D space). The code is checked in to the branch but still needs to be optimized for speed.

The 3D implementation also requires renderers. My goal is to have a set of stand-alone renderers, plus a set of renderers for each of the major 3D systems. The stand-alone renderers are part done - the current versions work but lack many desirable features. I'm working with the Away3D team on developing renderers for Away3D and hope to work with the Papervision and Sandy teams also. If I can't get collaboration from them it will take a little longer to create renderers for these platforms since I'm not yet as familiar with them as I need to be to complete the work.

There are a couple of 3D examples checked in to the branch if you want to see it in action and have some code to start playing from.


Also, the documentation needs a lot of work.

So, that's the plan. I hope to have this complete sometime in August, and may move it over to trunk before then if it's stable and the 2D stuff in particular is thoroughly tested.

Finally, I'll be talking about Flint at Flash on the Beach in September. If you're available, come along. It's the best Flash conference I've been to and I'm very pleased to be speaking there for the first time this year.

Share this post or a comment online -

Also in the collection Flint Particles