Blog homepage

GWENT: The Witcher Card Game vs GWENT: Rogue Mage | How We Managed to Work on Two Games at Once

Game Audio

Introduction

Hey there! First of all, before diving into the world of GWENT and Rogue Mage, we would like to shed some light on who we are and what our experience in CD PROJEKT RED is.

Maciej Tatarynowicz — I am a Sound Designer. My first assignment in CDPR was for audio QA on GWENT. After many months of mastering QA work, I got the opportunity to become a sound designer in the GWENT Audio Team. While Mateusz was working hard on Rogue Mage alongside others, I was focused mostly on GWENT, learning from them and supporting the main project with the tasks I took from them. After that period I started to get more involved with the Rogue Mage and helped deliver the game. Currently I am fully responsible for GWENT and all of the derivative projects.

Mateusz Szymański — I am currently working as a Lead Sound Designer. I started my career in CDPR working for audio QA before GWENT came out to the public beta. Time passed and I eventually became a sound designer in the GWENT Audio Team. When we decided to start our work on the Rogue Mage I was delegated from the Sound Design Team to keep an eye on the development of this new iteration of GWENT, thinking about the soundscapes and solutions specifically for this project and to be the main point of contact for all audio related topics for the team developing Rogue Mage.

What did working on a live service game teach us?

First off, we would like to focus on giving you a brief summary of how GWENT worked as a project and what we learned with time.

GWENT is a card game of choices and consequences, where skill is your greatest weapon. Pick a faction, build a deck and play against other players across multiple game modes. With hundreds of cards to collect — units, spells, and special abilities — new strategies are always a thought away. The game board is divided into two rows — melee and ranged for each player. Gather more points than your opponent to win a round. Win two out of three rounds to win the battle. You start with 10 cards in your hand and play one card per round. Beat the enemy with strength or outsmart them with clever tricks — GWENT’s round-based gameplay opens up a world of strategic possibilities to play with. 

A fair progression system turns the effort of building a competitive collection of cards into pure pleasure — just play GWENT, no strings attached. Beautiful, hand-drawn art and mesmerizing visual effects breathe life into every card, battle, and battlefield, making GWENT both fun to play and a joy to watch. GWENT: The Witcher Card Game, is available for free on PC via GOG.COM and Steam, on Apple M1 Macs running macOS, Android, and iOS.

The team working on GWENT went through quite an evolution, starting as a rather small team and then growing into around 100 people from across different disciplines. We were also experimenting with methodologies of planning and performing our duties. So, as you may realize, every now and then some changes happen on the project level. One thing didn’t change, we had one goal - to make a cool and competitive card game and we had to support a fair dose of newly released content. Keeping that in mind, we as an Audio Team had to come up with some processes and pipelines to save as much time as possible and to not feel overscoped with technical tasks.

Every once in a while we release an expansion pack consisting of an X amount of new cards and vanities for players to use such as coins, card backs, gameplay boards, and new leader 3D models. We were also introducing new gameplay mechanics and the majority of the changes had to be followed with sound effects. 

Knowing that, we came up with a couple of solutions to support our pipelines and make it as efficient as possible. Such as:

  • Standardized level of assets — LUFS integrated
    At some point we realized that adding new assets with unclear leveling standards will bite us back in the future. Also it greatly increased the amount of mix passes needed. Our very first Technical Sound Designer, Anthony Breslin, did a tremendous job and divided the game’s audio into specific categories and assigned specific LUFS integrated level standards to each of those. Creating the assets and knowing what loudness level we should aim for not only helped with mastering the assets, but it also helped us to make creative decisions. Did it resolve the need for mixing passes? No, obviously. We still were doing them, but on a very high level the game mixed itself and the changes done on volume sliders in Wwise had a resolution of +/- 3dB rather than +/-12dB. This system is integrated with music and voiceovers that are also standardized in terms of loudness. This makes GWENT and Rogue Mage much easier not only to mix but also to deliver a desired quality for all of the supported platforms.
  • Soundbank organization and .PCK files usage.
    Tomasz Dietrich, a programmer who was focused mostly on tech for VFX and audio in GWENT integrated Wwise into our Unity Project. Because of the character and aesthetics of the game, we faced a challenge of putting as high quality audio as possible while being cautious about the storage and memory we are allowed to use. This led us to incorporate the .PCK files usage in the project on top of SoundBank management. Packages for the assets like game boards or music contain the asset’s SoundBanks and additionally all of the streamed files associated with the asset. Packages for cards, ornaments, or gameplay effects consist of the .bnk files with virtually no exceptions. This structure is corresponding to the asset bundles logic from Unity Engine used by the Art Teams, which led to an improvement in terms of storage usage. Also, because of how the art assets and gameplay logic are handled in the engine, many assignments for audio packages are done automatically. This makes our work easier and memory management of the game more efficient. By using .PCK, we made it possible to deliver really high quality of the game sounds for all supported platforms, especially Android and iOS.
  • Setting up audio pillars for specific expansions
    Consider this kind of scenario: a new expansion is coming. You more or less know what types of cards you will get to work on, you know the story of the expansion, characters that will appear there, and what the upcoming expansion’s artistic mood is going to be. Why not incorporate audio into that? We came up with creating a document called audio pillars that would not only gather the already mentioned information but it would also give us a space to brainstorm what sort of sound effects and sound moods we would like to achieve while creating assets and help us understand what directions we would like to go towards. That way we secured some sort of coherency between different assets that were created by different people, and someone who was assigned to something not related to current duties could easily jump on the tasks and help out with them. This also ensures consistency within the larger groups of assets (i.e. cards of a given faction have specific similarities).
  • Custom tools for creating a hierarchy of cards and ornaments in the project
    With every expansion the game was growing and consequently the Wwise project was introduced not only with new content but also new solutions. At some point we thought that manual setup for every card was really time consuming and we had to figure out a solution for that problem. Pablo Baz, another great technical sound designer in our team, created a tool that allowed us to create not only the structure for the card but also for the entire expansion in a few minutes using Wwise Authoring API. This meant speeding up the process by literally days. The tool was later extended by Maciej to allow the setup of the coins and card backs that also require handling the RTPC usage. There are some assets that are not handled by this setup like game boards and music vanities, but those require a much more detailed approach as their structure is more complex. For them we prepared the blank structure patterns we duplicate when creating a new asset.

It was a big process but we gave ourselves a space to not fall into asset manufacture traps and to not look back on things that could be improved. We also learned a great lesson from developing Thronebreaker: The Witcher Tales and refactoring the whole of GWENT from its beta stage to the released stage at the same time.

GWENT - closed beta

GWENT - release version

gwent-closed-beta

gwent-release-version

What this process made us realize is that we need to reset our mindsets, be more practical, seize opportunities to improve, and never fear looking back. It was a bumpy ride but it helped us grow as professionals and helped us to work on very good practices that we can scale up to our bigger projects from now on. 

Let’s dive into our Wwise project!

The content of the Wwise project (for both GWENT and Rogue Mage) is divided into nine sections (Default Work Unit is in the project but it’s empty):

1. Boards — Each board has their own Actor-Mixer where we store two layer of the boards’ sounds:

    1. blanket - a base layer that is looped throughout the entire match with the intensity changing depending on the match’s phase
    2. reactables - this layer consists of, mostly, oneshot sounds that are triggered by the player clicking on the specific elements or areas on the board.

For each board, we use two base events - one for start and one for stop. Additionally, each reactable has its own event that is triggered when the specific reactable is activated.
Every board has its own SoundBank and package and is adjusted in real time by a few RTPC values, the most important of them is game_intensity.

2. Cards — They are the main part of our project. Here all of our cards’ assets are stored, divided into expansion packs. Every card has its own Work Unit and Actor-Mixer with the containers for standard (and in case of GWENT, premium) assets for the cards inside. The structure of the events and Soundbanks is very similar for the cards. Every card has its own events and SoundBank (one for Rogue Mage, two for GWENT).

3. gameplay_vfx — This part contains the sound effects that are corresponding to the visual effects in the gameplay phase. All of them are audiovisual representations of the gameplay mechanics.

Those SFXs are triggered automatically by the VFX system in the engine which uses the events’ names provided by the Audio Team. Each SFX has the corresponding VFX and most of them are divided into three elements: 

    1. direct — this sound is triggered directly on the game asset.
    2. projectile — this sound is following the projectile from the asset that is triggering the VFX to the target asset.
    3. status — this sound is triggered on the target asset.

The gameplay_vfx assets are additionally divided into the specific versions, depending on the target of the effect — card, row, board side, or board.
All of the elements that are part of the SFX are stored in one separate SoundBank corresponding to the SFX.

4. Leaders — Like cards, the leaders are divided into expansion packs. They are fully animated 3D models. Each of the leaders has their own unique grunts and sometimes foley. The sounds that are common for all of the leaders, like most of the foley, footsteps, and weapons, are stored in a separate shared Work Unit. Even though the trinkets are unique for some of the leaders, they are also stored in the shared Work Unit, as the engine system that triggers the leader sounds is common for all of them. The leader system is based on the shared events and switches for the common assets and the separate events to the assets that are unique for the particular leader.

5. Ornaments — Card backs and coins are purely cosmetic parts of the game, similarly to the leaders. They are stored in a common Work Units, one for the card backs and one for the coins. Both of them also have respective single events as well as single banks for all the assets within one category. The game chooses the correct sounds based on the switch value which is inherited from the item ID set in the game engine. 

6. Cutscenes — Technically the game has one cutscene which is the gameplay flow displayed in the tutorial. However, it doesn’t contain any specific music or voice overs, so it’s a very simple structure.

7. global_vo — This part contains the assets that are responsible for mixing the voiceovers in the game. It divides the whole voice structure into normal, important, and shop and mixes them accordingly. The lines themselves are handled by the Unity Engine and Wwise propagates them to the mix as external sources.

8. GUI — here we store every asset that corresponds to any part of the game’s UI. They are divided by the phase of the game, like shop, deck builder, or gameplay. There is also the global Work Unit that stores the sounds used in many phases. 

Additionally, we have a separate parts of the Wwise project that are exclusive to Rogue Mage:

1. Cutscenes — This is the part similar to the GWENT one but contains more elements as we have more cutscenes in the game. Every cutscene consists of music, sfx, and voiceover. Every cutscene is started and stopped by respective events created for that cutscene. All of the assets corresponding to a particular cutscene are placed in the SoundBank dedicated to this cutscene.

2. Lab — This part of the structure contains all the sounds that are connected to the laboratory — our hub in the game. It’s divided into a folder containing UI sounds and an Actor-Mixer with the lab ambience sounds. Every interactive element of the lab has its UI sounds that are unique to it and make different parts of the lab distinguishable. The map, the grimoire, and every other element visible in the UI is propagated with custom sounds.The ambience part contains more diegetic layers of the lab — the overall base accompanied by the emitters and the UI elements highlight sounds. The former ones make the lab screen sound interesting and engaging, making the player want to explore the lab and avoiding the boredom when they spend some time there. The latter makes the particular elements of the laboratory more prominent and gives the player the satisfactory feeling when new parts of the lab are unlocked during their journey. All of that on top of the informative layer of course.

3. Map — The map is one of the most important parts of the game so its Wwise structure is quite complex. It’s divided into Actor-Mixers corresponding to each of the parts of the map:

    1. battle transitions — here we have all of the sounds that handle transitions to and from the battles.
    2. card actions — the sounds here correspond to the actions the player can apply to their cards when visiting a Place of Power.
    3. events — all of the map events are stored here. During the run the player encounters different types of events that can give them an advantage or a disadvantage depending on their decision.
    4. nodes — this is the highest layer of the map UI. It consists of every sound that is triggered when the player highlights or enters a node that is presented on the map.
    5. pop panel — when any of the panels that can pop up appears as the player is on the map, the sounds stored here are triggered.
    6. rewards — here are the sounds corresponding to all of the rewards we can find on the map. The treasure chest sounds are also stored here.

All of the sounds have their corresponding events stored in one folder. The exception are the map events as they have much more complex UI flow than the rest. The events corresponding to the map events are put in a separate folder and divided to respective Work Units, one per map event.

How was Rogue Mage different from GWENT and what was our approach to fill in the gaps?

Gameplay-wise Rogue Mage is not very different from GWENT. It uses the same gameplay mechanics as GWENT to some extent. We also decided to get back to one of our previous GWENT spin-off — Thronebreaker: The Witcher Tales and try to incorporate one of our narrative features, which was creating soundscapes to narrative events.

Since we started with gameplay, let’s stick to it for now. What changed from GWENT’s gameplay flow?

In GWENT you have up to 3 rounds, while in Rogue Mage battles last only 1 round — you lose it, your run is gone. This sole change had quite a big impact already. Our board’s ambience and music based their intensity on which round you are currently playing in. So we had to ask ourselves the question of if playing at max intensity is not gonna be boring after a few battles.

The next change was the cards flow. Normally in GWENT you start your round, draw two cards from your deck and have an option to exchange two of your cards in hand with random cards from your deck. In Rogue Mage, you pick a card every turn for a total time of six turns. So, now a very prominent sound of card drawing that used to be heard once in a while is heard more often.

GWENT

gwentgameplay

Rogue Mage

roguemagegameplay

Do you see the pattern? Good. To summarize this part, there were a lot of changes in the dynamics of the mix — gameplay UI soundscapes that were heard occasionally now started to appear more often, etc. We had a tough job to make it still sound coherent with our design and artistic decisions on GWENT but also make it sound like a separate title.

What changed the most? UI!
With Rogue Mage we had a complete visual redo of the UI. With visual changes we had to introduce changes to how it sounds. From heavy, wooden-based sound effects, we switched over to a more cinematic and magical approach (since our protagonist is a mage and we follow him on his journey on creating the very first witcher).

The whole UI flow also changed a lot. New hubs and menus were added and some of the UI sounds from base GWENT became redundant. This made us realize that we have to cut out most of the content from Wwise and rearrange how we handled UI in the project.

GWENT

GWUI_1

GWUI_2

Rogue Mage

RMUI

Three completely new features
Apart from the aforementioned changes there were three new features added to the Rogue Mage. Well two new ones, and one that was based on the narrative solution from Thronebreaker: The Witcher Tales.

Map and Laboratory
This was a big one, planned for a long time with many iterations. We had quite big plans to make the map an immersive place, with specific biomes and sound reflecting the change of the day-night cycle that you can see on the screen. Eventually we came to the conclusion that we can easily fall into a trap of overscoping ourselves. We had to take a few steps back and make a decision on what has the bigger priority (keep in mind that in terms of audio, the same team developed both new updates for GWENT and worked on Rogue Mage). 

map

That’s why we decided to cut the map sound effects scope to the minimum. It was a hard decision to make, but we all agreed that a lack of very sophisticated ambience in that area is not subtracting anything from how the game feels and how dynamic it is. It saved us some memory and CPU usage, which in the case of mobile devices is one of the crucial elements of smoothly operating titles. Another argument for that was that players will not spend that much time on the map.

img_rep_v2

The laboratory was a completely different story. It was the main hub for the player. We felt that it needs to be as polished as possible and should give the player an immersive vibe — a feeling that you are actually there.
With experience taken from creating ambience sound effects for our boards, we created a set of ambience loops and emitters that were destined to make the laboratory alive. Following this, we glued the ambience with UI adding reactive sounds whenever the player hovers above the hub submenus basing everything on a coherent direction.

RMlab

Narrative events and static cutscenes
This feature was designed quite a long time ago, back in the days of working on Thronebreaker: The Witcher Tales. We knew that we will be utilizing the Unity Flowcharts functionality to create narrative events that pop out on the map. How did they work? Once entered, you were presented with a depiction of the situation and written narration. Our little sprinkle on top was adding an audio depiction of the scene presented in the event with sound effects following the player’s decision — our own play on radio drama.

Event in the game

roguemageevent (1)

Wwise structure

RMevent

Static cutscenes were also treated the same way, with a more cinematic approach and spoken English narration. This voiceover part in the cinematic sequences was a little bit different from how we trigger the lines for the cards during the gameplay. In the latter, we used the same system as in the case of GWENT cards, which is based on localization tools. Even though it was decided that Rogue Mage would only have English voices, the system was already there so there was no need to incorporate anything new. The cutscenes were a different story though. 

The system from Thronebreaker: The Witcher Tales was too complex and in GWENT it was nonexistent. We had to figure out the best way to trigger music, SFXes and voiceovers for the cutscenes for Rogue Mage. After trying different approaches the best one turned out to be simply putting all of the layers just as SFXes in the Wwise hierarchy. That approach gave us easy setup and full control over the flow of the cutscenes. Considering we had only one language to cover, we didn’t have to create anything more sophisticated. Some of the cutscenes were treated a little differently in the engine so we decided to put their voice overs through Unity instead of Wwise.

Fragment of the cutscene

roguemagecutscene (1)

Wwise structure of two cutscenes

RMcutscene_1RMcutscene_2

Unity timeline for UI
It was one of the finishing touches to the game, but improved our workflow drastically. We needed a way to create cinematic transitions between hubs and menus, especially when entering a battle. In basic GWENT the (as we call it) VS Screen has a more PVP feeling: it was designed for players to have a short introduction between themselves and have a glimpse of whom they will be fighting against. In Rogue Mage it had a different purpose thus it had to be redesigned visually and sonically. 

It was a major step forward from our point of view as base GWENT uses less advanced tech when it comes to triggering sounds from animations. 

RMtimeline

Summary

We decided to divide this part into two summaries since both of us were writing this article and we both have quite a different experience on the title.

Mateusz’s Summary:
When approached by Audiokinetic we were asked about the Rogue Mage as a title. We decided to give you folks more of a deep dive into two games instead. The reason for this is simply because without GWENT there would be no Rogue Mage. But there is also a more complex and solid reason. Working on a rather small title in a AAA game dev company can be challenging. You want to push yourself, you want to grow as a professional and also you want to focus on the quality of your work. I strongly believe that sharing good practices across the industry is something that we should do. In the majority of cases we are just a bunch of geeks and nerds who just love video games and want to create the best video games possible. I hope that this small dive will inspire you somehow!

Maciej’s Summary:
Working on GWENT and then Rogue Mage taught me a lot. First and foremost — scalability is the key. Over the years, we established a lot of new features and functionalities that made our quality of life much higher and allowed us to expand the games’ soundscapes more rapidly. It also gave us the opportunity to focus on the design instead of spending countless hours figuring out how to implement stuff. Of course, Rogue Mage introduced new challenges we didn’t have to deal with in GWENT. But because of GWENT we had a solid base on which we could build a unique soundscape for the new game. 

Seizing the opportunity, we would like to give a very special thanks to all the audio freaks who were involved in creating those two titles. Paula Karbowniczek, Tomasz Dietrich, Anthony Breslin, Pablo Baz, Rajmund Krakowski, Krzysztof Kowal, and Maksymilian Lubiński — you guys absolutely rock!

MaciejTatarynowicz (1)

 

MACIEJ TATARYNOWICZ
Sound Designer
CD PROJEKT RED

Maciej is currently a member of the Polaris team, developing the first instalment of the new Witcher saga that CD PROJEKT RED are working on.
Previously Maciej had worked on Phantom Liberty - released in September, highly acclaimed Cyberpunk 2077 expansion. His credits also include Cyberpunk 2077 as well as GWENT: The Witcher Card Game and GWENT: Rogue Mage, where he worked on numerous sound effects, technical audio design, voice-over recording and trailers' audio.
Maciej joined CD PROJEKT RED in 2019.
Apart from his duties in the studio he works as a lecturer at Feliks Nowowiejski Academy of Music in Bydgoszcz, Poland, where he teaches Sound in Video Games.

Mateusz Szymański

Lead Sound Designer

CD PROJEKT RED

Mateusz Szymański

Lead Sound Designer

CD PROJEKT RED

Mateusz has been working for the leading Polish game development studio, CD PROJEKT RED, for more than 7 years, joining in 2016 as part of QA Team. After less than 2 years becoming a Sound Designer and reaching the Lead position in mid 2022. Nowadays he is leading the Sound Design Team on Polaris Project - a new Witcher Saga.

Before that Mateusz worked on Cyberpunk 2077 and Phantom Liberty - an expansion to Cyberpunk 2077, released in September, as well as on GWENT: Rogue Mage, GWENT and Thronebreaker.

Before joining CD PROJEKT RED Mateusz worked as Test Lead and Senior Specialist in Games Testing at Lionbridge Poland, and before that at QLOC.

Comments

Leave a Reply

Your email address will not be published.

More articles

Hitman 2: Enhancing Reverb on Modern CPUs

Popularization of CPUs with six and eight cores means that untapped processing power becomes...

28.8.2019 - By Stepan Boev

The Sound of the Outer Worlds: Part 2

Welcome back to Part 2 of our deep dive into the Sound of the Outer Worlds!

5.11.2019 - By Obsidian Entertainment

Diving into the music & audio elements of Seashell

I’m Levi Bond, I produce audio for games under the moniker ‘dBXY Collective’ with a couple of...

26.5.2022 - By Levi Bond (dBXY Collective)

Sound in the Silence of Space | The Systems of Hardspace: Shipbreaker

Hardspace: Shipbreaker is a first-person, zero-g, spaceship salvaging game, recently released on...

19.1.2023 - By Ben McCullough

How to Create Audio-Reactive Objects Using Wwise and Unity

I would like to show you how to use RTPCs to move game objects in Unity, and how to create...

9.2.2023 - By Tomokazu Hiroki

The Interactive Music of Wylde Flowers

Wylde Flowers is a brand new IP published by Apple that launched in 2022 on Apple Arcade for iOS...

23.2.2023 - By John Guscott

More articles

Hitman 2: Enhancing Reverb on Modern CPUs

Popularization of CPUs with six and eight cores means that untapped processing power becomes...

The Sound of the Outer Worlds: Part 2

Welcome back to Part 2 of our deep dive into the Sound of the Outer Worlds!

Diving into the music & audio elements of Seashell

I’m Levi Bond, I produce audio for games under the moniker ‘dBXY Collective’ with a couple of...