So in the last update back in January 2019 I’d made the decision to redevelop TimelineFX in C++ from scratch and that’s basically what I’ve been doing for the last 18 months.
That meant that I had to learn C++ as I’d never coded in it before and I’m happy to say that I’ve actually enjoyed it. Of course it hasn’t all been smooth sailing and Visual Studio has its quirks but overal it’s been fairly straightforward, more so then I expected.
I spent the first few months learning the basics following Accelerated C++ by Andrew Koenig and Barbara E. Moo and then coded a few small things and converted some code over from some Blitzmax projects.
I then had to decide what I was going to use as my main rendering library. I only needed 2d for now but wasn’t sure if I should go with an existing library or try coding my own. In the end I decided to do my own as I thought it’d be a good learning experience to go even deeper into C++. Not only that but I really dived into the deep end and made it with Vulkan. A few months later I had a pretty decent 2d graphics library which I’ve been refining since.
The nice thing about that is that I’ve got a much better idea about working with the GPU and hopefully that translates making better effects by doing a lot more things with shaders and post processing.
The next thing I had to decide on was what GUI library to use. I was tempted to make my own again but thought that that would be just a little bit too time consuming. Thankfully I found Dear ImGui and I have to say that it’s been amazing to work with. Previously I’d used wxWidgets which was ok but with ImGui it feels like I have much more control and scope for customising with what I need, and it will be a lot easier to keep the look consistant across Mac and PC. Also an “immediate mode” gui has made a lot more sense to me.
So currently I’m working to achieve feature parity with the current version of TimelineFX and I’d say that I’m probably about 75% of the way there, the main thing I have left is being able to export to spritesheets.
Once that’s done I aim to get a beta out on Windows and then get it compiling on the Mac. From there I can look forward to adding brand new features again.
There’s already some nice new features just by virtue of working with ImGui such as all tabs being dockable/resizable etc. Plus some nice quality of life features such as the first node on graphs being editable via a draggable input field as sometime that’s all you need. It saves having to always go into the graph everytime.
Hopefully will have more news a lot sooner next time in the run up to the beta.