menu
 

Behind the Sound of Headbangers: Rhythm Royale | Bringing the Pigeon Rhythm Game to Life

游戏音频

Headbangers: Rhythm Royale is the world's first competitive online music game. It pits you against 29 other players in intense musical and rhythmic battles. The challenges involved in creating this game were enormous. In this article, I'll explain some of them and show you how we managed to get around some of the limitations.


Online synchronization

The way we synchronize our 30 online players in Headbangers is unique. The game is not based on the characters' movements in space or their actions, but on their responses to musical events. We therefore decided to synchronize the client and the server to the music and its progress. 

Since time and validation are managed by the server, we can detect whether a player is out of sync with the network time. Above a 100 ms time lag, the player will be resynchronized, which in practice means that the playback head will move in the music to synchronize the player at the right moment. Thanks to extensive network optimization, we were able to ensure that these resynchronizations were extremely rare. 

When it came to implementing all this in Wwise, we were faced with a real challenge: Wwise is not designed for the method we wanted to apply. There's no simple way of moving the playback head of music and sounds forwards or backwards according to network time instructions.

We came up with a (largely random) trick: using the transition system to create specific rules. We noticed that by creating an immediate, fade-free transition from a song to itself in the Transitions tab of a Switch Container, we could now move the playback head as we wished. 

img1

This method was quite cumbersome to apply to the whole game. Headbangers contains thousands of musical segments (over 50 hours of music), and this procedure had to be applied to every musical segment in the game. Which brings me to my next point. 

SoundBank management and optimization

The sheer quantity of sounds and music contained in Wwise (tens of thousands in total) makes it certainly one of the most voluminous games in terms of sound content in the history of video games. With the game being released on all consoles and the PC, managing memory and SoundBanks (especially for the Switch) was a real challenge. 

My advice is to anticipate these issues as far in advance as possible. On my end, I had to deal with this concern late in the development process, which forced me to completely rework my architecture. 

There are 23 mini-games in Headbangers. In the end, we decided to divide the game into 24 SoundBanks: one SoundBank per mini-game and one general SoundBank, containing sounds common to all mini-games, as well as menu sounds and music. The decision to distribute sounds between these SoundBanks is a key element in memory management. We therefore had to think long and hard about the use and place of each sound in the game to optimize all this. 

In the same spirit of saving space and memory, we also had to optimize conversion. We therefore created several conversion parameters in Wwise, some of which are only used on certain platforms such as the Switch. So, by converting all sound effects to ADPCM on this console, we were able to save a great deal of space with very little loss of quality, while maintaining a more optimal result for music (the key element of the game) in Vorbis.

img2

Synchronize audio feedback with player actions

Most games accept a certain latency between the moment the player presses a button and the sound feedback of the action. In Headbangers, it was impossible to be satisfied with this latency. Indeed, for a musical game, if the time lag between the button press and the sound feedback is significant, the player's entire perception is blurred. 

We therefore decided to apply streaming parameters to certain sounds directly linked to gameplay. Defining that a sound will be streamed means that it can be called up more quickly, thus reducing audio latency. The key is then to set the Prefetch length for each sound, to avoid source starvation effects or untimely audio cuts. 

img3

In one of our mini-games, Piano Mezzo Forte, our pigeon has to sing over background music. So we created an event for each note in each nuance (Piano, Mezzo, and Forte) and set their Prefetch length according to their characteristics and durations. Even if the end result was totally ridiculous (that’s what we wanted), this near-perfect synchronization was very important, as you can see in the video below. 


Dynamic menu music

What I particularly like about Wwise is how easy it is to create dynamic music.

Even though Headbangers wasn't the game that needed most in this respect (it's a very scripted game), I had a lot of fun creating dynamic, ever-changing music in the menus, which is always appreciated by players.

Our main menu is made up of several tabs, each representing a different menu in the game: Home, Progress, Challenges, Customization, Shop, Options (see video below). 


The process for creating this dynamic music effect is simple. I created one tune per menu, with the constraint that all these tunes have the same tempo, duration and harmonic progression. Then simply use Wwise transitions to create an immediate "Same time as playing segment" transition rule, and you can move from a point in one piece to that same point in another piece smoothly and efficiently. 

img4

It's all very simple and quick to set up, and the effect is always satisfying. Wwise really helped us meet a lot of the challenges on Headbangers, and we consider it to be a really reliable and robust audio engine, yet accessible and intelligent enough for composers or sound designers. 

Charles Bardin

Director and Co-founder

Glee-Cheese Studio

Charles Bardin

Director and Co-founder

Glee-Cheese Studio

Charles Bardin is the director and co-founder of French video game studio Glee-Cheese Studio. For over 10 years, he has been creating sound worlds for a wide variety of independent games, including Stellar Overload, Overloop, A Musical Story, and the very recent Headbangers: Rhythm Royale.

 @GleeCheese

评论

留下回复

您的电子邮件地址将不会被公布。

更多文章

《ABZÛ》– 在游戏中为成千上万条鱼设计音频所面临的挑战

看到这幅画面,你首先会想到什么?

30.6.2020 - 作者:史蒂夫·格林 (Steve Green)

赛博朋克世界的声景塑造 — 以游戏《底特律:成为人类》为例 (第二部分)

阅读文章第一部分。

7.9.2021 - 作者:赵茉茉

在线游戏的迭代式发布管理

《黎明杀机》是一款制作时间紧迫并定期进行更新的在线游戏。为了避免在缺少提醒的情况下发布在线Wwise SoundBank更新并做到对未来功能的及时支持,我们开发了以下的Wwise工程更新流程。...

14.4.2022 - 作者:比特里克斯.摩尔什(BEATRIX MOERSCH)

结合使用 Strata、Wwise 和 Unreal 构建沉浸游戏体验

在这篇博文中,我们将深入探讨如何使用 Strata 进行互动设计。为此,我们要在 Unreal Engine 5 工程中结合 Wwise...

31.5.2023 - 作者:蔡斯•斯蒂尔 (Chase Steele)

构建无缝游戏音频测试工作流:Unity-Reaper-Wwise 音频回放工具链

前言 在游戏音频开发的世界里,我们常常面临这样的挑战:你刚刚搭建好一个全新的 Wwise 项目,准备进行 boss 战的实机测试,却发现现有的游戏管理(GM)命令并不如预期般便捷。...

6.11.2024 - 作者:孟庆杰 & 张宜喆

基于《超时空跑跑》搭建的游戏混音流程和技术细节

“你为什么要混音你的游戏?除了可读性之外,你的创意和审美目标是什么?你的混音如何服务于游戏的创意愿景、游戏设计方向和叙事方向? ”...

17.4.2025 - 作者:闫鹏

更多文章

《ABZÛ》– 在游戏中为成千上万条鱼设计音频所面临的挑战

看到这幅画面,你首先会想到什么?

赛博朋克世界的声景塑造 — 以游戏《底特律:成为人类》为例 (第二部分)

阅读文章第一部分。

在线游戏的迭代式发布管理

《黎明杀机》是一款制作时间紧迫并定期进行更新的在线游戏。为了避免在缺少提醒的情况下发布在线Wwise SoundBank更新并做到对未来功能的及时支持,我们开发了以下的Wwise工程更新流程。...