Giter Club home page Giter Club logo

fmod-for-godot's Introduction

FMOD for Godot

Build Discord

Welcome! This repository provides an integration of FMOD Studio's audio middleware into the Godot game engine. At the moment, FMOD version 2.02.17 and Godot 4.1.1 stable are supported.

Features

  • Use the FMOD Studio API on different platforms (Windows, macOS, Linux, iOS and Android) with a GDExtension library that seamlessly integrates with Godot and GDScript.
  • Modify and build the library for any target platform with ease using SCons, a flexible and cross-platform software construction tool.
  • Streamlined audio authoring workflow with FMOD Studio Live Update, which lets you sync your audio project with your game in the editor or in a build. Experiment and iterate faster without reloading or recompiling your game.
  • Custom blocking I/O implementation that uses Godot's FileAccess API. This ensures compatibility across different platforms.
  • Custom FMOD nodes, such as StudioEventEmitter3D, StudioEventEmitter2D, StudioBankLoader, StudioListener3D, StudioListener2D, StudioParameterTrigger and StudioGlobalParameterTrigger. Create an immersive audio experience for players with little code.
  • Event Timeline Marker and Timeline Beat callback support to easily synchronize your game with your audio's logic. You can use these callbacks to trigger animations or gameplay events based on the timing of your audio events.
  • Generate unique identifiers (GUIDs) for GDScript to maintain organization and consistency in your project. GUIDs will help you reference FMOD assets without hard-coding paths or names.
  • Search and preview Events in the Godot editor with the FMOD Project Browser. This handy tool lets you browse through all the Events in your project and play them back directly in the editor.
  • Customize FMOD settings for each platform in the Godot Project Settings. You can adjust settings such as sample rate, speaker mode, real and virtual channels, DSP buffer size and more to optimize performance and quality for each platform.
  • Studio API wrapper unit tests ensuring a reliable and stable integration.
  • Custom performance monitors to track the performance of FMOD in the editor.

Getting started

If you are a game developer that would like to integrate FMOD into your Godot project, go to the releases page to download the addon and read the getting started guide.

If you would like to modify the code of the FMOD addon or build it yourself, visit the short Building tutorial for build instructions.

Tutorials

Extensive tutorials for the integration, including custom nodes usage and code examples can be found on the tutorials section of my website.

Known issues

Known issues are being logged into the issues page of this repo. Please check this page first, then log a new issue if you haven't found it listed.

Contributing

Any contribution is welcome. Please send pull-requests with fixes or useful additions!

License

The integration files, code and scripts in this repository are released under the MIT license.

While this project is licensed under MIT, FMOD itself is not free and has different license schemes depending on the type and budget of your project.

You can find out more about FMOD licensing here. Please make sure to obtain a license for your commercial game.

fmod-for-godot's People

Contributors

alessandrofama avatar connicpu avatar jccit avatar wispy avatar rune-scape avatar

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.