Open kavika13 opened 5 years ago
It's quite late here, but doing a quick reply just so you're not stuck waiting for hours:
Is there currently a way with Butler to share common data between different platform builds, so we can just upload the shared game data once, even when supporting 3 OSs?
No, there isn't a way to do that currently
FYI, we are able to do this on Steam w/ the concept of different repos being overlayed on top of each other. A repo each for Windows, Linux, OSX, and Data. Windows users get Windows + Data, etc.
Yep, that's how I'm planning on implementing this (no ETA).
There's a few constraints we need to solve first: for example, games can be downloaded via the website (without the client), so, we'd have to generates "already overlaid" archives for download.
The granularity is also wrong: as far as butler is concerned, 1 upload = 1 channel = 1 push target. As far as itch.io/app is concerned, 1 upload = 1 install target. But in truth, install targets can be made of multiple push targets, so for example I'd much rather have:
Than the flat structure we have now. That's not necessarily a simple transition though, so we need to think about a good way to do this. Also, we're taking care of many other issues, so that one is not the highest priority.
TL;DR thanks for asking! Overlays aren't there yet.
Thanks for the quite hasty reply :) I wasn't strictly blocked, but now I can go ahead and proceed without any concern about having to redo it any time soon!
Is there currently a way with Butler to share common data between different platform builds, so we can just upload the shared game data once, even when supporting 3 OSs?
My company has a game with about 20GB of identical assets that are shared between all platforms (Windows, OSX, Linux), and only about 10MB of executables/dlls that are unique for each OS. Having to upload the whole 20GB 3 times, and then do delta calculations against the shared 20GB 3 times per new build seems a bit excessive, if it can be avoided.
If this is not possible to do, it's not that big a deal. Maybe this isn't that common a use case for games on itch? But it seemed best to ask about this before setting things up incorrectly.
FYI, we are able to do this on Steam w/ the concept of different repos being overlayed on top of each other. A repo each for Windows, Linux, OSX, and Data. Windows users get Windows + Data, etc. We have 4 repos to update then instead of three, and our build system is a tad bit more complicated due to this, but it minimizes the delta calculations for each new build we do, so builds + upload go faster for us.