I’ve been working on some particle emitters for my game and I’m bothered by the fact that the level of graphics quality controls the rate of particle emission. On quality level 1, the particle emitter’s rate isn’t even remotely close to what you’ve set it at.
The only solution I’ve found to this issue so far is to duplicate/spam the same particle emitter within the part. Multiple low emitters match the rate of a single high particle emitter, but I’m worried that doing this will result in significant performance issues.
Does anyone have a different solution or a completely new method to go about fixing this problem?
check this out maybe you could check #resources:community-resources as there are many particle module to make custom particle so maybe any of those module could give what you want
this is and example of a module
I think you’ll just have to accept that this is how low graphics players will see it. At least they still see something. I was in my game the other day asking someone how they liked my waterfall, they said ‘what waterfall’. Apparently the lowest setting completely turns off beams! But… the reason these players use this setting(usually) is because their device won’t be playable otherwise. You can’t really try to force more particles on these low end devices, it would only lag them and drive them away.
If someone’s PC/device has to render particles on the lowest emission settings just to play your game, adding more particles is counter intuitive since that’s just even worse for their already bad PC.
Are your particle effects really that important for gameplay? If they’re just a visual effect and don’t affect anything, leave them.
You’re right but I should have clarified this is only a game made for me and one other person. The particle effects are definitely integral. Either way, thank you for the helpful response.
It’s been a long time but I did some testing with a tempo counter. The rate of a particle emitter on any given graphics level is calculated as:
Emitter.Rate * CurrentGraphicsLevel / 10
So the easy fix to make your emitter equal speed on all graphics levels is to do:
local GraphicsLevel = UserSettings().GameSettings.SavedQualityLevel.Value
local EmitterRealRate = Emitter.Rate --Have to track this so you're not rereading the new rate you set
Emitter.Rate = EmitterRealRate * 10 / GraphicsLevel