Blog homepage

GME plugin for Wwise: Bringing in-game voice chat to the next level

Game Audio

GME in-game voice chat v7 is out! This scalable in-game voice service is now compatible with Wwise-supported console platforms: Xbox One and Xbox Series X, PS4, PS5 and Switch. Paired with Wwise, GME in-game voice chat can bring your game to the next level.

Subscribe

As multiplayer online games continue to grow in popularity, voice continues to play a fundamental role in deepening the player’s in-game experience. While games are naturally social platforms, having in-game social functions such as real-time communication can allow players to better enjoy their gaming experience, thereby improving user retention. 

img1

The 3 levels of voice chat solutions for games

The development of game voice solutions can be divided into the following three levels:

1. Third-party voice communication software

This refers to the way that players communicate through third-party voice chat software (e.g. Discord, Skype, TeamSpeak, WeChat, etc.) during gameplay. Regardless of whether the game itself provides voice functionalities or not, using a third-party voice software for voice communication is a "cure-all" method, where players can easily and quickly establish voice channels with friends. 

However, by using a third-party VoIP (Voice over Internet Protocol) software, the voice chat experience will never be fully integrated with the actual in-game experience. No matter how the third-party voice chat tool is designed and optimized, gamers will only experience a phone call-like voice experience.

2. In-game voice communication SDK

The next solution for in-game voice chat is through integrated SDK, which requires game developers to integrate the SDK provided by the VoIP service provider. With this, game developers are able to put to use various in-game voice related functions, such as team-based voice chat, proximity-based voice chat and voice blocklist.

To further enhance the player's voice chat experience, some voice SDKs provide further processing capabilities, such as voice changing and voice spatialization. These technologies will not only make the game more enjoyable but also increase the immersive experience. However, spatial voice processing alone doesn’t signify a truly immersive experience. To achieve the latter, we require voice processing to correspond to all aspects of the game environment. And this is impossible to achieve using a standalone voice SDK.  If we want to bring in-game voice chat to the next level, we must look toward the third level of in-game voice solutions.

3. Immersive voice chat solution

With the immersive voice chat solution, the player's in-game voice is rendered in real-time according to the actual game, and each player's voice is processed by various DSP algorithms. This way, the voice chat experience simulates people speaking in the real world.

The GME plugin for Wwise is the immersive voice chat solution. GME is an in-game voice communication service and the plug-in acts as a bridge between GME and Wwise for voice data interaction. The voice stream of GME is seamlessly integrated with Wwise, so that the rich audio processing and control capabilities of Wwise can also be applied to the player's voice. This gives game developers the ability to design and mix the voice in the same audio session as other game sounds. Creating immersive voice chat for games now becomes possible. Now, let’s dive into the Wwise + GME solution.

The Wwise + GME solution

GME is an end-to-end voice communication system. In order to have an immersive voice chat solution in your game, it would require implementing a way to exchange voice data between GME and Wwise. Four plug-ins are introduced in order to achieve this goal. The following diagram shows the voice stream workflow between GME and Wwise.

img2

  • GME Source plug-in: Records the local player’s voice and pre-processes the captured signals. The processed voice is then fed to Wwise.
  • GME Send plug-in: Receives the processed voice stream from Wwise, encodes and sends it to the GME server.
  • GME Receive plug-in: Receives the voice stream from the GME server, decodes and pipes it to Wwise. There may be multiple GME Receive plug-in instances depending on how many voice streams are received. 
  • GME Session plug-in: Observes the audio routed to the Audio Device for echo cancellation and sets server authentication information.

There are several unique advantages of the Wwise + GME solution:

  • Voice integration with Wwise: Voice streams are piped to Wwise, which gives game developers the ability to mix the voice and game sound in the same audio session, so the voice can be integrated by Wwise directly. In the game code, sending and receiving voice is accomplished by posting Wwise Events. In-game voice mechanics are handled just like all other game sounds.
  • Solve the game voice pain points for mobile platforms: Standalone voice SDK solutions have audio quality degradation issues caused by the volume type switch (from media volume to in-call volume) after the microphone is turned on. With the Wwise + GME solution, volume type switch is not needed because of its unique design, so original game audio spatial effects can be maintained while voice chatting with other players.
  • Strong and creative design capability for game voice: Rich audio design and control capabilities in Wwise can be applied to voice, which gives developers the ability to create a more immersive and interesting voice chat experience according to actual game scenarios.

Using the GME plugin in your game

To integrate GME voice chat into a game with Wwise, the division of tasks between designer and programmer are as follows:

Sound Designer Responsibilities (Wwise Authoring)

  • Add the GME Session plug-in as the last effect on the System Audio Device. Enter the authentication key and set other GME parameters from the plug-in settings.
  • Create a Sound SFX (GME Send Sound) with the GME Source plug-in and then add the GME Send plug-in as the last effect of this sound. GME Send Sound is responsible for sending the local voice.
  • Create a Sound SFX (GME Receive Sound) with the GME Receive plug-in. GME Receive Sound is responsible for receiving the voice.
  • Create corresponding Play and Stop events for GME Send Sound and GME Receive Sound.
  • Add GME sounds and events to the SoundBank for them to be loaded and played by the game.

The following screenshot shows the Wwise Profiler layout after integrating GME.

img3

 Audio Programmer Responsibilities (Game Code)

  • Integrate Wwise into the game.
  • Register game objects that emit GME sounds.
  • Call PostEvent API to trigger GME Play events for starting voice communication.
  • Call PostEvent API to trigger GME Stop events for stopping voice communication.
  • Call GME specific APIs to realize specific functionalities, such as grouping, blocklist, proximity voice chat, voice message, ASR…

GME in Suspects: Mystery Mansion

Suspects: Mystery Mansion is a social deduction game that features native voice chat and regular content updates. The Suspects team replaced their existing voice system API with GME to improve audio quality and have the possibility to control what is being sent by the voice channels using the Wwise internal signal flow and spatialization structures, as well as its effect chains. The Wildlife audio team wrote a blog about implementing voice chat using the GME plugin for Wwise, which you can read here. They also joined Audiokinetic live on Wwise Up On Air, and you can watch that episode here.

Summary

Voice chat plays an important role in the development of online multiplayer games and GME’s dedicated integration for Wwise makes immersive voice chat for games possible. This is a powerful tool for sound designers to create the most realistic and immersive environment in games, thus bringing in-game voice chat to the next level. 

Want to create immersive voice chat in your game? 

Subscribe

Peng Gao

Peng Gao

Peng Gao is technical lead of Game Multimedia Engine (GME), and is based in Beijing, China. He once worked in Dolby Labs, where he developed and was responsible for a number of audio related projects, covering pre-processing, codecs, tuning and spatial audio technologies. After joining Tencent in 2018, he is responsible for the design and development of immersive in-game voice chat solution, which has been applied in titles of many game studios around the world.

Comments

Leave a Reply

Your email address will not be published.

More articles

Dialogue and Conversation Design in Murderous Pursuits - Pt. 2

Jaime here again with the second part on Murderous Pursuits’ conversation and dialogue systems. If...

30.10.2018 - By Jaime Cross

Clocker: Designing Game Audio Logic (Part 1)

In this two-part blog series, we'll be going over the way we designed the sound system for Clocker. ...

16.1.2020 - By YU TAN

Behind the Sound of I Am Fish

I Am Fish is a charming, physics-based adventure which sees the player take the fortunes of four...

15.12.2021 - By Ali Tocher

Developing first-person horror games solo

My Background I am Alessandro Guzzo, a sole game developer of the first-person horror games, The...

22.4.2022 - By Alessandro Guzzo

Menura | Step Up Your Sound Game Jam

This article was written following the second annual Step Up Your Sound Game Jam, an Android mobile...

11.5.2023 - By NekoLogic

Mastering a Game with Wwise | Part 1: Approaching Audio Mastering in Your Game

Games need to deliver an exceptional auditory experience across diverse setups, whether it's through...

15.2.2024 - By Loïc Couthier & Danjeli Schembri

More articles

Dialogue and Conversation Design in Murderous Pursuits - Pt. 2

Jaime here again with the second part on Murderous Pursuits’ conversation and dialogue systems. If...

Clocker: Designing Game Audio Logic (Part 1)

In this two-part blog series, we'll be going over the way we designed the sound system for Clocker. ...

Behind the Sound of I Am Fish

I Am Fish is a charming, physics-based adventure which sees the player take the fortunes of four...