Ah, I must have forgotton to switch the Dispose with the new cache I use, before I used PartCache which did have a Dispose function, I will release a patch as soon as I can, as well as a fix for the other errors.
So i thought i would see if that is really true. As a creator of Collideable Particles Module i decided to see both positive things about your and my module, and also the negatives of them.
First i thought of benchmarking both.
So, for the benchmarks i tried to make the particles behave as close as it was possible to eachother. While doing the benchmarks, any performance options could be enabled, only if it didnât degrade the quality or looks. So options like frustum culling or DistanceThrottling could be enabled (DistanceThrottling had to be adjusted to not be too much visible).
Benchmarks:
(Collisions Enabled)
VortexFX - 50 FPS (700 particles)
Collideable Particles Module - 90 FPS (6600 particles)
Video Comparison
VortexFX
Collideable Particles Module
(Without Collisions)
VortexFX - 30FPS (2000 particles)
Collideable Particles Module - (17 000 particles) 55FPS when steady, 40FPS when moving camera, 35FPS when all particles are visible
Video Comparison
VortexFX
Collideable Particles Module
Ok, it probably now looks like itâs rigged, but remember, that i used techniques like frustum culling, distanceThrottling and Parallel Processing not available in VortexFX. Which greatly help with performance. Even i was shocked that the difference is so big. (Also remember that i could have messed up while setting the VortexFX properties, as it could probably add to the lag.). Tho in tests where there are many particles next to each other instead of spread out in large distances the max of particles my module can simulate without lag is about 3 thousands.
But hear me out, it doesnât mean that my module is better. While my Module is Faster, his module is way easier to use.
His module can change transparency, color, material, rotation, flipbooks of particles
And my module can change⌠only position???
Ok, maybe thatâs not entirely true, as my module can indeed change those, but it is not as easy as just changing a property in VortexFX.
You need to make your own script for changing all of these in my Module. Want to change Color of particle? Script it. You want to chage material of the particle? Script it.
While in VortexFX all you have to do is just change a single property. Want the particle to react to audio? Simple, just change a property. You want it to Emit light? Again simple, just change a property.
And while it might seem like: âWell, it is probably more worth it to get a module that is harder as it gives you more FPSâ, itâs not as easy as it sounds, as my module uses Parallel Processing, some users had problems like trying to play a sound when a particle collided, but couldnât do it because it was in parallel state so it errored. Or making the player take damage on collision, but again, it was running in parallel state so it also errored. There are of course workarounds for this, but most of the users didnât even know what parallel luau is.
Ok. So letâs Summarize this:
My module is faster and uses various optimization techniques, particles can collide with eachother instead only with the world, but it is also harder to use. Setting up particles may take more time. Requires more workarounds. It is also centered more on collisions.
VortexFX is more artist friendly. It has a many many properties, each doing itâs own thing. Very highly customizable, beginner friendly. It is also centered more on the Artistic Vision.
So if you are not going to be simulating crazy amounts of Particles, VortexFX might be a better choice.
I will probably recommend VortexFX under my post so people can pick which one is a better option for them.
Remember that this is not a Rivarly. I am kinda curious what will VortexFX look like in future.
Also if the Benchmarks are wrong, please correct me.
Also i will probably make more benchmarks later, as the only benchmark is for snow, while the VortexFX might be slightly faster in other cases.
This is a great benchmark, I really enjoy how youâve actually spent the time to test the module to itâs fullest extent.
While I agree that VortexFX definitely isnât as optimized as Iâd like it to be nor as optimized as Collideable Particles Module, every update I try and optimize something that wasnât before, like all good things, VortexFX will get better with age and updates.
Also, if you want Iâd really like to see if we can message on Discord or some other platform, Iâd really like to see if you have any ideas for getting VortexFX to itâs most optimized state.
If you want you can, go ahead and friend me at âdistinguished_duccerâ if youâd like.
Maybe iâll add you later. But for now, first thing that you should do to make it more performant is using the BulkMoveTo function on workspace, as it makes updating the visual positions faster. You basically put all the referenceObjects of particles to the list, and their position that they whould be in. It makes it around 1.5x-2x faster.