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

Simulating dynamic and geometry-informed early reflections with Wwise Reflect in Unreal

Among the new spatial audio features introduced with Wwise 2017.1, the Wwise Reflect plug-in helps...

22.8.2017 - By Thalie Keklikian

Wwise 2018.1 is Live! Colours and Beyond…

Wwise 2018.1 is out and available for you to download from the Wwise Launcher. The new colourful UI...

6.8.2018 - By Audiokinetic

Authoring for Audio Objects in Wwise

This series of blog articles is related to a presentation delivered at GameSoundCon in October 2020....

30.4.2021 - By Damian Kastbauer

Dialogue | Narration in Wwise and Unreal Engine

Dialogue with voiceovers is one of the staples of modern video games, allowing the player to not...

1.9.2021 - By Jake Gamelin

New in Wwise Spatial Audio 2023.1 | Phasing Mitigation

In today’s post, we will do a deep dive into an interesting acoustic phenomenon called “phasing”...

25.1.2024 - By Allen Lee

How to play sounds from Wwise in Unreal Engine

Wwise has many features; but at the start of development when you might not have enough information...

30.7.2024 - By Hiroshi Goda

More articles

Simulating dynamic and geometry-informed early reflections with Wwise Reflect in Unreal

Among the new spatial audio features introduced with Wwise 2017.1, the Wwise Reflect plug-in helps...

Wwise 2018.1 is Live! Colours and Beyond…

Wwise 2018.1 is out and available for you to download from the Wwise Launcher. The new colourful UI...

Authoring for Audio Objects in Wwise

This series of blog articles is related to a presentation delivered at GameSoundCon in October 2020....