Tanz0rz / haxe-fmod

Haxe 4 FMOD integration for Windows and HTML5 deployments
https://tanneris.me/haxelib
MIT License
17 stars 6 forks source link

[Enhancement] HashLink compatibility #19

Open SomeGuyWhoLovesCoding opened 4 months ago

SomeGuyWhoLovesCoding commented 4 months ago

So, you might be wondering that fmod is only supported on hxcpp. Well, I'm curious to see if you would add hl support to this haxelib.

Tanz0rz commented 4 months ago

The way this is currently designed makes HashLink support very challenging. The original implementation supports two languages explicitly:

C++ (here) Javascript (here)

This library needs to be refactored to only use C++ and Javascript bindings so that the entire implementation can be done exclusively in Haxe. The Haxe-only design was my original plan when I started development on this, but I couldn't figure out how to do it and ended up writing the tool natively in each language. Extending it and changing it is very hard due to this design. Someone did come by a few years ago and attempt to add HashLink support, but the way I wrote the C++ code did not work at all with the HashLink compiler and we eventually gave up.

I plan to refactor this someday, but someone else can jump in if they want and I will help in my free time.

The good news is the tool still works well for web builds (what my team and I use exclusively now). Here is one of our games with the audio powered entirely by haxe-fmod: https://www.newgrounds.com/portal/view/893426

SomeGuyWhoLovesCoding commented 4 months ago

The way this is currently designed makes HashLink support very challenging. The original implementation supports two languages explicitly:

C++ (here) Javascript (here)

This library needs to be refactored to only use C++ and Javascript bindings so that the entire implementation can be done exclusively in Haxe. The Haxe-only design was my original plan when I started development on this, but I couldn't figure out how to do it and ended up writing the tool natively in each language. Extending it and changing it is very hard due to this design. Someone did come by a few years ago and attempt to add HashLink support, but the way I wrote the C++ code did not work at all with the HashLink compiler and we eventually gave up.

I plan to refactor this someday, but someone else can jump in if they want and I will help in my free time.

The good news is the tool still works well for web builds (what my team and I use exclusively now). Here is one of our games with the audio powered entirely by haxe-fmod: https://www.newgrounds.com/portal/view/893426

Ah well. I might try to add streaming support too.