Hi! First time post here. I’m a game sound designer and composer and use FMOD professionally in my contract work. I’d love to use GDevelop but still be able to use my main power tools. Has anyone tried integrating FMOD into GD? If not, how big of a feat would it be to attempt it? If this is way over the scope of the normal user, then this is a feature request!
FMOD is a AAA-level audio middleware enabling sound designers to create super complex audio behaviors and do things like dynamic mixing and interactive music.
FMOD is very powerful, but unfortunately its license is incompatible with being included/redistributed with an open source engine directly.
While there is a “indie” license available that makes it cheap (or free) to use in a finalized game, the sdk isn’t source available from what I can see, so it couldn’t be included with the engine itself.
(Edit: I did further digging, and the FMOD free license explicitly restricts it’s SDK from being included in a game engine https://www.fmod.com/legal
This EULA grants you the right to use FMOD Engine, being the runtime engine for
adaptive audio playback, without payment, for personal (hobbyist), educational
(students and teachers) or Non-Commercial use, subject to the following:..
ii. FMOD Engine is not distributed as part of a game engine or tool set;
...
For your question on if someone has integrated FMOD with their game before: No, not that I am aware of.
For the question around complexity/how big a feat it would be for you to include it with your own game: You would need to be able to implement the code for its html5 version into a javascript event, including all related libraries. Then you would need to build out some lind of listeners and other javascript events to interact with it after that initial one loads it into memory.
Is it possible? Probably. Is it very complex? Extremely.
FMOD has support for the web, so it should be possible. It will require someone with a lot of experience with JavaScript & GDevelop to integrate it into GDevelop though:
Requires usage of JavaScript
Requires knowledge of embedding a wasm file in JavaScript
Requires knowledge of the GDevelop API
Requires knowing the internals of GDevelop resources (to pass audio resources to FMOD, allowing it to load them)
Requires being able to understand how to translate the API of the FMOD documentation written for C/C++ in JavaScript (and generally knowing how to use a c-style API)
Optionally, knowledge of WebWorkers to run FMOD in another thread as to not completely destroy performance