Godot: Allow infinite lifetime particles

Created on 11 Apr 2018  路  9Comments  路  Source: godotengine/godot

I'd expect to be able to set particle lifetime to zero and have them never die. This relates to the fact that many parameters that shouldn't have a max value are arbitrarily capped e.g. Lifetime at 600, Damping 100, etc ...

discussion feature proposal rendering

Most helpful comment

I'm not sure this is possible given the current setup. I though it might be, but now I don't think so.

For now, as a workaround, you can set the lifetime at 1,000,000,000 seconds which is equivalent to about 317 years. If your game needs to run for more than 317 years, then I am truly sorry.

All 9 comments

You can't keep generating particules infinitely without make them die, so lifetime cannot always be infinite.
For fixed-count particles however (for example 50 orbs rotating in a circle, or grass), that would be relevant.

Is there a particular reason why those parameters are capped as they are? It might not be arbitrary.

If infinite-lifetime particles are allowed, then there should also be no limit to finite-lifetime particle lifetimes.

Looks like the above PR might've fixed it.

If not, maybe setting lifetime to 0 should make it infinite? 0 lifetime doesn't make much sense anyways.

@KoBeWi with the current system for particles it doesnt make sense to have infinite lifetime for particles. However, it would be nice to implement a new feature in conjunction with fixed-count particles. As Zylann explains above.

Is this still being considered for one-shot particles? I'm using those e.g. for vegetation. While the maximum lifetime should realistically never be reached, it still feels a bit hacky.

For static objects you should be using a MultiMeshInstance, not particles.

That being said, someone should still make a PR for infinite life particles.

I'm not sure this is possible given the current setup. I though it might be, but now I don't think so.

For now, as a workaround, you can set the lifetime at 1,000,000,000 seconds which is equivalent to about 317 years. If your game needs to run for more than 317 years, then I am truly sorry.

1 billion seconds is actually 31.7 years, not 317. If Godot supports 64-bit timestamps, we could make it run for about 292,277,000,000 years. If you encounter an issue with this time limit, please file a bug report in whatever bug tracker exists in the future. If bug trackers do not exist in the future, god help you.

My bad. If 31.7 years is a dealbreaker we can always reopen the issue. :laughing:

Was this page helpful?
0 / 5 - 0 ratings