Blog homepage

What's New in Wwise 2024.1 for Godot

Wwise Tips & Tools

The latest release of Wwise 2024.1 for Godot is here, bringing significant improvements and new features to optimize the integration process. Designed to improve usability, this update introduces workflows similar to those used in the existing Unity and Unreal integrations, making it easier for developers familiar with those platforms to get started. Key changes include the introduction of the WwiseProjectDatabase as a new data source, support for Auto-Defined SoundBanks, Wwise Types, improved Plugin support across all supported platforms, and more. Explore the full breakdown of these updates and learn how to get started below.

Key Updates

WwiseProjectDatabase as Data Source

In earlier versions of the integration, WAAPI was used to generate Godot-compatible Wwise IDs for displaying Wwise objects in the Wwise Picker and WAAPI Browser. However, this approach had several limitations:

  • Required the Wwise Authoring project to be open alongside the Godot Editor to generate IDs.
  • Potential conflicts when connecting to the Authoring application if multiple projects were open simultaneously.
  • Lack of a hierarchical overview of the Wwise project. Objects were displayed as a flat list without context (no folders or Workunits were displayed in the Picker for example).
  • Manual ID regeneration inside the Godot Editor was necessary whenever the SoundBanks were updated.

What's new?

The WwiseProjectDatabase now tracks all relevant Wwise project data and auto-updates by monitoring a user-specified SoundBank directory:

  • A generated asset called WwiseProjectData provides easy access to data about the Wwise project and core Wwise objects such as Acoustic Textures, Aux Buses, SoundBanks, Events, Game Parameters, States, Switches, and Triggers. This asset enables the retrieval of hierarchical Wwise object data and is automatically populated by the ProjectDatabase, ensuring that the asset stays up to date with changes in the Wwise project.
  • Editor components like the Wwise Picker and the new Wwise Browser now use this structured data instead of the static Wwise IDs, giving you an up-to-date snapshot of your Wwise project without extra manual steps. This change improves usability by providing a more accurate representation of the Wwise project.

The Browser and Picker are now both populated with data from the ProjectDatabase.

WwiseBrowser

WwisePicker

Support for Wwise Types

Similar to Wwise Types in the Unity Integration, Wwise Types in Godot are a collection of classes representing core objects within Wwise, such as SoundBanks, Events, Game Parameters, States, and Switches. When a Wwise Type is exported in a Godot script (meaning serialized and made available in the Inspector for users to edit), a button will appear in the Godot Inspector, allowing users to select their required object via the dedicated Wwise Picker:

In addition to representing Wwise objects, Wwise Types come with built-in functionalities that allow developers to interact with these objects directly. This removes the need to rely solely on the exposed functions in the Wwise singleton. 

For example:

  • The WwiseEvent class includes a post method to post Events directly from the object.
  • The WwiseRTPC class provides a set_value method to set RTPC values.

These examples highlight the intuitive approach Wwise Types bring to interacting with Wwise objects.

Support for Auto-Defined SoundBanks

The integration now supports Auto-Defined SoundBanks by default. When a WwiseEvent object that references an Event that is not included in a User-Defined SoundBank is instantiated in the engine, the integration automatically prepares the Event using the AK::SoundEngine::PrepareEvent API after loading its SoundBank. The integration unprepares the Event and unloads its Bank when the WwiseEvent is destroyed and not referenced anymore. Whether an Event belongs to a User-Defined SoundBank or not is determined by the ProjectDatabase.

As a result of this change, the AkBank Node and the WwiseBank type will only allow the selection of User-Defined SoundBanks in the Wwise Picker.

Improved Plugin Support Across Platforms

While the integration already supported plugins, enabling them was a difficult process. Users had to recompile the integration and explicitly specify the plugins they wanted to use (e.g., AK Convolution Reverb). This process has now been simplified across all supported platforms:

  • The ProjectDatabase identifies which plugins are used in the project.
  • During export, the integration automatically copies the required plugins to the export directory, allowing the Wwise soundengine to load them automatically.
  • When previewing the game in the editor, AkInitSettings::szPluginDLLPath is used to specify the path to the shared libraries required by the soundengine.
  • On platforms such as iOS, static libraries and the necessary initialization code are added to the Xcode project during export. This is achieved using Godot Export APIs like EditorExportPlugin::add_ios_project_static_lib 
    and EditorExportPlugin::add_ios_cpp_code.

Additionally, users can now easily use their own custom plugins without recompiling the integration. The integration will detect the usage of custom plugins in the project. However, the Sound Engine Plugins must be copied manually to the respective platform's DSP folder in the integration. The Wiki includes a guide that details this process.

Wwise Objects as Assets

When selecting a Wwise object from the Wwise Picker, a corresponding Godot Asset (Resource) is created at res://Wwise/resources. The resources store information such as:

  • Name, ID, and GUID of the Wwise object.
  • Additional metadata, e.g., whether an Event is included in a User-Defined SoundBank.

They are used and referenced by integration Nodes such as AkEvent3D, AkBank, AkSwitch, AkState etc. and by the exported Wwise Types.

It is important to note that these Resources are only created when users actively use them (e.g., by selecting them in the Wwise Picker) and not for all objects in the Wwise project. 

In-Engine Documentation

Short documentation and code snippets for functions within the Wwise and WAAPI singletons, as well as various Wwise types, are now accessible directly in the editor. Users can jump to the documentation page by pressing CTRL and clicking on a function:

Getting Started with Wwise and Godot

Here’s how to set up the Wwise Godot integration in just a few steps:

Download the Latest Release

  • Grab the latest version of the Wwise Godot integration from the Releases page in this repository.
  • Make sure you have Wwise 2024.1.1 and Godot 4.3 installed.

Install and Configure

Explore the Wiki

  • The Wiki offers comprehensive tutorials and useful examples that will help you make the most of the integration.

Join the Discord community to share your experiences and ask questions.

Alessandro Famà

Field Application Engineer

Audiokinetic

Alessandro Famà

Field Application Engineer

Audiokinetic

Alessandro is a Field Application Engineer based in Utrecht, Netherlands, who joined Audiokinetic in 2024. With a background in game development and marketing, he has worked as an audio programmer on several indie titles. Alessandro is also an open-source enthusiast, having contributed to the Godot Engine. In his free time, he enjoys DJing and recreating Sicilian street food at home.

Comments

Leave a Reply

Your email address will not be published.

More articles

Don't Even Ask How I Did It! Instructions for the 5-Minute Entry-Level Track Swapping Challenge

Here are the steps I took during my live 5-minute challenge, along with a couple of tips about the...

28.5.2019 - By George A. Sanger

Wwise 2019.2 is live!

Wwise 2019.2 is out and available for you to download from the Wwise Launcher. Here's a quick...

13.2.2020 - By Audiokinetic

Generating Rain With Pure Synthesis

A few years ago, I wondered whether it was possible to synthesize whatever I wanted. I started by...

30.7.2020 - By Aleksandr Khilko

How to Create Temporary VO Assets Automatically with WAAPI + TTS

Introduction Automation is a commonly used approach while working on large projects.In a team with...

4.3.2022 - By Huang Chao (黄超)

WAAPI for Wwise 2023.1

Wwise 2023.1 includes the largest Wwise Authoring API (WAAPI) update since the introduction of the...

20.7.2023 - By Bernard Rodrigue

Wwise HDR: Overview and Best Practices for Game Mixing

Introduction HDR (High Dynamic Range) is a feature within Wwise, which is a very powerful tool for...

7.11.2024 - By Alex Previty

More articles

Don't Even Ask How I Did It! Instructions for the 5-Minute Entry-Level Track Swapping Challenge

Here are the steps I took during my live 5-minute challenge, along with a couple of tips about the...

Wwise 2019.2 is live!

Wwise 2019.2 is out and available for you to download from the Wwise Launcher. Here's a quick...

Generating Rain With Pure Synthesis

A few years ago, I wondered whether it was possible to synthesize whatever I wanted. I started by...