Alpha 6 Released!

As mentioned in the previous update I had been doing a lot of work on my renderer that I’m using to render the particles and the editor. This month I finally got back onto the editor again and did a huge amount of work on stability and a few quality of life features. You can grab the latest version of the alpha here! As part of my bug hunting I recreated some of the old effects from the very first libray I created in the old version of the editor. You’ll find that library in the download as well.

Some of the bug fixing will likely continue into this month but I’d like to concerntrate on adding more new features into the editor that I’ve been planning so look out for that. My goal for this year is to commit at least one code change every day of the year!

Some of the main highlights of the update other then it hopefully being a lot more stable now are:

Copying and pasting graphs
I’ve completed an initial implementation of copy and paste for graphs. I would like to expand on this so that you can also copy multiple graphs as well but will save that for a future update. Also of use is the ability to click and drag from the copy button like so:

Zooming and Panning graphs
Navigating around a graph could be a little bit fiddly so to help I added a zoom and pan button to help with that. Just click and drag to make it happen:

Spinning Dials
Nothing major this, but just a little extra detail – the angle icon next to the spin attributes will now spin at the current speed they’re set at:

C++ Libraray Updates
I’ve been busy removing dependencies for the c++ library (which you can find on git hub here) and am happy to say that it no longer as any dependencies at all. Some of the things ive done:

  • Made my own hash table storage to replace the robin_hash dependency. I’ve use this a whole bunch to improve stability in the editor as well.
  • Created my own package manager to replace the dependency on miniz. As a result of this we now use the new .tfx file format to save and load effect libraries. The editor can still load zip files though if needed.
  • Less use of the std library, for example created my own string builder to avoid having to use std::string, used fopen from c rather then use ofstream/ifstream etc. Some of this isn’t that necessary but it was useful to learn different ways of doing things.

You can check on github for the full list of recent changes.

A whole bunch of stuff other stuff!
Here’s the whole list of editor changes:

* Lot’s of stability updates to hopefully improve performance and crash bugs.
* Emitters and effects now remember the graph they were editing.
* Fixed an issue with cloning emitters not renaming properly.
* Fixed an issue with pasting an emitter into a sub effect.
* Added the shape name that the emitter is using on the properties tab.
* Name of currently playing effect now shows in status bar, including if you’re previewing a history item.
* Option to only play selected emitter now works correctly.
* Navigating the library with arrow keys has been improved when navigating sub effects and emitters.
* Updated to latest version of ImGui.
* Saving library properly updates the tab label now.
* You can no longer import the same shape name twice to stop any conflict issues.
* Loading a new shape from the shape popup on the properties tab now also applies the shape at the same time.
* Effect will now keep looping properly after making a property change.
* Fixed a crash when particles exceed the limit.
* Improved tool tips to show when spin won’t make a difference because Align to direction is set.
* Option to fill ellipses now exists, plus areas can also only draw on edges as well.
* Grid emission properties now hide if grid emission is not selected.
* Fixed crash bugs when restoring effects from the bin.
* Added all Add effect/emitter type menus to the shape tab context menu
* Spin dials in the attribute list now animate to show spin speed.
* Increased the amount that you can zoom out on the graphs.
* Added 2 new buttons the graphs that allow you to click and drag to zoom and pan.
* Added copy and paste for graphs. You can also click and drag the copy button onto another emitter in the library list to quickly copy a graph.
* Added notifications that can pop up in the bottom right of the window to alert to various things.
* New emitters now have Random Angle 360 set by default.
* The graph node context menu is now more reliable (sometimes it would disappear before you moved your mouse over it).
* Graph wave creators don’t use log power for sliders anymore – still needs tweaking though.
* Added auto save recovery file incase the program crashes. Will auto load if the program failed to close properly.
* Added new .tfx format to remove the dependency on zip files in the c++ library, zip files can still be used in the editor though.
* Fixed bug when cancelling save as dialog kept the popup modal on screen.
* Increased the timeout time that emitters would use to remove themselves from the particle manager when spawned particles were 0.
* Moved the image handle coords to below the image for more useability.