fmod-gdextension icon indicating copy to clipboard operation
fmod-gdextension copied to clipboard

FMOD web support (HTML5)

Open Waissi opened this issue 3 years ago • 19 comments

Hi, The Godot team announced that they added GDNative support for html builds: https://godotengine.org/article/dev-snapshot-godot-3-2-4-beta-4 https://github.com/godotengine/godot/pull/44076 Is there a plan to update the SConstruct file so we can export html using your Fmod plugin? Cheers

Waissi avatar Dec 13 '20 10:12 Waissi

Hi, I have no knowledge about wasm so I might say something wrong.

For a GDnative lib to run in a browser, I guess you need to compile them with the WASM target which might be possible by updating the scons. The main issue is that our FMOD bindings use another dynamic library, FMOD itself. So at first glance, I think it won't be possible unless FMOD provides us a lib compiled for that platform. Also from what I see in this Godot PR, you can only choose one option between enabling threads or enabling Gdnative. But FMOD uses several threads so we would need both to work on browser.

I'll check that more in detail when the Godot 3.2.4 is officially out, hoping there is some doc about it.

CedNaru avatar Dec 13 '20 16:12 CedNaru

Ho so it seems that's FMOD got a HTML5 target already HTML5 Fmod

I guess I never paid attention to that. So it might be possible. Well, the hell of dynamic linking with HTML5 is waiting for me it seems.

CedNaru avatar Dec 13 '20 16:12 CedNaru

Well, I am sure I have even less knowledge about all this :D However, here is one thing I know: Fmod has an htlm5 target indeed, and there are Fmod plugins for game engines such as Unity and Defold that run pretty well on html5 (and afaik Unity runs in a single thread). That being said, thanks for the time involved and good luck with the linking hell ;)

Waissi avatar Dec 13 '20 16:12 Waissi

I'll add that to the list of tasks for the 2.0 version. Like said in the other issues, we are already busy with another project right now. So it's going to take time before we add that export.

CedNaru avatar Dec 13 '20 16:12 CedNaru

I think this is less a priority than fmod nodes. I'll look at godot-cpp modifications on HTML5 when we get less work on Godot kotlin

piiertho avatar Dec 14 '20 13:12 piiertho

@YoannClaude @CedNaru @piiertho I'm currently working on trying to get a HTML5 build up and running in this branch: https://github.com/2shady4u/fmod-gdnative/tree/web-export

However, I'm running into some problems to link the FMOD libraries: https://github.com/2shady4u/fmod-gdnative/runs/2305156716?check_suite_focus=true

Current errors:

wasm-ld: error: /home/runner/work/fmod-gdnative/libs/fmod/javascript/core/lib/bitcode/fmod.bc: machine type must be wasm32 or wasm64
wasm-ld: error: /home/runner/work/fmod-gdnative/libs/fmod/javascript/studio/lib/bitcode/fmodstudio.bc: machine type must be wasm32 or wasm64

Any help is appreciated + I might open a preliminary PR for this Also the utopia-rise/godot-cpp will have to be updated to support this!

2shady4u avatar Apr 09 '21 10:04 2shady4u

Getting these kind of errors now: image

(recompiling with -fPIC is impossible since I can't recompile the FMOD libraries myself)

2shady4u avatar Apr 09 '21 13:04 2shady4u

Any news on this considering that we recently upgraded to the latest FMOD version?

bitbrain avatar Nov 03 '21 06:11 bitbrain

Would also really like to use this integration with godot but I need to target an HTML5/wasm build, any news on if this will be available?

Christovftw avatar Jan 25 '22 13:01 Christovftw

Hello, We have no date for that feature as it's not a priority (among our different projects, not just the FMOD plugin). Most likely we will wait for Godot 4 as the whole GDNative system will be changed and probably the way we export too. We have no experience at all when it comes to HTML5 so we better not take time to investigate a method that will likely change in the next 6 months as Godot 4 become stable. Of course, if someone is willing to do it themselves and PR it for the current Godot 3.x, we will accept it.

CedNaru avatar Jan 25 '22 14:01 CedNaru

Would also really like to use this integration with godot but I need to target an HTML5/wasm build, any news on if this will be available?

I've updated my testing branch https://github.com/2shady4u/fmod-gdnative/tree/web-export to the latest master of this repository and I've tried to compile the plugin for web (again)

Unfortunately the same issues seems to persist 🤷 As before, I have no idea how to fix them

If you are feeling adventurous you can check out my changes in that branch

2shady4u avatar Jan 25 '22 15:01 2shady4u

Might be related: https://github.com/WebAssembly/wasi-sdk/issues/209 it looks like the -shared flag is not supported (yet)

Here is the issue discussion on the llvm repo itself: https://github.com/llvm/llvm-project/issues/42738

Any way we can maybe circumvent that?

bitbrain avatar Mar 10 '22 13:03 bitbrain

Once https://github.com/utopia-rise/fmod-gdnative/pull/123 is finished, we might be able to finally address this for Godot 4 - GDExtension does not have HTML5 support yet since Godot 4.0 will not support browsers properly but it definitely will in future.

bitbrain avatar Jul 27 '22 20:07 bitbrain

@bitbrain do you think this will work for Godot 3.5 HTML5 eventually? Or is it the plan to skip 3.5?

RafaelVidaurre avatar Aug 10 '22 08:08 RafaelVidaurre

@RafaelVidaurre my hope is that after we get it working with Godot 4.x that we can apply some bits to the Godot 3 branch to get it working. The main hurdle currently is that Godot 4 does not support HTML5 yet (as it requires GLES3 for this) and currently only Vulkan Desktop and Vulkan Mobile is supported in Godot 4.alpha13

Perhaps somebody might be able to resurrect the Godot 3 compatible branch by @2shady4u and have another try with Godot 3.5

bitbrain avatar Aug 10 '22 12:08 bitbrain

On my side I’m experiencing troubles with the cmake file, so nothing is recognise in Clion

piiertho avatar Aug 10 '22 14:08 piiertho

I was wondering what's the current state of this issue for Godot 4.x Any breakthroughs to make the html5 export work with fmod?

Thanks in advance!

safernan121 avatar Apr 05 '23 06:04 safernan121

Looks like there is some progress on https://github.com/godotengine/godot-cpp/pull/1247 and we can soon re-attempt this.

bitbrain avatar Oct 02 '23 12:10 bitbrain

I will do an attempt at this in the following week after https://github.com/utopia-rise/fmod-gdextension/pull/181 gets merged.

bitbrain avatar Dec 03 '23 13:12 bitbrain