Forums
March 28, 2024, 11:34 AM

Author Topic: A wormkit module for downloading other teams' soundbanks & fanfare?  (Read 1696 times)

0 Members and 1 Guest are viewing this topic.

Offline hedgehog90

I'd like to hear my friend's soundbanks & fanfares (and vice versa) without having to upload / download them manually each time they're updated. I figured this would be possible with a wormkit module.
It would require both players having the module installed, a bit like wkTerrainSync.
I've tried looking for a pre-existing module to no avail, but I did come across a discussion which suggests it is possible:

http://tim32.org/~muzer/t17-archive/forum.team17.com/archive/index.php/t-61661.html

I can probably code this myself but I have no experience developing wormkit modules.
I just want to check that this doesn't already exist before attempting.

Offline Lupastic

this would be nice to have indeed.

Offline MarCello

I need too such a mod. That would be cool.

Offline h3oCharles

Project X and wkTerrainSync have already done a similar thing of downloading data from the host, but not sure how downloading data from a non-host will go

Offline MonkeyIsland

Well the option to ignore it should also be there. It can get very annoying being forced to listen to low quality ones.
Due to massive misunderstandings: MonkeyIsland refers to an island not a monkey. I would be a monkey, if my name was IslandMonkey meaning a monkey who is or lives on an island. MonkeyIsland is an island which is related to monkeys. Also there's been a legend around saying MonkeyIsland is a game. So please, think of me as an island or a game.

Offline nizikawa

« Last Edit: July 25, 2023, 05:18 AM by nizikawa »

Offline MonkeyIsland

Here is a more feasible approach: use a third party web service to store soundbank files. A wormkit module could checksum all your soundbank directories and upload new ones to a dedicated service. Whenever you send your team data to host, the module would also send the checksum of the soundbank the team uses. The other players could check if they already have such soundbank, and if not, request and download it from web service. The only problem is, that someone needs to pay for and maintain such service.

You mean a service like TUS which has over a thousand soundbanks and I'm already paying and maintaining it?
Due to massive misunderstandings: MonkeyIsland refers to an island not a monkey. I would be a monkey, if my name was IslandMonkey meaning a monkey who is or lives on an island. MonkeyIsland is an island which is related to monkeys. Also there's been a legend around saying MonkeyIsland is a game. So please, think of me as an island or a game.

Offline hedgehog90

I forgot about wormNAT... I assumed it was all direct peer-to-peer communication with the other players.

How does terrainsync work then? Is the size of the payload small enough that it can go through wormNAT without any issue? Or as nizikawa suggested, is all the terrain data hosted third-party?

Earlier I considered employing the use of TUS (with MonkeyIsland's permission) for this objective.
It should be fairly easy to download and extract each soundbank / fanfare, but it would require each player to include the TUS file ID as a metadata file among their soundbanks / fanfares, or a strict naming convention of their soundbank directories / fanfare files, including the TUS file ID, in order to correspond with the appropriate file on the TUS server.
« Last Edit: July 29, 2022, 05:23 PM by hedgehog90 »

Offline King-Gizzard

Cool idea! Sorry, this is just me randomly brain storming ideas for a potential implementation...

Maybe the module could load config files for soundbank and fanfare, in the format:  "Team name","TUS URL to file download", EG:

Team One,https://www.tus-wa.com/files/file-2594/
Team Two,https://www.tus-wa.com/files/file-2592/

Considerations:

- Only support TUS URLs - for security and reliability
- Only extract/load game WAV files from the archive, to ensure no other rogue files or file types can make it onto someone's machine.
- For TUS, it looks like .7z, .zip and .rar archive formats would need to be supported
- If a wav file is missing, replace that file with default sound wav
- Maybe cache files locally based on the identifiers in the URL rather than hashing, I guess it depends if people update the same sound banks often.
- File size  limits? 
- Dynamic download and loading.  Rather than wait for all players to download the files, the game can proceed and WAV's are re-pointed in memory as downloaded WAV's become available. Until then, the team's chosen game sound bank is used
- Replay support?  Record the ID's for each team's soundbank and fanfare (perhaps in an accompanying config file rather than modding the replay format).  A config option to disable using/downloading soundbanks for replays.



« Last Edit: July 29, 2022, 10:49 AM by King-Gizzard »

Offline iidoyila

You mean a service like TUS which has over a thousand soundbanks and I'm already paying and maintaining it?

is there an easy enough way to download all files from TUS ?

Offline MonkeyIsland

The files section database on TUS is about 11GB and it is too large to offer such option.
Due to massive misunderstandings: MonkeyIsland refers to an island not a monkey. I would be a monkey, if my name was IslandMonkey meaning a monkey who is or lives on an island. MonkeyIsland is an island which is related to monkeys. Also there's been a legend around saying MonkeyIsland is a game. So please, think of me as an island or a game.

Offline FoxHound

  • Scheme maker, map maker and Worms Knowledge Base editor. I also have translation projects.
  • Hero Member
  • *****

  • Brazil Brazil
  • STF STF clan
  • WoSC WoSC community
  • PoC PoC community

  • Posts: 893
  • Founder of WoSC, a community about scheme creation
    • View Profile
    • My Worms Knowledge Base page
I don't understand about technical stuff, but I dream about playing this game listening to other soundbanks people made and use automatically since I started to use Blame The Pixel. So, a module like this would be f@#!ing amazing, but I agree that some soundbanks could polute gameplay experience or be annoying, so an option to mute or block a team soundbanks is necessary.

I still have "Fat Pikachus" soundbank from DumbBongChow, which is his voice imitating a Pikachu, but distorced as a bass sound. It really seems it is a fat Pikachu. His whole team was centered on the idea of the fat Pikachu.
I doubt you see this link moving below (you will have to zoom in. If you click at it, you will have maden the impossible):
'

Offline Danger135

  • Sr. Member
  • ****

  • Slovakia Slovakia
  • Posts: 409
  • People are stupid!
    • View Profile
It could be made by smart way. Game could check name of soundbank and its checksum, and if not exist, it can write something like: Player xxx using soundbank yyy, which is not installed. Click here to download and install, it will be used in next game.
When click, it could download soundbank files to some temporary folder on background, and when finished and checksum match, install it to soundbank folder, ready for next round. If same soundank name with different checksum exist, it can make it with prefix v2, v3 or so.

In PX it could check lib files CRC32 and if is different, download the correct lib. No more same file with different version made "Player xxx has different compilation result" and player cant play.
« Last Edit: July 30, 2022, 11:31 AM by Danger135 »
123  My teams use this, this, and this soundbanks.

Re: A wormkit module for downloading other teams' soundbanks & fanfare?
« Reply #13 on: September 01, 2022, 01:41 PM »
There could be a command like /mute which would make it sound like normal. This way we could listen to anyone's soundbank, even ones not registered on TUS.