Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create full ready package #4

Open
Ilia1 opened this issue Aug 15, 2021 · 11 comments
Open

Create full ready package #4

Ilia1 opened this issue Aug 15, 2021 · 11 comments

Comments

@Ilia1
Copy link
Contributor

Ilia1 commented Aug 15, 2021

What do you think about creating an AppImage package? You can create automatic assembly through github actions.

@0xf4b1
Copy link
Owner

0xf4b1 commented Aug 15, 2021

Do you think of packaging a running game including the proprietary files? I would like to avoid this due to legal concerns and it would require a lot of maintenance for the frequent game updates.
But packaging the utilities in this repo for downloading a running client should be possible in the future when the whole process is better automated, especially downloading the game files via keg is a bit complicated and should be improved I think.

@Ilia1
Copy link
Contributor Author

Ilia1 commented Aug 15, 2021

Do you think of packaging a running game including the proprietary files?

Yes. Modifications of the game are distributed on the Internet, which seem to be not blocked and the authors are not punished.

it would require a lot of maintenance for the frequent game updates.

I am thinking of automating the build via Github Actions

@0xf4b1
Copy link
Owner

0xf4b1 commented Aug 15, 2021

Hmm, I think for the user, it is no advantage to download the game files from other locations than the official ones and updates would require downloading the full game over and over again.
I prefer to have something like a launcher consisting of the tools here which is able to download and update the game files, like the official battle.net app. What do you think?

@Ilia1
Copy link
Contributor Author

Ilia1 commented Aug 16, 2021

If I understand correctly, then when using the keg tool:

  • you need to keep the previously downloaded archives so that when a small patch is released, you do not download all the resources again
  • or you can download resources every time, but it takes longer

Using the keg can not download a single patch?

@0xf4b1
Copy link
Owner

0xf4b1 commented Aug 16, 2021

keg is intended to download and keep all game files in a local repository and allows you to install any game version you have previously downloaded. Of course, it consumes a lot of storage and here, we are actually only interested in having the most recent version which makes it far from optimal.
keg actually downloads patch files but is not able to apply them since it also always downloads the most recent version of the full files.
When there is a new version released, it would basically download all changed files but reuse the unmodified ones that are already available locally from a previous version.
When there is no better solution already available somewhere, most of the functionality of keg should allow to build something like an downloader and updater.

Edit: There is at least one other solution that might be interesting: https://github.com/d07RiV/blizzget
I tried it some time ago and I worked for windows but if I remember correctly it is not buildable on linux :(

@Ilia1
Copy link
Contributor Author

Ilia1 commented Aug 17, 2021

The problem of kegs and getts is that

due to only using one download thread

I found a repository that uses multiprocessing https://github.com/wowdev/ngdp_checker but it doesn't seem to download files.
I think should be added to the keg multiprocessing and downloading will be faster.

@0xf4b1
Copy link
Owner

0xf4b1 commented Aug 18, 2021

Hmm I will check this, but still downloading and keeping all previously downloaded files locally and then installing the latest game version is not very convenient with keg.

@Ilia1
Copy link
Contributor Author

Ilia1 commented Sep 9, 2021

Worth looking at SharpNGDP
Compiles on Linux via dotnet.
But when trying to change the platform from windows to osx it crashes with an exception System.NullReferenceException

@Ilia1
Copy link
Contributor Author

Ilia1 commented Sep 10, 2021

Exception I have corrected
Would now reduce the cache size (now over 29Gb) and execution time (now over 40min)

@0xf4b1
Copy link
Owner

0xf4b1 commented Sep 10, 2021

This sounds great, I will have a look it this!
I the meantime, I also improved and automated the script a little bit and could improve the download speed with some arguments but I still dislike the storage consumption.

So does SharpNGDP only download the required files for the installation? And do you think it can handle updates in a better way?

@Ilia1
Copy link
Contributor Author

Ilia1 commented Sep 10, 2021

I'm counting on the fact that in general, compiled programs are faster than scripting. But optimization is required anyway. I think that it would be possible to delete already unpacked files from the cache.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants