Additional banks for DLCs

I’m doing some DLC support for one of our games. The way it was planned, was that DLC will deliver smaller banks providing audio that is needed for that content. I wanted to prevent prom patching the game every single time the new DLC would be released. Loading custom banks was working fine as long as it was not moved to seperate plugin’s content folder. As far as I’m looking in the FMOD integration code, it looks like it’s not supported - am I right? Is there any (easy) way to do it?

Thanks!
Krzysztof

Hi Krzysztof

DLC is well supported with FMOD Studio and UE4 has DLC support built in, but you’re correct that there is no explicit support for combining FMOD Studio and UE4 DLC in our integration.

I’ll do some testing to understand possible workflows and try to develop some detailed advice on options for proceeding with this.

Cheers
Derek

Hi Krzysztof

I spent some time setting up a UE4 project with FMOD integration and adding some DLC content to it, and I found it’s possible, but a little janky.

My test was built around using a simple UE4 project with the FMOD integration and following a tutorial video I found online for adding DLC content to a UE4 project (https://www.youtube.com/watch?v=ndHNdUSRpho ). The video is not official Epic learning material but I couldn’t locate anything official that detailed how to create DLC. There may be different and better approaches for adding DLC in UE4 but I imagine the key takeaways for the FMOD side of things would be the same.

This is the process I used:

  1. Created a basic UE4 / C++ project using the Blank template.
  2. Added the FMOD UE4 integration plugin.
  3. Created a copy of the FMOD Studio Examples project to use.
  4. Moved the Ambience/Country event in the examples to a new bank which I named SFX_DLC.
  5. Added an ambient sound to the map playing Ambience/City event.
  6. Followed this tutorial to create additional content https://www.youtube.com/watch?v=ndHNdUSRpho
  7. Packaged the main build.
  8. Removed SFX_DLC.bank from the staged build.
  9. Added the Ambience/Country event to the DLC map.
  10. Packaged the additional content DLC build.
  11. Ran the main build, confirmed the main map loaded and the Ambience/City event played as expected. Attempting to load the DLC map failed as expected.
  12. Closed the main build and added the additional content DLC pak and the SFX_DLC.bank to the filesystem and ran the build again, confirmed that the DLC map loaded and played the Ambience/Country event as expected.

The requirement at step 8 to jump out of the UE4 build process to modify the output of the staged builds irritated me. What you need to manage there is that the DLC bank has to be in the same location as the main banks so you can use the DLC content in the editor, and that leads to the DLC bank being copied to staging when you create the main build. There are other approaches than manually modifying the staged build that I would investigate if I had to do this in production. It may be possible to do it more elegantly by playing with the build automation tools in UE4, it could also be managed quite nicely in a scripted build process.

We’ll review this internally to determine how we might enhance our integration to offer a better user experience for using DLC, but for now I hope this will give you some leads on how you can manage it with what’s currently available.

Cheers
Derek