All posts in TimelineFX Editor

I just completed a refactor of the TimelineFX library so it’s further along in terms of stability of code, ie., less chance of me making a lot of breaking changes. I mentioned in the last post what I’d be working on but here’s what I did: Implemented my memory allocator for much cleaner memory management. A large memory pool is now allocated on initialisation and then sub allocated from. If the pool runs out of space then a new pool is automatically added. This of course can be overridden if anyone wants to use their own allocator instead. I did Read more

New alpha version released powered by a new renderer! So last blog post I mentioned that I wanted to refactor the renderer I use and also write a memory allocator and both those things are now done! It was a lot of work the last 3 months but I’m really pleased with the way things are going.   Zest Pocket Render So I did a complete rewrite of the renderer (based on the previous one) and also re-wrote it in c which I really enjoy using. Zest is a very minimal but flexible renderer which currently focuses on rendering sprites Read more

Just uploaded a new Alpha version of the editor, which doesn’t have too many new features but does have a huge amount of new stuff going on under the hood. Fully implemented SIMD for updating particles I’ve spent a long time thinking about how I would go about doing this ever since taking on the rewrite of TimelineFX from the beginning. Being relatively new to C/C++ and SIMD in general, it has been a step-by-step process to get to this point. In the last blog post I made, I talked about how I made things multithreaded, and now I’ve added Read more

A long overdue post, but rest assured, lots of work has been done over the last couple of months! Optimizations of the TimelineFX Library Firstly, for most of December, I did a big refactor of the TimelineFX Library, not just to optimize it but also to open the door for a lot more optimizations in the future. This had two main steps: I transitioned all the data for updating effects, emitters, and particles to “structs of arrays”. Without going into too much technical detail, this makes it a lot easier to parallelize updating the particles. The problem with storing all Read more

I just uploaded a new version of the TimelineFX Alpha with a few new features and more bug fixes. Here’s the main highlights: Cylinders I added 2 new emission types for 3d effects. The first is cylinder, which is exactly as you’d expects – allows you to spawn particles in a cylinder shape. Also worth pointing out that making the cylinder have 0 height you also have a ring emission type. Icospheres Icosphere is similar to an ellipse but with the icosphere you can spawn in a grid with up to 5 subdivisions to give a unique effect. An icosphere Read more

For the last month and a half since the last blog post where I mentioned that I was strongly thinking about adding 3d particle effects to timelinefx – that’s exactly what I’ve been doing. It’s been a lot of fun mixed in with a lot of head scratching as I wrap my head around 3d math again (it’s been a while since I did any 3d stuff) but I’m mostly there with it. I still have a few things to iron out with it and would like to create an example library to go with the next alpha update but Read more

A lot of work has been done since the last update in March and most of it wasn’t directly related to the editor it was more with the TimelineFX library (available here on github). I really wanted a better solution for how effects are updated and drawn. The way that I was doing it was that you have a particle manager, and to this you add all effects, which then spawn all the particles and these are all updated by the particle manager. The problem with this is that all the particles are basically mashed together in the order that Read more

It’s been a very busy few weeks working on 2 big new things for TimelineFX – a compute shader and a new motion randomness alorithm that uses Simplex Noise.   Particle Compute Shader I really wanted to get this out of my system as I always wanted to see if I could make TimelineFX effects run in a compute shader for maximum speed and free up the CPU. This would be a big plus for anyone wanting to incorperate the TimelineFX library into their games and other projects. It took a lot of head scratching as to how I’d make Read more

I just uploaded a new Alpha version with some more bug fixes plus a new importer to import effects from other effect libraries. This will only import effects from the current alpha version (not the old version eff files) but I may well add an importer for the old version as well at some point. The new importer should be a lot more useable then the old version. You can now drag effects and emitters individually or you can import all if you wish. Plus you can also drag over shapes individually as well if needed.   Full list of Read more

Just another round of bug fixing and streamlining, some of the highlights: Folders are back! One of the few remaining features from the old version that wasn’t in yet are folders, so it’s now a little bit easier to organise your effect libraries. Clicking and Dragging effects, emitters and folders. You can once again click and drags things in the library tab to re-order, move and copy emitters and effects about. Copy and paste groups of graphs Rather then have to copy graph data one by one you now also have the option to copy all Global/Property/Base/Variation or Overtime graphs Read more