X2CommunityCore / xcom2-launcher

The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad.
GNU General Public License v3.0
354 stars 52 forks source link

Automatic management of a mod's wwise soundbanks to limit required user involvement #200

Open RealityMachina opened 4 years ago

RealityMachina commented 4 years ago

So a probably poorly written summary of the precise situation that happens with XCOM 2 and XCOM Chimera Squad.

So the ideal situation would be for AML to have some way of automatically handling mods that have soundbanks so users don't have to manually install the needed assets on their end. Suggestions of junctions or symlinks have been thrown around on the discord, though even simply automatically copy and pasting needed files would be appreciated.

nintendoeats commented 4 years ago

If this is implemented for XCOM and WotC, note that the two require different sound banks from different versions of the Wwise authoring tools. Some system needs to be in place to distinguish what type of sound banks you have. For example, in the System Shock Music Pack I have a Banks folder with the vanilla packs, and a subfolder called WotC with the WotC packs. I'm not suggesting this exact system, it might be better to give each type of bank it's own subfolder; I only did it this way for weird legacy support reasons.

I believe that there is also a slightly different header for sound banks that could be using to distinguish between the two versions, but that comes entirely from opening a couple sound banks in a hex editor and not extensive research.

Xymanek commented 4 years ago

though even simply automatically copy and pasting needed files would be appreciated.

This falls short when we consider mod's updates and enabling/disabling mods. Junctions are great because they are

IMO, we should standardize on some sort of a json file that mods will ship with and AML will use to create/manage said junctions.

Something like aml-wwise.json:

[
 {
  "GameID": "WOTC",
  "ModRelativePath": "WwiseBanksWotc\"
 }
]

Which would result in a following junction if the mod is enabled: