Coder Social home page Coder Social logo

heraldofgargos / godot-fmod-integration Goto Github PK

View Code? Open in Web Editor NEW
174.0 9.0 13.0 1.03 MB

FMOD Studio middleware integration and scripting API bindings for the Godot game engine.

License: MIT License

Python 2.27% C++ 94.66% Shell 3.00% C 0.07%
game-development game-engine-development game-audio dynamic-audio godot-engine fmod fmod-api middleware

godot-fmod-integration's People

Contributors

heraldofgargos avatar piiertho avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

godot-fmod-integration's Issues

MacOS @rpath linking

There is an issue on OSX where FMOD does not properly path to required dynamic libraries. I have a workaround that does work, for sure. I'll include it in this issue. Do you think we could automate this process during the build?

install_name_tool -change @rpath/libfmod.dylib (path to libfmod.dylib) (path to Godot build)
install_name_tool -change @rpath/libfmodstudio.dylib (path to libfmodstudio.dylib) (path to Godot build)

Sound System:`File not found` on export project -MacOS

Describe the bug

After compiling on 3.2 stable Godot with this integration, I'm trying to export a MacOS .dmg of the example project included on the repository, and I get the following message on the terminal:

FMOD Sound System: Live update enabled!
FMOD Sound System: File not found.
FMOD Sound System: File not found.
FMOD Sound System: The requested event, parameter, bus or vca could not be found.
FMOD Sound System: The requested event, parameter, bus or vca could not be found.

The game graphics and logic runs well, but no sound is playing.

To Reproduce
Steps to reproduce the behavior:

  1. I'm adding a screenshot of the export settings I'm using

Expected behavior
The sound files are likely not getting exported with the app? Hoping Godot exports the FMOD files into the app.

Screenshots
Screen Shot 2020-02-19 at 4 15 49 PM

Configuration

  • OS: MacOS Mojave Version 10.14.2
  • FMOD API version 2.00.07
  • Godot Engine v3.2.stable.custom_build.4e7d75ccd

Additional context
Maybe I'm just missing to add a specific path somewhere? Or do an extra step for Godot to see the Banks files

Potential concurrency issue in event callbacks

There is currently a reader writer problem associated with the callback system for events. Technically it should be fine for a single event since the Studio thread is the only thread that writes and the game thread is the only thread that reads but this constraint no longer applies for multiple events and things can change mid function which can lead to undesired behaviour.

Reverting #10 for now.

A potential workaround would be to wrap the callbackInfo dictionary in a struct with a mutex and obtain a lock every time a thread has to either write to it or read from it.

LINK : fatal error LNK1181: impossible to open file fmod_vc.windows.opt.tools.64.lib

Describe the bug
After compiling Godot at 100%, i have this error :

LINK : fatal error LNK1181: impossible d'ouvrir le fichier en entrée 'fmod_vc.windows.opt.tools.64.lib'
scons: *** [bin\godot.windows.opt.tools.64.exe] Error 1181
scons: building terminated because of errors.

To Reproduce
Steps to reproduce the behavior:

  1. following these steps https://github.com/alexfonseka/godot-fmod-integration/blob/master/docs/building.md
  2. the bug is at the step 5 of the building.md

Expected behavior
Just want to compile godot with Fmod api working

Screenshots
image

Configuration

  • OS: Windows x64
  • FMOD version 2.00.06

Exporting project in Windows

when exported the exe crashes with this error:

SCRIPT ERROR: GDScript::load_byte_code: Parse Error: Identifier 'Fmod' is not declared in the current scope.
At: res://MainScene.gdc:36
ERROR: load_byte_code: Method/Function Failed, returning: ERR_PARSE_ERROR
At: modules/gdscript/gdscript.cpp:785
ERROR: load: Condition ' err != OK ' is true. returned: RES()
At: modules/gdscript/gdscript.cpp:2168
ERROR: Failed loading resource: res://MainScene.gdc
At: core/io/resource_loader.cpp:285
ERROR: poll: res://MainScene.tscn:3 - Parse Error: [ext_resource] referenced nonexistent resource at: res://MainScene.gd
At: scene/resources/resource_format_text.cpp:440
ERROR: load: Condition ' err != OK ' is true. returned: RES()
At: core/io/resource_loader.cpp:208
ERROR: Failed loading resource: res://MainScene.tscn
At: core/io/resource_loader.cpp:285
ERROR: Failed loading scene: res://MainScene.tscn
At: main/main.cpp:1739
WARNING: cleanup: ObjectDB Instances still exist!
At: core/object.cpp:2095
ERROR: clear: Resources Still in use at Exit!
At: core/resource.cpp:425

Update to Godot 3.2

I wonder if this API works with current Godot stable version (3.2). If not, do you have plans to update de API?

Linking error on compile

When I try to build godot (8698876) on Windows 10 x64, I get this error:

[ 97%] Linking Static Library ==> modules\freetype\freetype_builtin.windows.tools.64.lib
[ 97%] Linking Program ==> bin\godot.windows.tools.64.exe
LINK : fatal error LNK1181: cannot open input file 'fmod64_vc.windows.tools.64.lib'
scons: *** [bin\godot.windows.tools.64.exe] Error 1181
scons: building terminated because of errors.

I have tried both x86 and x64, multithreaded on/off, same error. I have tried both Windows and Windows 10 UWP api files for fmod.

>python --version
Python 3.7.2

>scons --version
script: v3.0.4.3a41ed6b288cee8d085373ad7fa02894e1903864, 2019-01-20 22:51:36
engine: v3.0.4.3a41ed6b288cee8d085373ad7fa02894e1903864, 2019-01-20 22:51:36

WebGL/HTML5 integration

Hello,

I am curious if there is a way to use FMOD in the browser? From what I have seen there are no linkings/libraries for WebGL/HTML5 export.

Include Demo Project in the releases tab

Is your feature request related to a problem? Please describe.
In short: I'd like this repository to show newer users the demo so the FMOD code is a lot more tangible (instead of copy/pasting into unprepared/empty projects). It'd also be nice to be redirected/shown how to retrieve banks from an FMOD Studio project.

The long of it: I couldn't figure out how to get the bank files described in the lines of Basic Usage code that initialize the banks and I've been stuck for a day. I understood them as part of any project using FMOD but as an FMOD beginner I had no idea how to export/obtain banks from FMOD Studio, thinking it was a dependency like the .dlls. I just went off of what I had downloaded from the releases tab since I'm not normally a programmer who downloads unbuilt code.

Describe the solution you'd like
In the releases tab, add a separate download segment for the demo project with a description that goes over the fact that it's a Godot project with its own banks from an FMOD Studio project.

Describe alternatives you've considered
A description in the README that points out the demo and its usefulness, perhaps even a tutorial (a link or otherwise) on how to create/utilize banks in FMOD that can be used in this utility.

Additional context
Mostly personal frustration from being a new coder who's never stepped outside the usual GDScript boundaries.

I went as far as downloading VS2019, Python and Scons, cloning Godot to my hard drive, adding this module and building Godot only to realize I already had the .exe and some banks ready to go. The big "ohhhh" moment was seeing the FMOD integration demo pop up on the project list after I threw everything into one folder for the heck of it.

This is probably a fantastic tool for musicians like myself who are new to software dev (I'm already incredibly grateful to you and the contributors for giving me another option for audio) but this extra step in documentation would make it so much more approachable for people like myself.

I Replaced the Demo Project's Bank With My Own And The Positioning isn't Working

Describe the bug
I Replaced the Demo Project's Bank With My Own And The Positioning isn't Working.
Maybe it's just a simple setting that's wrong!

To Reproduce
Steps to reproduce the behavior:

  1. Create new FMOD Project
  2. New 2D event or 3D event
  3. Drag some audio
  4. Export and replace the bank
    5.Change the code to match the event name

Expected behavior
The sound should come out from SoundSource1 or SoundSource2. When I move the Listener, the sound should move.

Configuration

  • OS: Windows10
  • FMOD version 2.00.09

Playing a MOD file

Sorry, this is the only way I can see to ask this kind of question. Godot is compiled, and the demo project works!

But none of the examples show me how to just play a simple file from the hard drive - all the examples use "banks".

In C++ it's pretty straight forward; system->createSound("path to sound", &sound) gives you a pointer to the sound, which you play with system->playSound(sound). But I can't see any equivalent functions available from the Fmod Godot object.

Specifically I have those old MOD "tracker" songs and I want my games to be able to play them. S3M, MOD, IT, XM etc. It's the sole reason I'm using your module :)

need video tutorial

Hello, can you do a teaching video to demonstrate how Fmod and Godot interact? I'm new to both of them. I downloaded the demo, but I can't open the project file in the demo folder with Godot. I really want to learn Fmod and Godot integration, but I can't practice it. Thank you for your answer. Https://streamable.com/7qy0ok

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.