Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FMOD web support (HTML5) #50

Open
Waissi opened this issue Dec 13, 2020 · 19 comments · May be fixed by #210
Open

FMOD web support (HTML5) #50

Waissi opened this issue Dec 13, 2020 · 19 comments · May be fixed by #210
Labels
godot4 This pull request or feature is meant for Godot 4

Comments

@Waissi
Copy link

Waissi commented Dec 13, 2020

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
godotengine/godot#44076
Is there a plan to update the SConstruct file so we can export html using your Fmod plugin?
Cheers

@CedNaru
Copy link
Member

CedNaru commented Dec 13, 2020

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
Copy link
Member

CedNaru commented Dec 13, 2020

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.

@Waissi
Copy link
Author

Waissi commented Dec 13, 2020

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 ;)

@CedNaru
Copy link
Member

CedNaru commented Dec 13, 2020

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.

@piiertho
Copy link
Member

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

@2shady4u
Copy link
Contributor

2shady4u commented Apr 9, 2021

@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
Copy link
Contributor

2shady4u commented Apr 9, 2021

Getting these kind of errors now:
image

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

@bitbrain
Copy link
Contributor

bitbrain commented Nov 3, 2021

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

@Christovftw
Copy link

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?

@CedNaru
Copy link
Member

CedNaru commented Jan 25, 2022

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.

@2shady4u
Copy link
Contributor

2shady4u commented Jan 25, 2022

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

@bitbrain
Copy link
Contributor

bitbrain commented Mar 10, 2022

Might be related: WebAssembly/wasi-sdk#209 it looks like the -shared flag is not supported (yet)

Here is the issue discussion on the llvm repo itself: llvm/llvm-project#42738

Any way we can maybe circumvent that?

@bitbrain bitbrain changed the title Html5? FMOD web support (HTML5) Mar 10, 2022
@bitbrain
Copy link
Contributor

bitbrain commented Jul 27, 2022

Once #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.

@RafaelVidaurre
Copy link

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

@bitbrain
Copy link
Contributor

@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

@piiertho
Copy link
Member

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

@safernan121
Copy link

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!

@bitbrain
Copy link
Contributor

bitbrain commented Oct 2, 2023

Looks like there is some progress on godotengine/godot-cpp#1247 and we can soon re-attempt this.

@bitbrain bitbrain added the godot4 This pull request or feature is meant for Godot 4 label Oct 9, 2023
@bitbrain
Copy link
Contributor

bitbrain commented Dec 3, 2023

I will do an attempt at this in the following week after #181 gets merged.

@bitbrain bitbrain linked a pull request Apr 6, 2024 that will close this issue
5 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
godot4 This pull request or feature is meant for Godot 4
Projects
None yet
Development

Successfully merging a pull request may close this issue.

8 participants