This one seems like a pretty basic question, but I haven’t found a proper topic neither on this forum nor in the documentation.
I’m making a game in Godot, using utopia rise’s FMOD integration. I see from their low-level API that I can get a reference to an instance of a one-shot event, which makes me wonder: what exactly is a one-shot event and how does it differ from one that is not one-shot?
I thought one-shot events were supposed to be handled by FMOD entirely, but the fact that the API lets me get a reference to the instantiated event makes me think there’s no real difference to non one-shot ones.
As far as the FMOD Engine is concerned, an event is a one-shot if it is guaranteed to terminate without intervention in bounded time after being started, i.e.: an event that does not contain logic markers capable of holding the playback position in place or sending the playback position backwards to an earlier point on the timeline.
Conceptually, a one-shot event is one that can be played in “fire and forget” fashion, i.e.: you can call it with Studio::EventInstance::start then immediately call Studio::EventInstance::release and trust it to end on its own and be cleaned up automatically, without your having to think any more about it.
In most game projects, the vast majority of events are one-shots, due to being sound effects of fixed duration that play once each time they’re triggered by some action or event occurring in the game. Non-oneshot events are typically looping music and ambiances, as well as looping sound effects associated with in-game objects that make noise continuously, such as engines and creatures.